Redux – Romanian Translation part 4 (10%-14% 1104 words translated)
This is a romanian translation of the Redux project. I am down to my fourth contribution.
The translation is starting to take a very plain form, very easy to translate. The author of the text has separated phrases into proposition and those propositions are written in a very direct manner. This time only a few words that kept their english form like „boilerplater”, „polyfill” and „codebase”. These words have no literal translation to romanian and although they could be translated by meaning, given that it is a text for programmers I consider best leaving them as they are
I have translated 14% of the Redux project. (4453 words).
Project Details
Redux is a predictable state container for JavaScript apps.
It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. On top of that, it provides a great developer experience, such as live code editing combined with a time traveling debugger.
Redux evolves the ideas of Flux, but avoids its complexity by taking cues from Elm.
Whether you have used them or not, Redux only takes a few minutes to get started with.
As it’s own creator states:” My goal was to create a state management library with minimal API but completely predictable behavior, so it is possible to implement logging, hot reloading, time travel, universal apps, record and replay, without any buy-in from the developer.”
Links related to the translation
The link for the github page of the project can be found here, also the crowdin page of the Romanian language with my activity, can be found here.
Source Language
English
Translated Language
Romanian - 25431 words to be translated.
Number Of Words
4453
Number of words translated on this contribution: 1104
Proofread Words
0
Previous translation on the same project
Here is the link to the first part of the translation.
Here is the link to the second part of the translation.
Here is the link to the third part of the translation.
Number of words translated on the project before this report (if any): 3349
Bellow, I will provide a few screenshots that I took, while translating the Redux project:
The total translation time for this part was about 1 and a half hours :
You suggested 78 translations into Romanian
Translation File Language Time
dispatch(requestPosts(reddit)) // Funcția apelată de middleware-ul thunk poate returna o valoare, // ce este pasată ca valoarea de returnare a metodei de expediere. AsyncActions.md Romanian 07:47 AM
return dispatch => { // Primul dispatch: starea aplicației este actualizată pentru a informa // că apelul API a început. AsyncActions.md Romanian 07:46 AM
// Pasează metoda de expediere ca un argument al funcției, // făcând posibil să expediezi acțiunile însăși. AsyncActions.md Romanian 07:45 AM
// Deși interiorul său este diferit, îl poți utiliza ca pe orice alt creator de acțiune: // store.dispatch(fetchPosts('reactjs')) export function fetchPosts(reddit) { // Middleware-ul thunk știe cum să managerieze funcțiile. AsyncActions.md Romanian 07:43 AM
import fetch from 'isomorphic-fetch' export const REQUEST_POSTS = 'REQUEST_POSTS' function requestPosts(reddit) { return { type: REQUEST_POSTS, reddit } } export const RECEIVE_POSTS = 'RECEIVE_POSTS' function receivePosts(reddit, json) { return { type: RECEIVE_POSTS, reddit, posts: json.data.children.map(child => child.data), receivedAt: Date.now() } } // Fă cunoștință cu primul nostru creator de acțiune thunk! AsyncActions.md Romanian 07:41 AM
Putem încă defini acești creatori de acțiune thunk speciali înăuntrul fișieruluiactions.js
: AsyncActions.md Romanian 07:40 AM
Funcția poate deasemenea expedia acțiuni—asemeni acelor acțiuni asincron pe care le-am definit mai devreme. AsyncActions.md Romanian 07:39 AM
Această funcție nu este necesar să fie pură; este astfel permis să ai efecte secundare, incluzând executarea de apeluri API asincron. AsyncActions.md Romanian 07:38 AM
Când un creator de acțiune returnează o funcție, acea funcție va fi executată de middleware-ul Redux Thunk. AsyncActions.md Romanian 07:37 AM
În acest mod, creatorul de acțiune devine un thunk AsyncActions.md Romanian 07:36 AM
Vom explica cum middleware funcționează în general mai târziu; pentru acum, există doar o singură chestie importantă ce trebuie să o ști: prin a utiliza acest middleware specific, un creator de acțiune poate returna o funcție în loc de un obiect de acțiune. AsyncActions.md Romanian 07:36 AM
Vine cu un pachet separat numitredux-thunk
. AsyncActions.md Romanian 07:33 AM
Calea standard de a o face cu Redux este să utilizezi Redux Thunk middleware. AsyncActions.md Romanian 07:33 AM
Finalmente, cum folosim creatorii de acțiune sincron, ce i-am definit mai devreme, împreună cu request-urile de rețea? AsyncActions.md Romanian 07:32 AM
Creatori de acțiune Async AsyncActions.md Romanian 07:31 AM
Adu-ți aminte ca reductorii sunt doar funcții, deci poți utiliza compoziție funcțională și funcții de ordin înalt cât de mult te simți comfortabil. AsyncActions.md Romanian 07:31 AM
Exemplul real merge și mai departe, arătând cum să creezi o fabrică de reductori pentru reductorii parametrizați de paginare. AsyncActions.md Romanian 07:29 AM
Este alegerea noastră cum să împărțim reductorul în reductori mai mici, și în acest caz, delegăm obiecte de actualizare înăuntrul unui obiect la un reductorposts
. AsyncActions.md Romanian 07:27 AM
Aceasta este doar compoziție reductor! AsyncActions.md Romanian 07:25 AM
Am extrasposts(state, action)
ce manageriază starea unei liste de post specifică. AsyncActions.md Romanian 07:25 AM
let nextState = {} nextState[action.reddit] = posts(state[action.reddit], action) return Object.assign({}, state, nextState) AsyncActions.md Romanian 07:24 AM
este echivalentă cu asta: AsyncActions.md Romanian 07:24 AM
return Object.assign({}, state, { [action.reddit]: posts(state[action.reddit], action) }) AsyncActions.md Romanian 07:23 AM
Folosim sintaxă de proprietate calculată ES6 pentru a putea actualizastate[action.reddit]
cuObject.assign()
într-o manieră concisă. Aceasta: AsyncActions.md Romanian 07:23 AM
În acest cod, sunt două părți interesante: AsyncActions.md Romanian 07:17 AM
import { combineReducers } from 'redux' import { SELECT_REDDIT, INVALIDATE_REDDIT, REQUEST_POSTS, RECEIVE_POSTS } from '../actions' function selectedReddit(state = 'reactjs', action) { switch (action.type) { case SELECT_REDDIT: return action.reddit default: return state } } function posts(state = { isFetching: false, didInvalidate: false, items: [] }, action) { switch (action.type) { case INVALIDATE_REDDIT: return Object.assign({}, state, { didInvalidate: true }) case REQUEST_POSTS: return Object.assign({}, state, { isFetching: true, didInvalidate: false }) case RECEIVE_POSTS: return Objec... AsyncActions.md Romanian 07:17 AM
reducers.js AsyncActions.md Romanian 07:17 AM
Întreabă pe canalul Discord #redux Reactiflux, sau crează un issue.
Dacă îți dai seama, editează acest document ca o curtoazie pentru următoarea persoană ce are aceeași problemă. Troubleshooting.md Romanian 07:17 AM
Încă ceva ce nu merge Troubleshooting.md Romanian 07:14 AM
Poți să pasezidispatch
la alte componente manual, dacă vrei. Troubleshooting.md Romanian 07:13 AM
export default connect()(AddTodo) Troubleshooting.md Romanian 07:13 AM
Depinde de tine să o expediezi realmente. Troubleshooting.md Romanian 07:13 AM
Nu funcționează pentru că creatorul tău de acțiune este doar o funcție ce returnează o acțiune. Troubleshooting.md Romanian 07:12 AM
addTodo('Fix the issue') } render() { return ( <button onClick={() => this.handleClick()}> Add </button> ) } } Troubleshooting.md Romanian 07:11 AM
import React, { Component } from 'react' import { addTodo } from './TodoActions' class AddTodo extends Component { handleClick() { // Nu va funcționa! Troubleshooting.md Romanian 07:11 AM
AddTodo.js Troubleshooting.md Romanian 07:11 AM
export function addTodo(text) { return { type: 'ADD_TODO', text } } Troubleshooting.md Romanian 07:11 AM
TodoActions.js Troubleshooting.md Romanian 07:11 AM
Dacă definești un creator de acțiune, apelând-ul nu va expedia acțiunea automat. De exemplu, acest cod nu va face nimic: Troubleshooting.md Romanian 07:11 AM
Nu uita să apelezidispatch(action)
Troubleshooting.md Romanian 07:09 AM
Observă că caracteristicile de limbaj experimentale sunt predispuse schimbării, și este neînțelept să te bazezi pe ele în codebase-urile mari. Troubleshooting.md Romanian 07:09 AM
// Înainte: return [ ...state.slice(0, action.index), Object.assign({}, state[action.index], { completed: true }), ...state.slice(action.index + 1) ] // După: return [ ...state.slice(0, action.index), { ...state[action.index], completed: true }, ...state.slice(action.index + 1) ] Troubleshooting.md Romanian 07:07 AM
Poți deasemenea să activezi propunere de difuzare de obiecte ES7 cu Babel stagiul 1: Troubleshooting.md Romanian 07:06 AM
În acest mod nu suprascriistarea
anterioară Troubleshooting.md Romanian 07:05 AM
De exemplu, în loc să returnezi ceva de genulObject.assign(state, newData)
din reductorii tăi, returneazăObject.assign({}, state, newData)
. Troubleshooting.md Romanian 07:04 AM
Asigură-te că foloseștiObject.assign
corect. Troubleshooting.md Romanian 07:03 AM
Finalmente, pentru a actualiza obiecte, vei avea nevoie de ceva de genul_.extend
din Underscore, sau mai bine, unObject.assign
polyfill. Troubleshooting.md Romanian 07:03 AM
// Înainte: return [ ...state.slice(0, action.index), Object.assign({}, state[action.index], { completed: true }), ...state.slice(action.index + 1) ] // După return update(state, { [action.index]: { completed: { $set: true } } }) Troubleshooting.md Romanian 07:01 AM
Dacă vrei să ai mai puțin cod, poți să folosești un ajutător caReact.addons.update
pentru a scrie transformări imuabile cu o sintaxă clară: Troubleshooting.md Romanian 07:00 AM
Este mai mult cod, dar este exact ce face Redux previzibil și eficient. Troubleshooting.md Romanian 06:59 AM
function todos(state = [], action) { switch (action.type) { case 'ADD_TODO': // Returnează un nou array return [ ...state, { text: action.text, completed: false } ] case 'COMPLETE_TODO': // Returnează un nou array return [ ...state.slice(0, action.index), // Copy the object before mutating Object.assign({}, state[action.index], { completed: true }), ...state.slice(action.index + 1) ] default: return state } } Troubleshooting.md Romanian 06:58 AM
Trebuie rescris în felul acesta: Troubleshooting.md Romanian 06:58 AM
state[action.index].completed = true return state default: return state } } Troubleshooting.md Romanian 06:57 AM
Aceasta modifică starea[action.index]. Troubleshooting.md Romanian 06:57 AM
Acesta modifică starea state.push({ text: action.text, completed: false }) return state case 'COMPLETE_TODO': // Greșit! Troubleshooting.md Romanian 06:57 AM
function todos(state = [], action) { switch (action.type) { case 'ADD_TODO': // Greșit! Troubleshooting.md Romanian 06:56 AM
De exemplu, un reductor în felul acesta este greșit pentru ca modifică starea: Troubleshooting.md Romanian 06:56 AM
Deasemenea, îți permite niște caracteristici de experiență de dezvoltator cum ar fi time travel cu redux-devtools Troubleshooting.md Romanian 06:56 AM
Imuabilitatea este ceea ce lasă react-redux să se aboneze eficient la actualizările fine ale stării. Troubleshooting.md Romanian 06:54 AM
De fiecare dată, trebuie să returnezi un nou obiect de starea. Chiar dacă nu utilizezi o librărie ca Imuabil, trebuie să eviți complet modificarea. Troubleshooting.md Romanian 06:53 AM
Redux presupune că tu nu modifici niciodată obiectele pe care ți le dă în reductor. Troubleshooting.md Romanian 06:51 AM
Este tentant să modificistarea
sauacțiunea
pasate ție de către Redux. Nu face asta! Troubleshooting.md Romanian 06:50 AM
Niciodată nu modifica argumentele reductoare Troubleshooting.md Romanian 06:49 AM
Niciodată nu muta argumentele reductoare Troubleshooting.md Romanian 06:49 AM
Uneori, încerci să expediezi o acțiune, dar vizualizarea nu se actualizează. De ce se întâmplă asta? Pot fi mai multe motive pentru asta. Troubleshooting.md Romanian 06:48 AM
Nimic nu se întâmplă când expediez o acțiune Troubleshooting.md Romanian 06:47 AM
Acesta este un loc pentru împărtășirea problemelor comune și a soluțiilor pentru ele.
Exemplele folosesc React, dar ar trebuii să le găsești folositoare și dacă utilizezi altceva. Troubleshooting.md Romanian 06:47 AM
compune SUMMARY.md Romanian 06:45 AM
bindActionCreators SUMMARY.md Romanian 06:45 AM
applyMiddleware SUMMARY.md Romanian 06:45 AM
combineReducers SUMMARY.md Romanian 06:45 AM
createStore SUMMARY.md Romanian 06:45 AM
Implementând Anularea Istoricului SUMMARY.md Romanian 06:44 AM
Date derivate din calculare SUMMARY.md Romanian 06:44 AM
Teste de scris SUMMARY.md Romanian 06:43 AM
Randarea Server-ului SUMMARY.md Romanian 06:43 AM
Reducând Boilerplate SUMMARY.md Romanian 06:43 AM
Migrând la Redux SUMMARY.md Romanian 06:42 AM
Posted on Utopian.io - Rewarding Open Source Contributors
Thank you for the contribution. It has been approved.
You can contact us on Discord.
[utopian-moderator]
Hey @vellosid I am @utopian-io. I have just upvoted you!
Achievements
Suggestions
Get Noticed!
Community-Driven Witness!
I am the first and only Steem Community-Driven Witness. Participate on Discord. Lets GROW TOGETHER!
Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x
Upvote for supporting you.
God job kawan post sangat mengesankan dan penuh inspirasi..
Fresh Topic