【发布时间】:2010-11-19 22:34:56
【问题描述】:
如果我想在 Core Data 中创建一个实体,该实体的属性值应该是可本地化的,我想知道最有效的方法是什么样的?
作为一个例子,我们假设如下结构:
Book
name (localizable)
description (localizable)
author
本地化的图书条目如下所示:
name: "A great novel" (en/international),
"Ein großartiger Roman" (de),
"Un grand roman" (fr)
description:
"Great!" (en/international),
"Großartig!" (de),
"Grand!" (fr)
author: "John Smith"
在 SQL/SQLite 实现中,我将使用两个表。 books 表包含书籍信息(作者、英文/国际名称和描述)和 localizationBooks 表,该表使用相应书籍的主键关联。第二个表包含本地化名称和描述值以及语言代码。这将允许拥有可扩展数量的本地化。
为了获取数据,我会使用
SELECT COALESCE(localizationBooks.name, books.name)
获取给定语言代码的实际值。这允许使用国际英语值作为不支持的语言的后备。
这是否需要 Core Data 中与 Book 有关系的单独实体(例如 BookLocalization),还是有其他推荐的方法?
【问题讨论】:
标签: cocoa database-design core-data localization internationalization