如何更改 MPMediaPickerController 的语言设置。

Posted

技术标签:

【中文标题】如何更改 MPMediaPickerController 的语言设置。【英文标题】:How to change language setting of MPMediaPickerController. 【发布时间】:2012-08-10 03:00:26 【问题描述】:

我正在创建一个音乐应用程序,我想支持MPMediaPickerController 的多语言。 我编程如下:

- (IBAction)pushedMusicButton:(id)sender 
    MPMediaPickerController *pickerController = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
    pickerController.delegate = self;
    pickerController.accessibilityLanguage = [[NSLocale preferredLanguages] objectAtIndex:0];
    NSLog(@"Language setting = %@", pickerController.accessibilityLanguage);
    [self presentViewController:pickerController animated:YES completion:nil];

我在设置为日语的 iPhone 上运行此代码。

MediaPicker 窗口打开,但按钮的字符串是英文的……例如“播放列表”、“艺术家”或“歌曲”。 日志显示accessibilityLanguage 设置为JP(语言设置= ja)。

如何更改 MPMediaPickerController 的语言设置?

环境: XCode 4.4.1、ios SDK 5.1、iPhone (iOS 5.1)

【问题讨论】:

检查这个..***.com/questions/5974680/… 【参考方案1】:

谢谢Sun Tzu 和venkat,我终于发现确实需要本地化的文件。但本地化的 string 没有。

我在en.lprojja.lproj 中创建了Localizable.string 文件并将它们添加到我的项目中。起初我尝试使用 null (0byte) Localizable.string 构建,但出现构建错误,因此我输入了一组字符串。 在 en.lproj 中:

"Playlists" = "Playlists";

ja.lproj

然后,不仅“Playlists”,而且其他标签(“Artists”、“Songs”、..)都用日语显示。

为了确认,我将设置更改为 Deutsch。但它在英文中显示为“歌曲”。 (不是“标题”)

我创建了 de.lproj 文件夹并复制了与 en.lproj 完全相同的 Localizable.string。 'Titel' 终于来了。

所以,当您在 .lproj 中添加 Localizable.string 文件时,MPMediaPickerController 中的标签会说您的母语。

我的代码 sn-p 是:

- (IBAction)pushedMusicButton:(id)sender 
    MPMediaPickerController *pickerController = [[MPMediaPickerController alloc] initWithMediaTypes:MPMediaTypeMusic];
    pickerController.delegate = self;
    [self presentViewController:pickerController animated:YES completion:nil];

【讨论】:

以上是关于如何更改 MPMediaPickerController 的语言设置。的主要内容,如果未能解决你的问题,请参考以下文章

更改模式时如何更改导航阴影颜色?

如何更改分区ID为AF?

更改标签文本时如何更改标签颜色

如何更改环境的字体大小?

如何使用 sqitch postgresql 验证更改列数据类型更改?

如何更改列表框项目的文本?