Javascript 序号本地后缀翻译
Javascript ordinal suffix locale translation
想知道在旨在迎合多语言受众的应用程序中为序号指示符添加后缀是否是个好主意。如果我们想出一个 angular 管道,其逻辑转换数字,如 1 -> 1st、2-> 2nd、3 -> 3rd 其余所有后缀为 'th',这个假设对其他语言有多好如果我们从文件中读取 'st'、'nd'、'rd'、'th',后缀为 'en'、'ar' 等区域设置标识符...
如果我没理解错的话,您是在问一个简单的 "translating" 后缀是否可行。例如"st"(英语)到 "er"(法语总理)。如果那是你的意思,那么不,那是不好的。规则太复杂,语言之间差异太大。
如果您只需要 dates 的这个函数,那么您可以奢侈地只需要 31 个预定义值。然后你可以预编译一些列表,像这样:
en:
["","1st","2nd","3rd", ... ,"29th","30th","31st"]
fr:
["","1er","2e","3e", ..., "29e","30e","31e"]
ar:
["","١.","٢.","٣." , .. ,"٢٩.","٣٠.","٣١."]
我使用 NumberFormatter 通过一个简单的 PHP 脚本生成了这些。我不能保证阿拉伯语是正确的。
如果 任意数字 需要这些后缀,则必须将规则嵌入到您的应用程序中。
顺序规则在 Unicode CLDR 中定义。
https://unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
您可以从数据文件中提取这些规则并将方程式放入您的应用程序中,但这可能需要大量工作。
它们也不完美。我不记得在学校学过多少法语,但快速 Google 表明(第 1 次)你有 1er (premier)、1re (première)、1ers (premiers) 和 1res (premières)。真是一场噩梦。
最适合您的路线取决于具体用例,您的问题并未给出。
想知道在旨在迎合多语言受众的应用程序中为序号指示符添加后缀是否是个好主意。如果我们想出一个 angular 管道,其逻辑转换数字,如 1 -> 1st、2-> 2nd、3 -> 3rd 其余所有后缀为 'th',这个假设对其他语言有多好如果我们从文件中读取 'st'、'nd'、'rd'、'th',后缀为 'en'、'ar' 等区域设置标识符...
如果我没理解错的话,您是在问一个简单的 "translating" 后缀是否可行。例如"st"(英语)到 "er"(法语总理)。如果那是你的意思,那么不,那是不好的。规则太复杂,语言之间差异太大。
如果您只需要 dates 的这个函数,那么您可以奢侈地只需要 31 个预定义值。然后你可以预编译一些列表,像这样:
en:
["","1st","2nd","3rd", ... ,"29th","30th","31st"]
fr:
["","1er","2e","3e", ..., "29e","30e","31e"]
ar:
["","١.","٢.","٣." , .. ,"٢٩.","٣٠.","٣١."]
我使用 NumberFormatter 通过一个简单的 PHP 脚本生成了这些。我不能保证阿拉伯语是正确的。
如果 任意数字 需要这些后缀,则必须将规则嵌入到您的应用程序中。
顺序规则在 Unicode CLDR 中定义。 https://unicode.org/cldr/charts/latest/supplemental/language_plural_rules.html
您可以从数据文件中提取这些规则并将方程式放入您的应用程序中,但这可能需要大量工作。
它们也不完美。我不记得在学校学过多少法语,但快速 Google 表明(第 1 次)你有 1er (premier)、1re (première)、1ers (premiers) 和 1res (premières)。真是一场噩梦。
最适合您的路线取决于具体用例,您的问题并未给出。