ios - 立陶宛语名词翻译与iOS中的数字一起使用
问题描述
当我尝试将现有的 iOS 应用程序翻译成立陶宛语时,出现了一个重要问题。我知道 Apple 翻译系统是如何工作的,尤其是对于英语或匈牙利语等语言。但是我不知道如何结合数字翻译立陶宛名词。
对于“įvykis”(事件)这个词,立陶宛文法与数词的作用是这样的:
Lithuanian English
0 įvykių 0 events
1 įvykis 1 event
2 - 9 įvykiai 2 - 9 events
10 - 20 įvykių 10 - 20 events
21 įvykis 21 events
22 -29 įvykiai 22 - 29 events
30 įvykių 30 events
the same logic continuous
as of 21
有关立陶宛名词变格的更多信息,请参阅此Wikipedia 文章。
我的问题是,立陶宛语的“Localizable.stringsdict”中必须填写哪些关键值?对于英语,此文件如下所示:
对于立陶宛语,相同的文件如下所示:
最后一个表中的那些条目只是部分正确。有谁知道我必须使用哪些键才能将我的表映射到 stringsdict 表?哪些键/关键字是必需的?
解决方案
在stringsdict
文件中,您只能拥有键zero
、one
、two
、few
、many
和other
。这就是你真正需要的。iOS 有自己的数据(基于来自 Unicode 标准的信息),根据实际数字告诉它要使用哪些键。
这在(现已存档的)国际化和本地化指南中进行了介绍,特别是处理名词复数和计量单位一章,其中详细介绍了附录 Cstringsdict
中的文件。
您还可以从Unicode中找到特定于语言的规则。向下滚动到立陶宛语,您将看到有关如何将类别与给定数字一起使用的内置规则。
简而言之,您在立陶宛语的“活动”中需要以下内容:
one - %d įvykis
few - %d įvykiai
other - %d įvykių
iOS 会知道one
用于 1、21、31、41 等。它会知道few
用于 2~9、22~29 等。它会知道other
用于 0、10~20、30 等。
推荐阅读
- sql-server - 尝试在 SQL Server 中调用存储过程以将 XML 数据插入 Delta 表时出现“无法切换编码”警告
- android - 为什么从 AVD 创建的 Android 9 模拟器显示如下
- angular - 选项卡内的 Angular Material mat 选项卡和主第一个选项卡名称未更改
- pentaho - 使用 PDI 的 Pentaho 报告输出组件出现错误
- java - 带有 RabbitMQ 生产者的 REST 端点
- javascript - 角度 6 等待回复
- google-cloud-dataflow - GCP Dataflow API 不评估在 dataprep 上编写的配方中调用的 now/today() 函数
- bash - 在 bash 变量上使用 cut 时出现“找不到命令”
- http - NMEA 数据的正确 Content-Type 标头?
- php - Symfony UniqueEntity 验证消息