gsoc2011/work

Version 8 (modified by stefanl, 3 years ago)

--

multi language support

possible options regarding implementation

A
language specific metadata values


"wms_title" "my title"
"wms_title" "mein titel"
B
language dependent reference data


DATA "shapes/rivers_eng.shp"
DATA "shapes/german/rivers.shp"
1
key extension
"wms_title_eng" "my title"
"wms_title_ger" "mein titel"
--- main question: should resolution happen at
i) write time, i.e. only wms_title goes into mapobject
or
ii) read time, i.e. everything goes into mapobject,
extended key e.g. wms_title_ger is used for reading

mapfile maintainable? validation?
2
runtime substitution
---DATA "shapes/rivers_%language%.shp"

with language being a request parameter or global setting
already implemented in mapserver for certain parameters

all required substitution scenarios (parameters) covered?
3
externalization


using external files
lang.eng
lang.ger
"wms_title" "IDC_TITLE"

IDC_TITLE=my title
IDC_TITLE=mein titel
DATA "IDC_SHAPES_RIVERS"

IDC_SHAPES_RIVERS=shapes/rivers.shp
IDC_SHAPES_RIVERS=shapes/german/rivers.shp
common way of internationalization,
many tools available to externalize strings

at which time the externalized value should be resolved
(while parsing mapfile, during msApplySubstitutions, ...)?
4
merge


using INCLUDE
--- standard.map
LAYER
...
NAME "rivers"
INCLUDE "rivers.map"
...

eng/rivers.map
DATA "shapes/rivers_eng.shp"

ger/rivers.map
DATA "shapes/german/rivers.shp"
mostly implemented in mapserver

based on current languange the corresponding
map file needs to be included

only usable for whole "blocks"
(like a LAYER or the WEB/METADATA section)
5
override


override certain values
of the original mapfile
e.g. with override.ger
"wms_title" "my title" #1

1="mein titel"
LAYER
...
NAME "rivers"
DATA "shapes/rivers_eng.shp" #2
...

2="shapes/german/rivers.shp"
identification of "key" e.g. by comment like #1 and #2

other option: use XPath-like syntax
e.g.
WEB/METADATA/wms_title="mein titel"
LAYER[rivers]/DATA="shapes/german/rivers.shp"

 patch #3608 uses A1 (applied at read time) and B2