多言語環境で動作する iOS アプリを作成しています。その結果、プログラムはシステム言語とは異なる言語で動作できます。アプリを再起動せずに、アプリ内で言語を変更することもできます。したがって、NSLocalizedString を使用する代わりに、次のようなメカニズムを使用しています。
- (NSString *)stringForLanguage:(NSString*)key
{
NSString *path;
if(prefLanguage == 0) {
path = [[NSBundle mainBundle] pathForResource:@"de" ofType:@"lproj"];
} else {
path = [[NSBundle mainBundle] pathForResource:@"fr" ofType:@"lproj"];
}
NSString* str=[[NSBundle bundleWithPath:path] localizedStringForKey:key value:@"" table:nil];
return str;
}
プログラムをアクセス可能にしたいので、ドイツ語とフランス語を切り替えるこの小さなメソッドを書きました:
- (void)setVoLanguage:(NSObject*)object
{
if (prefLanguage == 0){
[object setAccessibilityLanguage:@"de-DE"];
} else {
[object setAccessibilityLanguage:@"fr-FR"];
}
}
私はこれらの方法を次のように使用しています:
- (NSString *)accessibilityLabel {
[appDelegate setVoLanguage:self];
return [NSString stringWithString:[appDelegate stringForLanguage:@"UI_SPLIT_SLIDER"]];
}
- (NSString *)accessibilityHint {
[appDelegate setVoLanguage:self];
return [NSString stringWithString:[appDelegate stringForLanguage:@"UI_SPLIT_SLIDER_H"]];
}
私の電話は英語で動いています。最初のものは正常に機能します。つまり、値はドイツ語またはフランス語で読み取られますが、ヒントは常に英語で読み取られます。私は混乱しています。
したがって、accessibilityLabels と accessibilityValues では問題なく機能しますが、accessibilityHints では機能しません。アクセシビリティヒントの言語を設定する方法を知っている人はいますか?
ありがとうございました。