I’ll explain with detail:
export LANG=ru_RU.UTF-8
That is a shell command that will export an environment variable named LANG
with the given value ru_RU.UTF-8
. That instructs internationalized programs to use the Russian language (ru
), variant from Russia (RU
), and the UTF-8
encoding for console output.
Generally this single line is enough.
This other one:
export LC_CTYPE=ru_RU.UTF-8
Does a similar thing, but it tells the program not to change the language, but only the CTYPE to Russian. If a program can change a text to uppercase, then it will use the Russian rules to do so, even though the text itself may be in English.
It is worth saying that mixing LANG
and LC_CTYPE
can give unexpected results, because few people do that, so it is quite untested, unless maybe:
export LANG=ru_RU.UTF-8
export LC_CTYPE=C
That will make the program output in Russian, but the CTYPE standard old C style.
The last line, LC_ALL
is a last resort override, that will make the program ignore all the other LC_*
variables and use this. I think that you should never write it in a profile line, but use it to run a program in a given language. For example, if you want to write a bug report, and you don’t want any kind of localized output, and you don’t know which LC_*
variables are set:
LC_ALL=C program
About changing the language of all your programs or only the console, that depends on where you put these lines. I put mine in ~/.bashrc
so they don’t apply to the GUI, only to the bash consoles.