at bygge din startende med folkesundhedsprogrammet: lokalisering med i18n

, startende med at bygge din folkesundhedsprogrammet: lokalisering med i18n,,,,, 171,,,,,,,,, 15,,,,,,, det cyber - mandag envato tuts + kurser vil blive reduceret til $3.- og' t miss. denne post er en del af en serie kaldet bygge din startende med folkesundhedsprogrammet. bygge din startende med folkesundhedsprogrammet: geolokalisering og google placesbuilding din startkapital: adgangskontrol, aktive registrere forbindelser og snegle,,, hvad du vil lave,,, det er fjerde del af bygningen - startende med folkesundhedsprogrammet serie om tuts +.i denne serie, jeg leder dig gennem iværksættelse af en startkapital fra idé til virkelighed ved hjælp af mit møde kalender app som et eksempel fra det virkelige liv.hvert skridt på vejen, vi åbner mødet planner kode som open source - eksempler, de kan lære af.vi vil også tage fat på nystartede forbundne forretningsmæssige spørgsmål, efterhånden som de opstår. i denne lektion, jeg ønskede at træde et skridt tilbage og tilføje i18n internationalisering støtte til vores ansøgning, før vi kan bygge flere og flere regler.ifølge wikipedia, i18n er en numeronym:,, 18 står for antallet af brevvekslingen mellem den første  , jeg   og i sidste  , n, n -   i  , internationalisering,, en sædvane, har på   dec   i 1970 'erne eller i 80' erne, med i18n, hele teksten tråde, der vises for brugeren af anvendelsen er erstattet af funktion opkald, der kan   dynamisk belastning oversat i trådene for alle sprog brugeren udvælger.,, i koden for møde kalender er skrevet i yii2 ramme for folkesundhedsprogrammet, der har indbygget støtte til i18n. hvis du ønsker at lære mere om yii2, tjek lige vores række programmering med yii2   på tuts +, bare en påmindelse, jeg vil deltage i bemærkning tråde nedenfor.jeg er især interesseret i, hvis man har forskellige tilgange, eller supplerende idéer, eller vil foreslå emner for fremtidige tutorials.,, målene for internationalisering, når bygningen nystartede, er det nyttigt at tænke globalt fra begyndelsen, men ikke altid.alternativt kan den   mening kun at fokusere på opbygning af det lokale marked.har din minimale levedygtige produkter skal arbejde på andre sprog for brugere fra forskellige lande?og i vores tilfælde, yii rammer indbygget støtte til i18n, så det er forholdsvis let at opbygge støtte til i18n fra begyndelsen og tidskrævende   at tilføje det senere.,, hvordan i18n værker, i18n fungerer ved at erstatte alle henvisninger til tekst vises for brugeren med at give funktion kræver oversættelse, når nødvendig.  , f.eks. her er hvad attributten område navne i stedet model ud før i18n:,, offentlig funktion attributelabels() {afkast ["id = >" id "," navn "= >" navn "," place_type = > sted - "... med oversatte versioner af kodeksen, ville blive meget kompliceret.ikke - tekniske oversættere skal oversætte koden på plads, vil bryde syntaks. her er, hvad den samme kode   ligner med i18n:,, offentlig funktion attributelabels() {afkast ["id = > yii:: t ('frontend", "id"), "navn" = > yii:: t ('frontend "," navn "), place_type = > yii:: t ('frontend", "type"),,,, yii: t(), er en funktion kræver, at kontrollen, hvilket sprog er i øjeblikket udvalgte og udviser passende oversættes snor.,'frontend, henviser til en del af vores anmodning.oversættelser kan eventuelt   organiseret i henhold til forskellige kategorier.men hvor skal disse oversat tråde ud? , misligholdelse, sprog, i dette tilfælde engelsk, er skrevet i kode, som vist ovenfor.sprog ressource filer er lister over arrays på bånd, hvis nøgle er det sprog, text-e.g. misligholdelse,'place type ", - - og hvert enkelt dossier indeholder oversatte tekst værdier for deres relevante sprog.,, her er et eksempel på vores afsluttet spanske oversættelse dokumentation, sprogkode" es ".det, yii: t(),   funktion bruger denne sag at finde passende oversættelse til display:,, <?php /* * * besked oversættelser.*) denne sag er genereres automatisk af "yii besked kommando.det indeholder det localizable budskaber, der udvindes af kildekode.du kan ændre denne sag ved at omsætte den udtrukne beskeder.* * hvert system element udgør oversættelsen (værdi) i en meddelelse (centrale).* hvis værdien er tom, det budskab, betragtes som ikke oversat.* budskaber, som ikke længere har brug for oversættelse, vil få deres oversættelser * lukkede mellem et par "@ @ marks.* * besked snor kan anvendes sammen med pluralistiske former format.tjek i18n afdeling * af vejledning for detaljer.* * note: dette dokument skal spares på utf - 8 - kodning.* /afkast ["tilføje nuværende lokalitet = > agregar ubicaci ó n faktiske, tilføje en google (modelclass} = > en ñ administrative fn 's google (modelclass}, skabt af" = > creado por "," adresse "= >' direcci ó n completa", "google sted id = >" google sted id "," navn "= >" navn "," bemærker "= >", ikke "," sted type = > sted tipo "," steder "= > 'lugares,,, mens det er tidskrævende, yii giver manuskripter til at automatisere produktionen og tilrettelæggelse af disse filer.  ,, der adskiller teksten fra den kode, skal vi gøre det lettere for ikke - tekniske flersproglige eksperter til at omsætte vores ansøgninger for os uden at bryde koden.,, i18n tilbyder også særlige opgaver oversættelse af tid-, valuta -, plurals et al.jeg vil ikke gå i detaljer her i denne forelæsning.  , konfigureringen af i18n støtte, desværre, yii2 dokumentation for i18n endnu ikke er meget beskrivende, og det var vanskeligt at finde   arbejde skridt for skridt eksempler.heldigvis for dig, jeg kommer til at gå, du ved, hvad jeg har lært på doc og nettet.jeg fandt den kode ninja er i18n eksempel og   den yii2 definitive vejledning om i18n   hjælpsomme, og yii bidragyder alexander makarov tilbød mig en bistand.,, generering af i18n konfiguration fil, vi bruger yii2 avanceret model for møde kalender.det skaber to yii ansøgninger i vores codebase, frontend og backend.og det skaber et fælles område for modeller, deles mellem disse ansøgninger.yii er konfiguration filer er ladt, når side anmodninger fremsættes.vi bruger yii er i18n besked manuskripter til at bygge en konfiguration fil for i18n i fælles /ud, vej.,, fra vores codebase rod, vi kører yii, meddelelse /ud, manuskript:,,. /yii meddelelse /ud @ fælles /ud /i18n folkesundhedsprogrammet, dette medfører. følgende dossier skabelon, som vi kan vælge:,, <?php afkast [//snor, der grundlæggende fortegnelse over alle kilde filer sourcepath = > __dir__, //system, der kræves, en liste over de sprogkoder, at ekstraheret meddelelser //skal oversættes.for eksempel ['zh-cn "," de ".sprog "= > [ef], //snor, navnet på den funktion at omsætte beskeder.//misligholdelse "yii:: t.det anvendes som et varemærke for at finde de meddelelser, der skal //oversat.du kan bruge en snor til enkelt funktion navn eller et system til //flere funktion navne.oversætter "= > yii:: t, //boolean, om at løse meddelelser af nøgler, når de nye meddelelser //med de eksisterende.misligholdelser falske, hvilket betyder nye (utranslaterede) //budskaber vil være adskilt fra den gamle (oversættelse). "type = > falske, //boolean, om at fjerne meddelelser, som ikke længere findes i kildekoden.//misligholdelse falske, hvilket betyder at hver af disse meddelelser vil blive lukket et par "@ @ marks.removeunused = > falske, //system, en liste over de mønstre, der angiver, hvilke filer /abonnentfortegnelser bør ikke behandles.//hvis tom eller ej, alle filer /registre vil blive behandlet.//en vej, svarer til et mønster, hvis det indeholder det mønster snor på sin afslutning.f.eks. /////////a /b 'vil matche alle filer og vejvisere slutter med "/a /b; //' *. svn" vil matche alle filer og vejvisere, hvis navn ender med. svn ".//og. svn vil matche alle filer og fortegnelser, der hedder præcis. svn ".//note, "/" personer i et mønster med både "/" og ").//se hjælpere /filehelper: findfiles() beskrivelse for flere oplysninger om mønsteret matcher regler. "kun "= > [." "på" //system, en liste over de mønstre, der angiver, hvilke filer (telefonbøger) bør behandles.//hvis tom eller ej, alle sager vil blive behandlet.//henvises der til ", men" for detaljer om mønstre.////////, hvis en fil /register svarer til både et mønster i "kun" og ", men", vil det ikke blive behandlet.bortset fra "= > [. svn,. smut", ". gitignore", ". gitkeep", ". hgignore", ". hgkeep", "/meddelelser,] //php produktion format er for at redde budskaber til folkesundhedsprogrammet filer.format = > folkesundhedsprogrammet, //root fortegnelse, der indeholder besked oversættelser.messagepath = > __dir__.directory_separator. "meddelelser, //boolean, om budskabet fil skal være erstattet med den fusionerede beskeder "træder i stedet for" = > sandt, /* //»db« output - formatet er for at redde budskaber til databasen.format = > »db«, //forbindelse komponent til at bruge.valgfri. "db = > »db«, //skik kilde besked.fakultativ.//sourcemessagetable = > "{{% source_message}}, //skik navn for oversættelse besked.fakultativ.//messagetable = > "{{% besked) * /* //po 'output - formatet er for at redde budskaber til gettext po filer.format = > po //root fortegnelse, der indeholder besked oversættelser.messagepath = > __dir__.directory_separator. "meddelelser, //navn på den sag, der vil blive anvendt for oversættelser.kataloget "= >" meddelelser "//boolean, om budskabet fil skal være erstattet med den fusionerede beskeder" træder i stedet for "= > sandt, * /], er jeg selv at bygge min fil.jeg flytter  , messagepath, op til toppen og skræddersy, sourcepath, og messagepath,.jeg er også angiver de sprog, jeg vil have min ansøgning om støtte, ud over engelsk i dette tilfælde spanske og tyske "es" og "de".her er en liste over alle de i18n sprogkoder, afkast [//snor, der grundlæggende fortegnelse over alle kilde filer sourcepath = > __dir__.directory_separator. "... ".directory_separator. "... ".directory_separator, //root fortegnelse, der indeholder besked oversættelser.messagepath = > __dir__.directory_separator. "".directory_separator. "meddelelser, //system, der kræves, en liste over de sprogkoder, at ekstraheret meddelelser //skal oversættes.for eksempel ['zh-cn "," de ".sprog "= > ['es" ef ", i de næste skridt, vi tager yii er ekstrakt manuskript, som vil scanne alle koder i, sourcepath, træ til at generere misligholdelse snor dokumentation for alle de anvendte etiketter i vores kodeks.jeg er selv at bygge, sourcepath, at scanne hele kode træ.jeg er selv at bygge, messagepath, til at skabe den deraf følgende filer, fælles /meddelelser,.,,. /yii meddelelse /ekstrakt @ fælles /ud /i18n. php,, du vil se yii scanner alle jeres kode filer:,, udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /modeller /. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /model /placegps. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /model /placesearch. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /model /resetpasswordform. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /model /signupform. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /layout /main. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /møde /_form. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /møde /_search. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /møde /skabe. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /møde /index.php?udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /møde /ajourføring. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /møde /view. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /_form. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /_formgeolocate. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /_formplacegoogle. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /_search. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /skabe. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /create_geo. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /create_place_google. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /index.php?udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /finde. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /ajourføring. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /sted /view. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /kontakt. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /fejl. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /index.php?udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /login folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /requestpasswordresettoken. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /resetpassword. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /synspunkter /site /signup. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /web /index test. folkesundhedsprogrammet.udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /web /index.php?udvinding af beskeder fra /brugere /jeff /sites /mp /frontend /widgets /alarm. php..., når det sidste, du får at se sådan noget i din codebase:,,,,, aktiverer i18n og vælge et sprog, i det fælles konfiguration fil,  , fælles /ud /main. folkesundhedsprogrammet, er vi yii vil fortælle om vores nye sprog støtte.jeg vil gøre min misligholdelse sprog: spansk, <?php afkast ["vendorpath = > dirname (dirname (__dir__))./sælger "," sprog "= >" es "//spanske" komponenter "= > [" cache = > ["klasse" = > yii. caching. filecache,], i18n = > ["oversættelse" = > ["frontend * = > [" klasse "= > yii. i18n. phpmessagesource", "basepath = > @ fælles /meddelelser,], backend * = > [" klasse "= > yii. i18n. phpmessagesource", "basepath = > @ fælles /meddelelser,]]]]];,, men der er stadig mere at gøre.vi er nødt til at gøre vores kode i18n bekendt., ved hjælp af yii er "code generator med i18n, i anden del af denne serie, startende med folkesundhedsprogrammet: ved at bygge din krav og database, design, plejede vi yii er fantastisk code generator, gil, til at skabe vores modeller, flyveledere og synspunkter.men vi har ikke aktivere i18n, så alle vores kode indbygget tekst tråde.lad os gøre det, vender vi tilbage til gil, sandsynligvis   http: //localhost: 8888 /mp /gil   i din browser, og at løbe den model og registeransvarlige generatorer med i18n aktiveret.

Final product image
Meeting Planner I18n Message Files and Paths



Previous:
Next Page: