Wyobraź sobie, że mam następujący predykat, który stwierdza, że identyfikator loc1
wyznacza lokalizację.
isLocation("loc1", "Location 1").
Chcę zapewnić tłumaczenia drugiego tekstu (Location 1
), ja. mi. pary klucz-wartość, takie jak en="Location 1", de="Ort 1", ru="Местоположение 1"
.
Jaki jest prawidłowy sposób kodowania takich danych w Prologu, szczególnie w TuPrologu (a najlepiej w standaryzowanym Prologu)?
Czy poniższa notacja działałaby poza SWI Prolog?
isLocation("loc1", ["en"-"Location 1", "de"-"Ort 1", "ru"-"Местоположение 1"]]).
Odpowiedzi:
3 dla odpowiedzi № 1najłatwiejszy sposób, pracując w dowolnym Prologu, wykorzystuje członka / 2 do pobierania par klucz-wartość. Na przykład
l10n(MessageId, Country, Translated) :-
isLocation(MessageId, Localized),
member(Country-Translated, Localized).
Taki podstawowy konstrukt wymagałby oczywiście kilku ulepszeń, w zależności od wymagań.