本地化和面向未来

时间:2013-05-18 02:36:19

标签: python localization future-proof

所以我知道这对StackOverflow格式来说不是一个好问题。但我有点不知所措,随意推荐一个不同的地方把它放在可能会得到一些眼球的地方

我非常喜欢用于本地化你的python程序的xgettext东西。目前我们将用户首选项保存为字符串(例如:user_prefs = {'temperature':u'\u00b0C Fahrenheit', 'volumetric':'Cubic inches', ...}

这很好用,当我用外语操作时,我们会尝试(大部分成功)将字符串本地化反转回英语,然后再保存。这样保存的字符串总是英文版本,然后我们在启动程序时将它们本地化。

但是,如果我们将'Cubic inches'更改为u'in\u00b3',或者将'Cubic inches'更改为'Cubic Inches',则会导致问题。我们通过总是在小写字母中进行比较来对此进行一定程度的补偿,但它对我来说感觉很乱,并且似乎必须有更好的方法来做到这一点,例如保存id(无论是数组中的索引还是仅仅是一些独特的标识符)。但想知道其他人在未来打样用户偏好方面的经验,以便始终得到认可。

我怀疑这会被关闭(要求主观答案),但也许我可以在它之前得到一些好的见解

2 个答案:

答案 0 :(得分:1)

听起来您正在尝试使用文本的英语表示作为邮件的唯一ID,但是当您更改英语表示时,它不再匹配先前存储的首选项文件中的ID。解决方案是为每条消息使用唯一且永久的ID。此ID可以是英文可读的,但您必须承诺永远不会更改它。为此ID使用简单且标准化的命名约定可能很有帮助,没有unicode或大写字符。例如,一个消息ID可能是'立方英寸'。另一个可能是华氏度

然后,您应该定义国际化文本,以便以各种语言显示此消息,包括英语。所以,如果你想显示“立方英寸”和“立方英寸”。在英语系统上的消息,您将查找此ID的英语等效内容,并获得“立方英寸”,“立方英寸”,“u'”等字母。或者你喜欢什么。然后您的应用程序可以显示该文本。但是,您始终会在首选项文件中存储永久邮件ID('立方英寸')。这使您可以灵活地更改消息的英语表示,如用户所示,而不会使先前存储的首选项文件中的ID无效。

答案 1 :(得分:0)

我没有得到你的实际问题,你在哪里存储。 但希望“base64 utf编码解码”可以解决您的问题。