3
"en"및 "ru"언어를 지원하는 앱을 개발 중이므로 사용자가 앱 내에서 언어를 선택할 수 있습니다.iOS : 복수형 및 맞춤 로캘
기본 휴대 전화의 로캘을 'en'으로 설정했지만 앱에서 'ru'언어를 선택한 경우 복수형을 현지화하려는 경우 'many'/ 'few'양식이 무시됩니다. 그래서 그것은 영어 복수 규칙에 의해 현지화되었습니다.
정의 : 계수 = 1
: 내가 가진 출력으로
let locale = NSLocale(localeIdentifier: "ru_RU")
String(format: NSLocalizedString("%d files", comment: ""),
locale: locale,
count)
:
<key>%d files</key>
<dict>
<key>NSStringLocalizedFormatKey</key>
<string>%#@[email protected]</string>
<key>files</key>
<dict>
<key>NSStringFormatSpecTypeKey</key>
<string>NSStringPluralRuleType</string>
<key>NSStringFormatValueTypeKey</key>
<string>d</string>
<key>one</key>
<string>один файл</string>
<key>many</key>
<string>%d файлов</string>
<key>other</key>
<string>%d файла</string>
</dict>
</dict>
코드 (수동 'RU'로케일을 만들 수) 국산화 "один файл"- 및 그것은 맞습니다 count = 2 : "2 файла"- 또한 카테고리 ('기타'카테고리에서)
for count = 6 : "6 файла"- 카테고리가 잘못되었습니다. '기타'이지만 'many'에서 가져와야합니다.
휴대 전화의 언어를 러시아어로 변경하면 모두 올바르게 현지화됩니다.
I 1 = один файл
몇에 대한
하나 그것이 어떻게 채워 져야하는지 안다 :) 그리고 기본 환경에서는 제대로 작동하지만, 그렇지 않은 커스텀 로케일을 사용할 때 문제가있다. 일치 시스템 언어 (예 : 만약 시스템 언어 = 'EN'이지만 다른 규칙을 가진 로케일 'ru'를 사용하면 잘못된 결과가 나옵니다.) – Mikhail