On 5 Mar 2015 at 15:40:59, [email protected] 
([email protected](mailto:[email protected])) wrote:

> VOTE Results: 5 +1; no 0, no -1.
>  
> The VOTE is passed. I’ll move the page to our official doc and replace what 
> we currently have. 

Done 
http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HTranslationPropertyNaming
 links to http://dev.xwiki.org/xwiki/bin/view/Community/L10N+Conventions

I’ve also updated 
http://dev.xwiki.org/xwiki/bin/view/Community/ApplicationDevelopmentBestPractices

Thanks
-Vincent

> From now on, please use the new naming rule for any new translation 
> properties.
>  
> Thanks  
> -Vincent
>  
>  
> On 20 Feb 2015 at 16:29:21, [email protected] 
> ([email protected](mailto:[email protected])) wrote:
>  
> > Hi devs,
> >
> > At the moment the VOTED rule for naming our translation properties is the 
> > one defined at
> > http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HTranslationPropertyNaming
> >
> > Back in 2012 Sergiu started drafting an extended "L10N Conventions” 
> > document for best practices around writing translation properties at
> > http://dev.xwiki.org/xwiki/bin/view/Drafts/L10N+Conventions
> >
> > Sergiu sent this a proposal in this mail thread:
> > http://markmail.org/message/ofl23yorvxsqhn4x
> >
> > When Sergiu did this he didn’t realize we already had a VOTED rule for 
> > naming our translation properties and his proposal was in conflit with 
> > that. However, in this mail thread, several developers mentioned that even 
> > though they votes the previous naming rules they didn’t fully like it and 
> > preferred the one Sergiu was proposing. Several suggestion for improvements 
> > were also proposed. It was suggested in that thread (and Sergiu agreed) 
> > that he should resend a VOTE to change those established rules. Apparently 
> > he didn’t get the time/will to do it since I couldn’t find such a mail.
> >
> > In addition several developers are apparently not following the current 
> > rules (BAD! :)). For example in the xwiki-platform-icon-ui module, the 
> > Translations.xml page has the following which is NOT following the current 
> > rules:
> > platform.icon.picker.preview=Preview with:
> > platform.icon.picker.loading=Loading
> >
> > And most translation keys found in contrib apps at 
> > http://l10n.xwiki.org/xwiki/bin/view/Contrib/WebHome are also not following 
> > these rules (although we don’t enforce anything for contrib projects, when 
> > they are coded by devs from the XWiki dev team or by known contributors, it 
> > would be a good thing to follow the same rule, especially as, in the 
> > future, we want to provide a path to move from contrib sandbox to contrib 
> > extensions). For example I see the following type of naming: 
> > “polls.vote.instructions.single”.
> >
> > Thus, with this email I’d like to try agreeing on a new naming format and 
> > conventions.
> >
> > I propose to VOTE for making 
> > http://dev.xwiki.org/xwiki/bin/view/Drafts/L10N+Conventions our official 
> > practice with the following change for the property naming part:
> >
> > "
> > Keys should have the following format: 
> > ##[module]*[.section]*.element[.part]*##, where:
> >
> > * ##module## is the name of the module or application being translated, 
> > like ##blog##, ##faq##, ##statistics##… Since a module can have submodules, 
> > there can be several module names. For example the SOLR Search UI is 
> > located in 
> > ##xwiki-platform-search/xwiki-platform-solr/xwiki-platform-solr-ui## and 
> > would have keys starting with ##search.solr.##.
> > * zero, one or more ##section## parts that further refine the location of 
> > the string being translated; for example, a key starting with 
> > ##theme.colors.wizard.## refers to a text located in the //wizard// for the 
> > //color// part of the //theme// application (currently there are only color 
> > themes, but in the future we might add icon themes, layout themes, and so 
> > on), ##macro.python.parameter.## refers to //parameters// of the //python// 
> > //macro//, while a key starting with ##userdirectory.## belongs to the main 
> > and only section of the //user directory// application
> > * ##element## identifies the main element being translated, but such an 
> > element could have several related parts.
> > * ##part## identifies a text related to a main element, such as the 
> > ##label## that describes an input, the ##placeholder## found inside that 
> > input, the ##tooltip## that appears when hovering that input, the ##hint## 
> > that is displayed before the field and provides additional details about 
> > what it, the ##error.empty## or ##error.invalidFormat## displayed when 
> > there are validation errors, and so on
> >
> > Individual parts of the key should use **camelCase** if more than one word 
> > is needed to identify the element.
> > “
> >
> > Note that I’ve removed the ##product## part from Sergiu’s proposal (the 
> > reasoning is here: http://markmail.org/message/ocijlegslw45yedu). In short 
> > this makes it simpler to move apps around without breaking the translation 
> > keys. Of course it reduces the namespace and increases likelihood of 
> > translation clashes with user-provided extensions but I don’t think it’s 
> > going to be a problem and user-provided extensions should have a unique app 
> > name anyway.
> >
> > I would also point to 
> > http://dev.xwiki.org/xwiki/bin/view/Community/DevelopmentPractices#HTranslationPropertyDeprecations
> >  for the deprecation part.
> >
> > The big question is what to do with existing translations and the only 
> > answer I have so far is:
> > * Use the new rules when adding new translation keys (after, and if, it’s 
> > voted)
> > * Don’t touch existing keys for now (since that would loose all 
> > translations) but implement the following first, and once it’s done, 
> > refactor existing translations over time:
> > ** Add support for a deprecation section in Translations.xml’s content, 
> > honoured by l10n in the same way that we do it for 
> > ApplicationResources.properties
> > ** Add the new key
> > ** Move the old key to the deprecation section (in 
> > ApplicationResources.properties or in Translations.xml)
> > ** Make the old key point to the new key, using a special syntax. For 
> > example: my.old.deprecated.key = @{new.shiny.key}
> >
> > Here’s my +1
> >
> > Thanks
> > -Vincent
> >
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to