Content deleted Content added
move criticism to end |
→Criticism: Expanded it a bit |
||
Line 33:
{{expand section|date=November 2011}}
C standard localization functions are criticized because the localization state is stored globally. This means that in a given program all operations involving a locale can use only one locale at a time. As a result, it is very difficult to implement programs that use more than one locale.<ref>{{cite web | title=The Standard C Locale and the Standard C++ Locales | url=http://www.math.hkbu.edu.hk/parallel/pgi/doc/pgC++_lib/stdlibug/sta_9169.htm | publisher=Rogue Wave Software, Inc. | year=1996}}</ref>
The functions alter the behavior of printf/scanf/strtod which are often used to write saved data to a file or to other programs. The result is that a saved file in one locale will not be readable in another locale, or not be readable ''at all'' due to assumptions such as "numbers end at comma characters". Most large-scale software forces the locale to "C" (or another fixed value) to work around these problems.
Another criticism is that these functions do not address at all the far more important problem of translating text to a different language. A solution that could substitute text strings could easily substitute printf format strings, if some extra %-sequences were added to control the ___location of commas this could achieve all the number formatting fixes in a far more obvious and easily-controlled way.
==Example==
|