我正在使用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
    }
}

最佳答案

之所以collection.localizedTitle不返回任何其他语言的原因,是因为您的应用只有一个本地化版本,即English。这绝对是一个Apple Bug,但是请按照以下步骤进行操作。

  • 除了已经拥有的sv.lproj文件夹之外,创建相关的文件夹en.lproj
  • 在文件夹中添加一个空白文本文件,然后将该文件添加到您的项目中。
  • 执行步骤2。您正在为项目添加瑞典语支持。
  • 运行您的代码,它将返回瑞典语标题。

  • 更新

    如果要在添加空白文本后轻松添加更多语言,可以通过选择“项目”来添加其他答案中显示的内容,然后在“本地化”部分中添加语言并再次选择空白文件,因为我们不想本地化其他文件。

    希望对您有所帮助,如有疑问,请在这里提出。

    干杯。

    10-05 21:17
    查看更多