==== multi language support ==== possible options regarding implementation || ||'''A[[br]] language specific metadata values''' [[br]] [[br]] "wms_title" "my title" [[br]] "wms_title" "mein titel"||'''B [[br]] language dependent reference data''' [[br]] [[br]] DATA "shapes/rivers_eng.shp" [[br]] DATA "shapes/german/rivers.shp"|| || ||'''1[[br]]key extension'''||"wms_title_eng" "my title" [[br]] "wms_title_ger" "mein titel"||---|| main question: should resolution happen at [[br]] i) write time, i.e. only wms_title goes into mapobject [[br]] or [[br]] ii) read time, i.e. everything goes into mapobject, [[br]] extended key e.g. wms_title_ger is used for reading [[br]] [[br]] mapfile maintainable? validation? || ||'''2[[br]] runtime substitution''' ||---||DATA "shapes/rivers_%language%.shp" [[br]] [[br]] with ''language'' being a request parameter or global setting || already [http://mapserver.org/cgi/runsub.html implemented] in mapserver for certain parameters [[br]] [[br]] all required substitution scenarios (parameters) covered? || ||'''3[[br]] externalization''' [[br]] [[br]] using external files [[br]] ''lang.eng'' [[br]] ''lang.ger'' || "wms_title" "IDC_TITLE" [[br]] [[br]] IDC_TITLE=my title [[br]] IDC_TITLE=mein titel || DATA "IDC_SHAPES_RIVERS" [[br]] [[br]] IDC_SHAPES_RIVERS=shapes/rivers.shp [[br]] IDC_SHAPES_RIVERS=shapes/german/rivers.shp [[br]] || common way of internationalization, [[br]] many tools available to externalize strings [[br]] [[br]] at which time the externalized value should be resolved [[br]] (while parsing mapfile, during msApplySubstitutions, ...)?|| ||'''4[[br]] merge''' [[br]] [[br]] using INCLUDE ||---|| ''standard.map'' [[br]] LAYER [[br]]... [[br]] NAME "rivers" [[br]] INCLUDE "rivers.map" [[br]] ... [[br]] [[br]] ''eng/rivers.map'' [[br]] DATA "shapes/rivers_eng.shp" [[br]] [[br]] ''ger/rivers.map'' [[br]] DATA "shapes/german/rivers.shp" || mostly [http://mapserver.org/mapfile/Include.html implemented] in mapserver [[br]] [[br]] based on current languange the corresponding [[br]] map file needs to be included [[br]] [[br]] only usable for whole "blocks" [[br]] (like a LAYER or the WEB/METADATA section)|| ||'''5[[br]] override''' [[br]] [[br]] override certain values [[br]] of the original mapfile [[br]] e.g. with ''override.ger''|| "wms_title" "my title" !#1 [[br]] [[br]] 1="mein titel" ||LAYER [[br]]... [[br]] NAME "rivers" [[br]] DATA "shapes/rivers_eng.shp" !#2 [[br]] ... [[br]] [[br]] 2="shapes/german/rivers.shp"|| identification of "key" e.g. by comment like !#1 and !#2[[br]] [[br]] other option: use XPath-like syntax [[br]] e.g. [[br]] WEB/METADATA/wms_title="mein titel" [[br]] LAYER[rivers]/DATA="shapes/german/rivers.shp"|| the already existing [http://trac.osgeo.org/mapserver/ticket/3608 patch #3608] uses A1 (applied at read time) and B2