Well see now a lot of it makes sense. The guide is pretty vague on i18n/l10n and how it works / is used.
Will give this a try. On Oct 13, 5:39 pm, "Larry E. Masters aka PhpNut" <[email protected]> wrote: > Incorrect, the file that is created using the i18n extract creates a .pot > file which is a template file and can be opened in any po editor or text > editor. The template is not language specific. There is no reason to create > these files by hand. Write your code and output using the sentences you > would normally use just wrap the string in __() function. Run the extractor > and you are done. > Easiest tool to edit translations I have recently found is > poedit.www.poedit.net > > I uploaded current core extracted pot file. > > http://cake-php.googlegroups.com/web/default.pot > > Download it and open in poedit. > > The nice thing about these pot file is you can create a new version with > changes in your application, reopen the template in poedit, and it will > merge changes highlighting the strings that have changed. > > Not sure if you are aware how the other translation functions work in the > core, but when it comes to handling plurals in a sentence, your slugs will > become more confusing. > > for($number = 0; $i < 100; $number++) { > sprintf(__n('There is %d apple in the fruit bowl', 'There are %d apples in > the fruit bowl', $number), $number); > > } > > msgid "There is %d apple in the fruit bowl" > msgid_plural "There are %d apples in the fruit bowl" > msgstr[0] "" > msgstr[1] "" > msgstr[2] "" > msgstr[3] "" > msgstr[4] "" > msgstr[5] "" > msgstr[6] "" > > There are 16 plural rules that range from 1 form of plural to 6 forms of > plural depending on the value of $number. It all depends and the language > the content is being translated to. The above example be based on the header > in the po file, which poedit allows you to set based on the language you are > using. > > Only 1 form of plural. > "Plural-Forms: nplurals=1; plural=0;\n" > > 6 forms of plural. > "Plural-Forms: nplurals=4; plural=n==1 ? 0 : n==2 ? 1 : n==0 || (n>=3 && > n<=10) ? 2 : 3;\n" > > 14 other forms or plural are available. These will be added to the > translation site I had online for the project before. This will be coming > back online in the next few weeks. They will also be added to the book, with > corrections on the proper use of these functions soon. If you need the > correct plural form before then, let me know and I can reply with it. > > -- > /** > * @author Larry E. Masters > * @var string $userName > * @param string $realName > * @returns string aka PhpNut > * @access public > */ > > On Tue, Oct 13, 2009 at 6:50 PM, Miles J <[email protected]> wrote: > > > But you would need to make the english po file anyways if you are > > going to distribute it and have it translated. > > > On Oct 13, 12:58 pm, "Larry E. Masters aka PhpNut" <[email protected]> > > wrote: > > > So you are basically using these as "defines"? > > > -- > > > /** > > > * @author Larry E. Masters > > > * @var string $userName > > > * @param string $realName > > > * @returns string aka PhpNut > > > * @access public > > > */ > > > > On Tue, Oct 13, 2009 at 2:19 PM, euromark (munich) < > > > > [email protected]> wrote: > > > > > i agree with miles > > > > > they should be slugged, short and precise > > > > and explained in both the english and foreign .po file > > > > > like > > > > > "regMessageSuccess" > > > > and > > > > "You have been successfully registered" > > > > "Sie sind nun erfolgreich angemeldet" > > > > > or > > > > "valErrorRecordNameExists" > > > > for > > > > "A record with this name already exists" > > > > > this way you can easily change the "original" language text (here: > > > > english) without having to change all the x places in the script as > > > > well > > > > > maybe it is now supposed to be > > > > "You cannot have two records with the same name" > > > > > but the short slugged term has still the same basic meaning and > > > > therefore remains the same > > > > > On 13 Okt., 18:12, Miles J <[email protected]> wrote: > > > > > I am personal extremely against naming your ids the full sentence, > > > > > what purpose does that serve? Its longer in both the .po and .ctp > > file > > > > > and its a lot easier to reference slugs. To each his own I guess. > > > > > > On Oct 13, 7:42 am, "Larry E. Masters aka PhpNut" <[email protected]> > > > > > wrote: > > > > > > > Another thing I forgot to mention. You should be using full strings > > you > > > > want > > > > > > translated for the msgid.Example: > > > > > > > msgid "By registering on this web site you are..." > > > > > > > This is the way the core was designed to handle translations. You > > will > > > > also > > > > > > find it much easier for people to translate your application if > > they > > > > have > > > > > > everything they need in the 1 .po file vs looking for the text > > related > > > > to a > > > > > > place holder. > > > > > > > -- > > > > > > /** > > > > > > * @author Larry E. Masters > > > > > > * @var string $userName > > > > > > * @param string $realName > > > > > > * @returns string aka PhpNut > > > > > > * @access public > > > > > > */ > > > > > > > On Tue, Oct 13, 2009 at 9:13 AM, Rob <[email protected]> wrote: > > > > > > > > Any1 thought about creating little snippet which could speed up > > > > > > > hardcoded localization process. > > > > > > > Here is the simple scenerio: > > > > > > > 1) find strings within __('...') __('...',true) string patterns > > in / > > > > > > > app folder > > > > > > > 2) build arrays from default locale *.po files containing locale > > keys > > > > > > > 3) append to end of these files missing id keys in form: > > > > > > > msgid "_register_disclaimer" > > > > > > > msgstr "TOODOO" > > > > > > > > i create many multilang apps and i believe it could be major > > speed > > > > > > > boost for ppl like me. > > > > > > > we dont need to update these files manually every time we use > > __(). > > > > we > > > > > > > just run script when app is ready or changed and just update > > TOODOO > > > > > > > strings or send them to translators. > > > > > > > > If some1 came up with idea how this could be easly done i would > > > > > > > apreciate this. > > > > > > > > regular expressions? if so, how to build fault free one? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "CakePHP" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/cake-php?hl=en -~----------~----~----~----~------~----~------~--~---
