absolutely agreed.
On Wed, Apr 19, 2017 at 1:52 PM, Domen Vrankar <domen.vran...@gmail.com> wrote: > 2017-04-18 19:16 GMT+02:00 Konstantin Podsvirov <konstan...@podsvirov.pro> > : > >> Draft code: >> >> > set(GREETING "greeting message" # Optional default value >> > en "Hello, world!" >> > ru "Привет, мир!") >> > >> > set(CMAKE_OUTPUT_LOCALE "en") # Or CMAKE_L10N_LOCALE... >> > >> > message("$L10N{GREETING}") # Hello, world! >> > >> > set(CMAKE_OUTPUT_LOCALE "fr") >> > >> > message("$L10N{GREETING}") # greeting text >> > >> > message("$L10N:ru{GREETING}") # Привет, мир! >> >> Any feedback? > > > Coming from a small country I'm not too keen on localization as it makes > my life harder - in case of an error I have to guess what the english > version of the error message would look like just to get results on Google. > > I somewhat understand the wish of non programmers to see text in their own > language but for developers english is de facto programming standard > language so I don't see a reason for such an addition. > > That being said I'd suggest a more generic alternative that can be used > for things other than localization: > > Access by array position: > > set(GREETING "greeting message" "Hello, world!" "Привет, мир!") > > message(${GREETING}) # prints "greeting message" > > message(${GREETING:0}) # also prints "greeting message" > > message(${GREETING:1}) # prints "Hello, world!" > > message(${GREETING:2}) # prints "Привет, мир!" > where the underlying structure of GREETING is "greeting message;Hello, > world!;Привет, мир!" > > Or taking that even further by defining maps: > > set(GREETING "greeting message" "en:Hello, world!" "ru:Привет, мир!") > > message(${GREETING}) # prints "greeting message" > > message(${GREETING:}) # also prints "greeting message" > > message(${GREETING:en}) # prints "Hello, world!" > > message(${GREETING:ru}) # prints "Привет, мир!" > where the underlying structure of GREETING is "greeting message;en:Hello, > world!;ru:Привет, мир!" > > This could then be used for e.g. for creating enums e.g.: > > set(BUILD_TYPE_OPTIONS "default_flags" "Debug:debug_flags" > "Release:release_flags" ...) > > message("using flags: ${CMAKE_BUILD_TYPE_OPTIONS:${CMAKE_BUILD_TYPE}}") > # error if outside of range (e.g. OddRelease was specified for > CMAKE_BUILD_TYPE) > > For this to really be useful support for if() command would also be > required. > > Regards, > Domen > > > -- > > Powered by www.kitware.com > > Please keep messages on-topic and check the CMake FAQ at: > http://www.cmake.org/Wiki/CMake_FAQ > > Kitware offers various services to support the CMake community. For more > information on each offering, please visit: > > CMake Support: http://cmake.org/cmake/help/support.html > CMake Consulting: http://cmake.org/cmake/help/consulting.html > CMake Training Courses: http://cmake.org/cmake/help/training.html > > Visit other Kitware open-source projects at http://www.kitware.com/ > opensource/opensource.html > > Follow this link to subscribe/unsubscribe: > http://public.kitware.com/mailman/listinfo/cmake-developers >
-- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: http://public.kitware.com/mailman/listinfo/cmake-developers