The HTML5 lang attribute can be a composite of Language Code and Country Code.
See Table of Language Culture Names, Codes, and ISO Values for combinations.
The following table contains values for Language Culture Names, Display Names, Culture Codes, and ISO 639x Values that are used by Commerce Server.
Language Culture Name | Display Name | Culture Code | ISO 639x Value |
---|---|---|---|
af-ZA | Afrikaans – South Africa | 0x0436 | AFK |
sq-AL | Albanian – Albania | 0x041C | SQI |
ar-DZ | Arabic – Algeria | 0x1401 | ARG |
ar-BH | Arabic – Bahrain | 0x3C01 | ARH |
ar-EG | Arabic – Egypt | 0x0C01 | ARE |
ar-IQ | Arabic – Iraq | 0x0801 | ARI |
ar-JO | Arabic – Jordan | 0x2C01 | ARJ |
ar-KW | Arabic – Kuwait | 0x3401 | ARK |
ar-LB | Arabic – Lebanon | 0x3001 | ARB |
ar-LY | Arabic – Libya | 0x1001 | ARL |
ar-MA | Arabic – Morocco | 0x1801 | ARM |
ar-OM | Arabic – Oman | 0x2001 | ARO |
ar-QA | Arabic – Qatar | 0x4001 | ARQ |
ar-SA | Arabic – Saudi Arabia | 0x0401 | ARA |
ar-SY | Arabic – Syria | 0x2801 | ARS |
ar-TN | Arabic – Tunisia | 0x1C01 | ART |
ar-AE | Arabic – United Arab Emirates | 0x3801 | ARU |
ar-YE | Arabic – Yemen | 0x2401 | ARY |
hy-AM | Armenian – Armenia | 0x042B | |
Cy-az-AZ | Azeri (Cyrillic) – Azerbaijan | 0x082C | |
Lt-az-AZ | Azeri (Latin) – Azerbaijan | 0x042C | |
eu-ES | Basque – Basque | 0x042D | EUQ |
be-BY | Belarusian – Belarus | 0x0423 | BEL |
bg-BG | Bulgarian – Bulgaria | 0x0402 | BGR |
ca-ES | Catalan – Catalan | 0x0403 | CAT |
zh-CN | Chinese – China | 0x0804 | CHS |
zh-HK | Chinese – Hong Kong SAR | 0x0C04 | ZHH |
zh-MO | Chinese – Macau SAR | 0x1404 | |
zh-SG | Chinese – Singapore | 0x1004 | ZHI |
zh-TW | Chinese – Taiwan | 0x0404 | CHT |
zh-CHS | Chinese (Simplified) | 0x0004 | |
zh-CHT | Chinese (Traditional) | 0x7C04 | |
hr-HR | Croatian – Croatia | 0x041A | HRV |
cs-CZ | Czech – Czech Republic | 0x0405 | CSY |
da-DK | Danish – Denmark | 0x0406 | DAN |
div-MV | Dhivehi – Maldives | 0x0465 | |
nl-BE | Dutch – Belgium | 0x0813 | NLB |
nl-NL | Dutch – The Netherlands | 0x0413 | |
en-AU | English – Australia | 0x0C09 | ENA |
en-BZ | English – Belize | 0x2809 | ENL |
en-CA | English – Canada | 0x1009 | ENC |
en-CB | English – Caribbean | 0x2409 | |
en-IE | English – Ireland | 0x1809 | ENI |
en-JM | English – Jamaica | 0x2009 | ENJ |
en-NZ | English – New Zealand | 0x1409 | ENZ |
en-PH | English – Philippines | 0x3409 | |
en-ZA | English – South Africa | 0x1C09 | ENS |
en-TT | English – Trinidad and Tobago | 0x2C09 | ENT |
en-GB | English – United Kingdom | 0x0809 | ENG |
en-US | English – United States | 0x0409 | ENU |
en-ZW | English – Zimbabwe | 0x3009 | |
et-EE | Estonian – Estonia | 0x0425 | ETI |
fo-FO | Faroese – Faroe Islands | 0x0438 | FOS |
fa-IR | Farsi – Iran | 0x0429 | FAR |
fi-FI | Finnish – Finland | 0x040B | FIN |
fr-BE | French – Belgium | 0x080C | FRB |
fr-CA | French – Canada | 0x0C0C | FRC |
fr-FR | French – France | 0x040C | |
fr-LU | French – Luxembourg | 0x140C | FRL |
fr-MC | French – Monaco | 0x180C | |
fr-CH | French – Switzerland | 0x100C | FRS |
gl-ES | Galician – Galician | 0x0456 | |
ka-GE | Georgian – Georgia | 0x0437 | |
de-AT | German – Austria | 0x0C07 | DEA |
de-DE | German – Germany | 0x0407 | |
de-LI | German – Liechtenstein | 0x1407 | DEC |
de-LU | German – Luxembourg | 0x1007 | DEL |
de-CH | German – Switzerland | 0x0807 | DES |
el-GR | Greek – Greece | 0x0408 | ELL |
gu-IN | Gujarati – India | 0x0447 | |
he-IL | Hebrew – Israel | 0x040D | HEB |
hi-IN | Hindi – India | 0x0439 | HIN |
hu-HU | Hungarian – Hungary | 0x040E | HUN |
is-IS | Icelandic – Iceland | 0x040F | ISL |
id-ID | Indonesian – Indonesia | 0x0421 | |
it-IT | Italian – Italy | 0x0410 | |
it-CH | Italian – Switzerland | 0x0810 | ITS |
ja-JP | Japanese – Japan | 0x0411 | JPN |
kn-IN | Kannada – India | 0x044B | |
kk-KZ | Kazakh – Kazakhstan | 0x043F | |
kok-IN | Konkani – India | 0x0457 | |
ko-KR | Korean – Korea | 0x0412 | KOR |
ky-KZ | Kyrgyz – Kazakhstan | 0x0440 | |
lv-LV | Latvian – Latvia | 0x0426 | LVI |
lt-LT | Lithuanian – Lithuania | 0x0427 | LTH |
mk-MK | Macedonian (FYROM) | 0x042F | MKD |
ms-BN | Malay – Brunei | 0x083E | |
ms-MY | Malay – Malaysia | 0x043E | |
mr-IN | Marathi – India | 0x044E | |
mn-MN | Mongolian – Mongolia | 0x0450 | |
nb-NO | Norwegian (BokmÃ¥l) – Norway | 0x0414 | |
nn-NO | Norwegian (Nynorsk) – Norway | 0x0814 | |
pl-PL | Polish – Poland | 0x0415 | PLK |
pt-BR | Portuguese – Brazil | 0x0416 | PTB |
pt-PT | Portuguese – Portugal | 0x0816 | |
pa-IN | Punjabi – India | 0x0446 | |
ro-RO | Romanian – Romania | 0x0418 | ROM |
ru-RU | Russian – Russia | 0x0419 | RUS |
sa-IN | Sanskrit – India | 0x044F | |
Cy-sr-SP | Serbian (Cyrillic) – Serbia | 0x0C1A | |
Lt-sr-SP | Serbian (Latin) – Serbia | 0x081A | |
sk-SK | Slovak – Slovakia | 0x041B | SKY |
sl-SI | Slovenian – Slovenia | 0x0424 | SLV |
es-AR | Spanish – Argentina | 0x2C0A | ESS |
es-BO | Spanish – Bolivia | 0x400A | ESB |
es-CL | Spanish – Chile | 0x340A | ESL |
es-CO | Spanish – Colombia | 0x240A | ESO |
es-CR | Spanish – Costa Rica | 0x140A | ESC |
es-DO | Spanish – Dominican Republic | 0x1C0A | ESD |
es-EC | Spanish – Ecuador | 0x300A | ESF |
es-SV | Spanish – El Salvador | 0x440A | ESE |
es-GT | Spanish – Guatemala | 0x100A | ESG |
es-HN | Spanish – Honduras | 0x480A | ESH |
es-MX | Spanish – Mexico | 0x080A | ESM |
es-NI | Spanish – Nicaragua | 0x4C0A | ESI |
es-PA | Spanish – Panama | 0x180A | ESA |
es-PY | Spanish – Paraguay | 0x3C0A | ESZ |
es-PE | Spanish – Peru | 0x280A | ESR |
es-PR | Spanish – Puerto Rico | 0x500A | ES |
es-ES | Spanish – Spain | 0x0C0A | |
es-UY | Spanish – Uruguay | 0x380A | ESY |
es-VE | Spanish – Venezuela | 0x200A | ESV |
sw-KE | Swahili – Kenya | 0x0441 | |
sv-FI | Swedish – Finland | 0x081D | SVF |
sv-SE | Swedish – Sweden | 0x041D | |
syr-SY | Syriac – Syria | 0x045A | |
ta-IN | Tamil – India | 0x0449 | |
tt-RU | Tatar – Russia | 0x0444 | |
te-IN | Telugu – India | 0x044A | |
th-TH | Thai – Thailand | 0x041E | THA |
tr-TR | Turkish – Turkey | 0x041F | TRK |
uk-UA | Ukrainian – Ukraine | 0x0422 | UKR |
ur-PK | Urdu – Pakistan | 0x0420 | URD |
Cy-uz-UZ | Uzbek (Cyrillic) – Uzbekistan | 0x0843 | |
Lt-uz-UZ | Uzbek (Latin) – Uzbekistan | 0x0443 | |
vi-VN | Vietnamese – Vietnam | 0x042A | VIT |
Xdebug trace != profile
So it just took me all night to figure out that in Xdebug ‘tracing’ is different to ‘profiling’.
It didn’t help that the xdebug.trace_output_name included an example format of ‘cachegrind.out.%s’. Why would you name a trace file cachegrind.out if only profile files are in cachegrind format!?
In my efforts to get profiling to work I found myself loading trace files into KCachegrind and getting the rather unhelpful message: “Could not open the file “/run/shm/xdebug/trace…xt”. Check it exists and you have enough permissions to read it.”
So the error message is about file permissions. I checked and checked and checked again but the file permissions were OK. The problem was I was loading a trace file, not a profile file.
So I gave up on KCachegrind and tried to get webgrind to work. Turns out loading a trace file (not a profile file) into webgrind doesn’t work either. I got the same problem reported by Sven about ‘parsers is undefined’. I fucked around trying to update the jquery.tablesorter plugin in webgrind, but the problem was due to the fact I was loading a tracing file, not a profiling file.
In the end I got it all figured out. Here’s my /etc/php5/mods-enabled/xdebug.ini file:
zend_extension=/usr/lib/php5/20131226/xdebug.so xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_mode=req ;xdebug.remote_host=127.0.0.1 xdebug.remote_host=10.1.1.203 ;xdebug.remote_port=9000 xdebug.remote_port=9999 ; http://www.xdebug.org/docs/all xdebug.profiler_enable=1 xdebug.profiler_output_dir=/run/shm/xdebug xdebug.profiler_output_name=cachegrind.out.%t.%R xdebug.auto_trace=1 xdebug.collect_assignments=1 xdebug.collect_includes=1 xdebug.collect_params=4 xdebug.collect_return=1 xdebug.collect_vars=0 xdebug.show_mem_delta=1 ;2 for HTML: xdebug.trace_format=0 xdebug.trace_options=1 xdebug.trace_output_dir=/run/shm/xdebug xdebug.trace_output_name=trace.%t.%R xdebug.var_display_max_children=-1 xdebug.var_display_max_data=-1 xdebug.var_display_max_depth=-1
The above config supports generation of tracing files and profiling files. I can now load my profiling files into KCachegrind and webgrind.
Everything is easy when you know how!
Change user’s password in Kerberos with kadmin
To change a user’s Kerberos password (on charity):
sudo kadmin -p root -w `cat /home/jj5/kadmin_root_pass` -q 'cpw eguser'
Where ‘eguser’ is the username of the account being changed.
Fixing meta-keys in Vim via Mac OS X Terminal.app
So I configured Terminal.app to use Option (Alt) as Meta key: Terminal => Preferences => Profiles => Keyboard => Use Option as Meta key
But
nmap <M-j> mz:m+<cr>`z nmap <M-k> mz:m-2<cr>`z
So I found this article: Fix meta-keys that break out of Insert mode and ended up with the following snippet for my .vimrc which fixed my Meta-key problem:
let c='a' while c <= 'z' exec "set <M-".tolower(c).">=\e".c exec "imap \e".c." <M-".tolower(c).">" let c = nr2char(1+char2nr(c)) endw
Everything is easy when you know how!
POSIX Signals in C: List of Signals
See POSIX Signals in C for a list of signals…
Entering SSH passphrase once in a KDE Pulse session
If you want KDE to remember your SSH key’s passphrase for your whole desktop session you can create a ~/.config/autostart/ssh-add.desktop file like this:
[Desktop Entry] Type=Application Name=ssh-add Comment=Adds my private key to my session. Exec=/usr/bin/konsole -e 'ssh-add /home/$USER/.ssh/id_rsa'
Change a user’s User ID on Mac OS X
Did this. Hope I haven’t fucked my computer!
Seven habits of effective text editing
Got to read Seven habits of effective text editing…
…and Wholly Unbalanced Parentheses: My Vimrc…
…and slightly related OS X: Keyboard shortcuts…
Edit /etc/auto_master on Max OS X to disable /home auto mount
I had a problem creating files/directories in /home on my Mac.
To fix the problem I edited /etc/auto_master and commented out the /home line.
Then I rebooted and was able to use /home.
I heard on the grape vine that Time Machine doesn’t backup /home, which is no problem for me…