想象一下,我有以下谓词,其中指出ID loc1
指定了一个位置。
isLocation('loc1', 'Location 1').
我想为第二个文本(Location 1
)提供翻译,i。即键值对,例如en='Location 1', de='Ort 1', ru='Местоположение 1'
。
在Prolog中编码此类数据的正确方法是什么,尤其是TuProlog(理想情况下是标准化的Prolog)?
下面的符号是否可以在SWI Prolog之外使用?
isLocation('loc1', ['en'-'Location 1', 'de'-'Ort 1', 'ru'-'Местоположение 1']]).
答案 0 :(得分:3)
最简单的方法,在任何Prolog中工作,使用member / 2来检索键值对。例如
l10n(MessageId, Country, Translated) :-
isLocation(MessageId, Localized),
member(Country-Translated, Localized).
这种基本结构当然需要多项改进,具体取决于要求。