【问题标题】:iOS PHAssetCollection localizedTitle always returning english nameiOS PHAssetCollection 本地化标题总是返回英文名称
【发布时间】:2017-07-23 14:28:02
【问题描述】:

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

【问题讨论】:

    标签: ios objective-c iphone photosframework phassetcollection


    【解决方案1】:

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

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

    更新

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

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

    干杯。

    【讨论】:

      【解决方案2】:

      我认为您应该确保您的应用支持瑞典语。 添加您想要支持瑞典语的语言,例如

      【讨论】:

      • 完美解决方案!
      【解决方案3】:

      您的问题可能是没有显式或隐式地返回内置的收藏夹智能相册。 (此外,将代码简化为仅检查一次提取的结果有助于诊断,因此您可以确定哪一个包含非本地化的“收藏夹”。)

      如果您明确想要收藏夹集合,请使用 PHAssetCollectionSubtypeSmartAlbumFavorites 集合子类型搜索它。 (它不应该是搜索常规专辑或同步专辑的结果,如果在顶级用户收藏中看到它,我会感到惊讶,因为据记载,它只返回用户创建的收藏。)

      如果明确请求收藏夹智能相册返回非本地化版本,或者您的其他提取之一返回收藏夹智能相册但未本地化,这可能是 Apple 错误 — 我建议 @987654322 @。

      【讨论】:

        【解决方案4】:

        ProJect -> 本地化 -> "+ Chinese(simplified)"enter image description here

        【讨论】:

        • 为什么会回答这个问题?
        猜你喜欢
        • 2014-03-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-02-11
        • 1970-01-01
        • 2017-09-15
        • 2015-01-25
        相关资源
        最近更新 更多