iOS PHAssetCollection的localizedTitle总是返回英文名称

8

我正在使用苹果的照片框架将PHAssetCollections加载到我的应用程序中。 我总是得到智能集合的英文名称。例如,我得到“Favorites”而不是“Favoriter”(瑞典语)。我认为localizedTitle属性会返回模拟器或iPhone运行的语言。(在具有瑞典语和地区设置的iPhone上运行)。

有其他人遇到过这种情况吗? 示例代码:

NSArray *collectionsFetchResults;
NSMutableArray *localizedTitles = [[NSMutableArray alloc] init];

PHFetchResult *smartAlbums = [PHAssetCollection       fetchAssetCollectionsWithType:PHAssetCollectionTypeSmartAlbum
                                                                            subtype:PHAssetCollectionSubtypeAlbumRegular options:nil];
PHFetchResult *syncedAlbums = [PHAssetCollection fetchAssetCollectionsWithType:PHAssetCollectionTypeAlbum
                                                                       subtype:PHAssetCollectionSubtypeAlbumSyncedAlbum options:nil];
PHFetchResult *userCollections = [PHCollectionList fetchTopLevelUserCollectionsWithOptions:nil];

// Add each PHFetchResult to the array
collectionsFetchResults = @[smartAlbums, userCollections, syncedAlbums];

for (int i = 0; i < collectionsFetchResults.count; i ++) {

    PHFetchResult *fetchResult = collectionsFetchResults[i];

    for (int x = 0; x < fetchResult.count; x ++) {

        PHCollection *collection = fetchResult[x];
        localizedTitles[x] = collection.localizedTitle;
        NSLog(@"%@", collection.localizedTitle); //<= Always prints english names
    }
}
4个回答

5
collection.localizedTitle为什么不返回其他语言是因为你的应用只有一个本地化,即英语。这绝对是苹果的一个漏洞,但是以下是一个方法,按照以下步骤进行操作。
  1. 除了已有的en.lproj文件夹之外,创建相关文件夹sv.lproj
  2. 在文件夹中添加一个空白文本文件,然后将该文件添加到您的项目中。
  3. 通过执行第二步,您正在为您的项目添加瑞典语支持。
  4. 运行您的代码,它应该会返回瑞典语标题。

更新

如果您想在添加空白文本后轻松添加更多语言,则可以像另一个答案中所示那样选择项目,在本地化部分添加语言并再次选择空白文件,因为我们不想本地化其他文件。

希望这能帮助您,如有疑问,请在此处提问。

干杯。


3

我认为您应该确保您的应用程序支持瑞典语。例如,添加您要支持瑞典语的语言 add Swedish language


完美的解决方案! - Jagdeep Singh

0

你的问题可能是因为你的所有获取操作没有显式或隐式地返回内置的“收藏夹”智能相册。(此外,将你的代码缩小到仅检查一个获取结果会有助于诊断,这样你就可以找出哪个包含了非本地化的“收藏夹”。)

如果你需要显示获取“收藏夹”集合,请使用PHAssetCollectionSubtypeSmartAlbumFavorites 集合子类型进行搜索。(它不应该是常规相册或同步的相册的搜索结果,而且我会惊讶地看到它出现在顶级用户集合中,因为文档中只返回用户创建的集合。)

如果显式请求“收藏夹”智能相册返回的是非本地化版本,或者你的其他获取操作返回的“收藏夹”智能相册没有本地化,那么这可能是苹果的一个bug——我建议告诉他们。


-1

1
为什么这个回答能够解决问题? - Papershine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接