Produktuen lokalizazioa oso garrantzitsua da herrialde eta eskualde berriak esploratzen dituzten nazioarteko enpresentzat. Era berean, mugikorretarako aplikazioetarako lokalizazioa beharrezkoa da. Garatzaile batek nazioarteko hedapena hasten badu, garrantzitsua da beste herrialde bateko erabiltzaileei interfazearekin beren jatorrizko hizkuntzan lan egiteko aukera ematea. Artikulu honetan, React Native aplikazio bat sortuko dugu paketea erabiliz erreakzionatu-natiboa-lokalizatu.
Skillbox-ek gomendatzen du: Hezkuntza online ikastaroa "Lanbideko Java garatzailea". Gogoratzen dugu:"Habr" irakurle guztientzat - 10 errubloko deskontua "Habr" promozio-kodea erabiliz Skillbox-eko edozein ikastarotan izena ematean.
Tresnak eta trebetasunak
Artikulu hau ulertzeko, React Native-rekin lan egiteko oinarrizko trebetasunak behar dituzu. Lan-makinaren ezarpenak ezagutzeko, egin dezakezu argibide ofizialak erabili.
Software tresnen bertsio hauek beharko ditugu:
Nodoa v10.15.0
npm 6.4.1
haria 1.16.0
erreakzio-natiboa 0.59.9
erreakzionatu-natiboa-lokalizatu 1.1.3
i18n-js 3.3.0
Lehen urratsak
Ingelesa, frantsesa eta arabiera onartzen dituen aplikazio bat sortuko dugu. Lehenik eta behin proiektu berri bat sortuko dugu react-native-cli erabiliz. Horretarako, hau idatzi behar duzu terminalean:
$ react-native init multiLanguage
$ cd MultiLanguage
Beharrezko liburutegiak gehitzea
Lehenengo urratsa react-native-localize instalatzea da, honako hau idatziz:
$ yarn add react-native-localize
react-native-localize liburutegiak garatzaileari funtzio eleaniztunetarako sarbidea ematen dio. Baina liburutegi bat gehiago behar du - i18n.
Artikulu honek erabilera deskribatzen du I18n.js JavaScript-era itzulpena eskaintzeko.
$ yarn gehitu i18n-js
Beno, i18n-js-ek ez du caching edo memorizazioa eskaintzen, horretarako lodash.memoize erabiltzea gomendatzen dut:
$ yarn gehitu lodash.memoize
Itzulpenekin lan egitea
Aplikazioak beste hizkuntza batzuekin lan egin ahal izateko, lehenik eta behin itzulpen-direktorio bat sortu behar duzu src barruan, ondoren hiru JSON fitxategi hizkuntza bakoitzeko.
1. en.json ingeleserako;
2. fr.json frantseserako;
3. ar.json arabierarako.
Fitxategi hauek gako eta balioekin JSON objektuak dituzte. Gakoa berdina izango da hizkuntza bakoitzarentzat. Aplikazioak testu-informazioa bistaratzeko erabiltzen du.
Balioa erabiltzaileari erakutsi behar zaion testua da.
Ingelesa:
{"hello": "Kaixo Mundua!"}
Π€ΡΠ°Π½ΡΡΠ·ΡΠΊΠΈΠΉ
{"hello": "Salut le Monde!"}
ΠΡΠ°Π±ΡΠΊΠΈΠΉ
{ "kaixo": "Ψ£ΩΩΨ§Ω Ψ¨Ψ§ΩΨΉΨ§ΩΩ "}
Beste hizkuntza batzuk gehi ditzakezu era berean.
Kode nagusia
Une honetan, App.js fitxategia ireki eta inportazioak gehitu behar dituzu:
import React from "react";
import * as RNLocalize from "react-native-localize";
import i18n from "i18n-js";
import memoize from "lodash.memoize"; // Use for caching/memoize for better performance
import {
I18nManager,
SafeAreaView,
ScrollView,
StyleSheet,
Text,
View
} from "react-native";
Horren ostean, gero erabilgarriak izango diren funtzio laguntzaileak eta konstanteak gehitzen dira.
Lehenengo elementuak, setI18nConfig(), hasierako konfigurazioa ezartzen du.
Ondoren, gertaera-entzule bat gehitu behar duzu componentDidMount(), elementu honek eguneraketak entzungo ditu eta handleLocalizationChange() deituko du gertatzen direnean.
handleLocalizationChange() metodoak setI18nConfig() eta forceUpdate() aktibatzen ditu. Hau beharrezkoa da Android gailuetarako, osagaia errendatu behar baita aldaketak nabariak izan daitezen.
Ondoren, entzutea componentWillUnmount() metodotik kendu behar duzu.
Azkenik, render() kaixo itzultzen du translate() erabiliz eta gako-parametro bat gehituz. Urrats hauen ondoren, aplikazioak zein hizkuntza behar den "ulertu" eta bertan mezuak bistaratzeko gai izango da.
Aplikazioa abiaraztea
Orain itzulpenak nola funtzionatzen duen egiaztatzeko unea da.
Lehenik eta behin, aplikazioa abiarazten dugu simulagailuan edo emulatzailean idatziz
Orain saiatu zaitezke hizkuntza frantsesera aldatzen aplikazioa abiaraziz.
Arabierarekin gauza bera egiten dugu, ez dago alderik.
Orain arte ondo.
Baina zer gertatzen da aplikazioan itzulpenik ez dagoen ausazko hizkuntza bat hautatzen baduzu?
Ematen du findBestLanguage-ren zeregina eskuragarri dauden guztietatik itzulpen onena eskaintzea dela. Ondorioz, lehenetsitako hizkuntza bistaratuko da.
Telefonoaren ezarpenei buruz ari gara. Adibidez, iOS emulatzailean hizkuntzen ordena ikus dezakezu.
Hautatutako hizkuntza ez bada hizkuntza hobetsia, findBestAvailableLanguage-k undefined itzultzen du hizkuntza lehenetsia bistaratzeko.
bonus
react-native-localize-k hizkuntza-elementu askotarako sarbidea ematen duen API bat du. Lanean hasi aurretik, Merezi du dokumentazioa ikustea.
Findings
Aplikazioa eleaniztun egin daiteke arazorik gabe. React-native-localize zure aplikazioaren erabiltzaile-basea zabaltzeko aukera bikaina da.