代码之家  ›  专栏  ›  技术社区  ›  Christophe Herreman

在资源文件中命名密钥最佳实践

  •  17
  • Christophe Herreman  · 技术社区  · 17 年前

    假设您在多个屏幕中有一个编辑按钮(一个用于编辑用户,一个用于编辑组)。您可以使用以下键:

    • editUserButton.label=编辑用户。。。
    • editGroupButton.label=编辑组。。。

    • 编辑组=编辑组。。。

    • user.edit=编辑用户。。。
    • group.edit=编辑组。。。

    你喜欢什么方案?为什么?

    5 回复  |  直到 17 年前
        1
  •  14
  •   cherouvim    17 年前

    我用用例或动作类名作为文本的前缀。如:

    PlaceOrder.invalidId=Invalid id for order {0}
    PlaceOrder.success=Your order {0} was successful
    PlaceOrder.fail.visa=Your visa was ...
    PlaceOrder.fail.communications=We could not...
    PlaceOrder.submit=Buy now
    
    Login=Login
    Login.fail=Your credentials did not...
    Login.alread=You are already logged in

    这样可以避免碰撞:

    EditStudent=Edit
    EditClass=Edit
    EditCourse=Edit Course

    另一种方式是按实体划分I组:

    Person.id=#
    Person.name=First name
    Person.surname=Surname

    这些可以作为标题显示在具有实体的表上。它在以下情况下为您节省了时间:

    Person.id=#
    Class.id=#
    Course.id=Course Id

    no=no

    它被用作左上角单元格上的id(#)表格标题,但我们的法语翻译为法语做了以下操作:

    no=non

    最后(但并非最不重要的)当您想要重构/重命名类并快速更新这些属性键而不必查看模板时,使用classname作为前缀将有助于您。

        2
  •  0
  •   schooner    17 年前

    也就是说,它很容易被我们的开发人员阅读,并且可以在整个应用程序中需要的多个位置重用。

        3
  •  0
  •   Pontus Gagge    17 年前

    以英文文本为基础,但前缀为单词或短语出现的窗口/对话/what have you。至少在版面空间有限的情况下,您可能希望避免陷入到处都有完全相同的字符串的陷阱:这会阻止您通过缩写来获得像样的版面,特别是在芬兰语等多音节语言中。

    不要忽视同音词的危险。提供上下文有助于防止这种情况。不要害怕使资源名称比实际的英语术语长,这可以极大地帮助翻译人员。

        4
  •  0
  •   devstuff    17 年前

    +@cherouvim的答案是1,但它总是归结为文档。

    记录每个值(使用资源源文件格式支持的任何注释机制),包括每个参数的数据类型(如果字符串是formattable)。例如,用于.resx格式的VS编辑器公开了一个注释字段,这使它非常容易。

    无法在{1}之前计划{0}作业。

    将被记录为如下内容:

    记录的错误消息,{0}:作业名称,{1}日期/时间为ISO 8601格式。

        5
  •  -1
  •       17 年前

    比如:

    <xml version=“1.0”encoding=“utf-8”standalone=“yes”?>
    <xml>
    <按钮>

    <用户>***编辑用户*
    </用户>
    <集团> 编辑组 </集团>
    </编辑>
    </按钮>

    比如:


    myTranslateClass.get('button','edit','user');

    这是一个简单的例子。