我正在使用Apples Photos Framework将PHAssetCollections加载到我的应用中。 我总是得到智能收藏的英文名称。例如,我得到'收藏'而不是'收藏家'(瑞典语)。我认为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
}
}
答案 0 :(得分:4)
collection.localizedTitle
无法返回任何其他语言的原因,因为您的应用只有一个English
的本地化版本。这绝对是一个Apple Bug,但这是一个黑客按照这些步骤。
sv.lproj
文件夹之外,创建相关文件夹en.lproj
。<强>更新强>
如果您想在添加空白文本后轻松添加更多语言,可以通过选择项目添加其他答案中显示的内容,并在“本地化”部分添加语言并再次选择空白文件,因为我们不想本地化其他文件。
希望它有所帮助,如果怀疑在这里问。
干杯。
答案 1 :(得分:2)
答案 2 :(得分:0)
您的问题可能是您的所有提取都没有显式或隐式返回内置的收藏夹智能相册。 (此外,它有助于诊断,使您的代码只能检查一次获取的结果,因此您可以找出哪一个包含非本地化&#34;收藏夹&#34;。)
如果您明确需要收藏夹集合,请使用PHAssetCollectionSubtypeSmartAlbumFavorites
集合子类型进行搜索。 (它不应该是搜索常规专辑或同步专辑的结果,我会惊讶地发现它在顶级用户集合中,因为它被记录为只返回用户创建的集合。 )
如果显式请求收藏夹智能相册返回非本地化版本,或者您的其他任何一个提取正在返回收藏夹智能相册并且它不是本地化,则可能是Apple错误 - 我推荐telling them about it。
答案 3 :(得分:-1)
ProJect - &gt;本地化 - &gt; “+中文(简体)”enter image description here