gpt4 book ai didi

python - 本地化和面向 future

转载 作者:太空宇宙 更新时间:2023-11-03 18:58:39 25 4
gpt4 key购买 nike

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

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

这工作得很好,当使用外语操作时,我们尝试(大部分成功)在保存之前将字符串本地化反转回英语。这样保存的字符串始终是英文版本,然后我们在启动程序时对其进行本地化。

但是,如果我们将'立方英寸'更改为u'in\u00b3',甚至像'立方英寸'这样的小更改,则会导致以后出现问题“立方英寸”。我们通过总是以小写形式进行比较来在一定程度上弥补了这一点,但这对我来说感觉很糟糕,而且似乎必须有更好的方法来做到这一点,例如保存一个 id (无论是数组的索引还是只是一些唯一的标识符)。但想了解其他人在未来验证用户偏好方面的经验,以便他们始终得到认可。

我怀疑这会结束(要求主观答案),但也许我可以在结束之前获得一些好的见解

最佳答案

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

然后,您应该定义国际化文本,以便以每种语言显示此消息,包括英语。因此,如果您想在英语系统上显示“立方英寸”消息,您将查找该 ID 的英语等效项并获得“立方英寸”、“立方英寸”、“u'in\u00b3”或您喜欢的任何内容。然后您的应用程序就可以显示该文本。但您将始终将永久消息 ID(“立方英寸”)存储在首选项文件中。这使您可以灵活地更改向用户显示的消息的英语表示形式,而无需使先前存储的首选项文件中的 ID 无效。

关于python - 本地化和面向 future ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16620143/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com