Update: The new locale was committed to glibc
and should be part of glibc-2.24
.
Most Israelis are literate in English, and for a large percentage of them, English is also the preferred language when it comes to computers. They prefer English, as it solves right-to-left issues and general inconsistencies (it might be annoying when some programs are translated ands some not). The downside is, that currently, the existing English locales are not suitable for Israel, as there are cultural differences:
- American English spelling is more common in Israel.
- The metric system is used, along with the relevant paper sizes (“A4” instead of Letter).
- Dates are written in dd/mm/YYYY format, unlike in the USA.
- The first day of week, and also the first workday is Sunday.
- The currency used is ILS (₪).
So, up until now users had to choose locales such as en_US or en_GB and compromise on some stuff. To solve this issue, and create a truly suitable English locale for Israel, I wrote a localedef
file for the en_IL locale.
To install the new locale, copy the en_IL
file from the gist below and place under /usr/share/i18n/locales/en_IL
(no extension). Next
# echo "en_IL.UTF-8 UTF-8" >> /usr/local/share/i18n/SUPPORTED
Now, complete the installation by running dpkg-reconfigure locales
and enable en_IL.UTF-8
from the list, and set it as the default locale.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
comment_char % | |
escape_char / | |
% This file is part of the GNU C Library and contains locale data. | |
% The Free Software Foundation does not claim any copyright interest | |
% in the locale data contained in this file. The foregoing does not | |
% affect the license of the GNU C Library as a whole. It does not | |
% exempt you from the conditions of the license if your use would | |
% otherwise be governed by that license. | |
% Locale for English locale in Israel | |
% Contributed by Guy Rutenberg <guyrutenberg@gmail.com>, 2016 | |
LC_IDENTIFICATION | |
title "English locale for Israel" | |
source "Free Software Foundation, Inc." | |
address "http:////www.gnu.org//software//libc//" | |
contact "" | |
email "bug-glibc-locales@gnu.org" | |
tel "" | |
fax "" | |
language "English" | |
territory "Israel" | |
revision "1.1" | |
date "2016-04-19" | |
% | |
category "i18n:2012";LC_IDENTIFICATION | |
category "i18n:2012";LC_CTYPE | |
category "i18n:2012";LC_COLLATE | |
category "i18n:2012";LC_TIME | |
category "i18n:2012";LC_NUMERIC | |
category "i18n:2012";LC_MONETARY | |
category "i18n:2012";LC_MESSAGES | |
category "i18n:2012";LC_PAPER | |
category "i18n:2012";LC_NAME | |
category "i18n:2012";LC_ADDRESS | |
category "i18n:2012";LC_TELEPHONE | |
category "i18n:2012";LC_MEASUREMENT | |
END LC_IDENTIFICATION | |
LC_CTYPE | |
copy "en_GB" | |
END LC_CTYPE | |
LC_COLLATE | |
copy "en_GB" | |
END LC_COLLATE | |
LC_MONETARY | |
copy "he_IL" | |
END LC_MONETARY | |
LC_NUMERIC | |
copy "he_IL" | |
END LC_NUMERIC | |
LC_TIME | |
abday "<U0053><U0075><U006E>";"<U004D><U006F><U006E>";/ | |
"<U0054><U0075><U0065>";"<U0057><U0065><U0064>";/ | |
"<U0054><U0068><U0075>";"<U0046><U0072><U0069>";/ | |
"<U0053><U0061><U0074>" | |
day "<U0053><U0075><U006E><U0064><U0061><U0079>";/ | |
"<U004D><U006F><U006E><U0064><U0061><U0079>";/ | |
"<U0054><U0075><U0065><U0073><U0064><U0061><U0079>";/ | |
"<U0057><U0065><U0064><U006E><U0065><U0073><U0064><U0061><U0079>";/ | |
"<U0054><U0068><U0075><U0072><U0073><U0064><U0061><U0079>";/ | |
"<U0046><U0072><U0069><U0064><U0061><U0079>";/ | |
"<U0053><U0061><U0074><U0075><U0072><U0064><U0061><U0079>" | |
abmon "<U004A><U0061><U006E>";"<U0046><U0065><U0062>";/ | |
"<U004D><U0061><U0072>";"<U0041><U0070><U0072>";/ | |
"<U004D><U0061><U0079>";"<U004A><U0075><U006E>";/ | |
"<U004A><U0075><U006C>";"<U0041><U0075><U0067>";/ | |
"<U0053><U0065><U0070>";"<U004F><U0063><U0074>";/ | |
"<U004E><U006F><U0076>";"<U0044><U0065><U0063>" | |
mon "<U004A><U0061><U006E><U0075><U0061><U0072><U0079>";/ | |
"<U0046><U0065><U0062><U0072><U0075><U0061><U0072><U0079>";/ | |
"<U004D><U0061><U0072><U0063><U0068>";/ | |
"<U0041><U0070><U0072><U0069><U006C>";/ | |
"<U004D><U0061><U0079>";/ | |
"<U004A><U0075><U006E><U0065>";/ | |
"<U004A><U0075><U006C><U0079>";/ | |
"<U0041><U0075><U0067><U0075><U0073><U0074>";/ | |
"<U0053><U0065><U0070><U0074><U0065><U006D><U0062><U0065><U0072>";/ | |
"<U004F><U0063><U0074><U006F><U0062><U0065><U0072>";/ | |
"<U004E><U006F><U0076><U0065><U006D><U0062><U0065><U0072>";/ | |
"<U0044><U0065><U0063><U0065><U006D><U0062><U0065><U0072>" | |
d_t_fmt "<U0025><U0061><U0020><U0025><U0064><U0020><U0025><U0062><U0020><U0025><U0059><U0020><U0025><U0054><U0020><U0025><U005A>" | |
d_fmt "<U0025><U0064><U002F><U0025><U006D><U002F><U0025><U0079>" | |
t_fmt "<U0025><U0054>" | |
am_pm "";"" % 24-hour clock is used | |
t_fmt_ampm "" | |
date_fmt "<U0025><U0061><U0020><U0025><U0065><U0020><U0025><U0062>/ | |
<U0020><U0025><U0048><U003A><U0025><U004D><U003A><U0025><U0053><U0020>/ | |
<U0025><U005A><U0020><U0025><U0059>" | |
week 7;19971130;1 | |
% In Israel Sunday is a workday. | |
first_workday 1 | |
END LC_TIME | |
LC_MESSAGES | |
copy "en_US" | |
END LC_MESSAGES | |
LC_PAPER | |
copy "he_IL" | |
END LC_PAPER | |
LC_NAME | |
copy "en_US" | |
END LC_NAME | |
LC_ADDRESS | |
postal_fmt "<U0025><U0066><U0025><U004E><U0025><U0061><U0025><U004E>/ | |
<U0025><U0064><U0025><U004E><U0025><U0062><U0025><U004E><U0025><U0073>/ | |
<U0020><U0025><U0068><U0020><U0025><U0065><U0020><U0025><U0072><U0025>/ | |
<U004E><U0025><U007A><U0020><U0025><U0054><U0025>/ | |
<U004E><U0025><U0063><U0025><U004E>" | |
country_name "<U0049><U0073><U0072><U0061><U0065><U006C>" | |
country_post "<U0049><U0053><U0052>" | |
country_ab2 "<U0049><U004C>" | |
country_ab3 "<U0049><U0053><U0052>" | |
country_num 376 | |
country_car "<U0049><U004C>" | |
lang_name "<U0045><U006E><U0067><U006C><U0069><U0073><U0068>" | |
lang_ab "<U0065><U006E>" | |
lang_term "<U0065><U006E><U0067>" | |
lang_lib "<U0065><U006E><U0067>" | |
END LC_ADDRESS | |
LC_TELEPHONE | |
copy "he_IL" | |
END LC_TELEPHONE | |
LC_MEASUREMENT | |
copy "he_IL" | |
END LC_MEASUREMENT |
Hi Guy,
Great work, Is it different from http://whatsup.org.il/index.php?name=PNphpBB2&file=viewtopic&t=52405 ?
As long as your locale can’t be inserted into QLocale ( https://bugreports.qt.io/secure/Dashboard.jspa ) and is not a inserted into libc I believe it will be less then usable for the common user, would you care filing a bug in BOTH project to apply your addition ?
From a quick look, the locale you linked to is indeed similar. There are a couple of minor differences. For example, mine uses dd/mm/YYYY format for dates, and the other one uses dd/mm/YY which is less common (and convenient).
Getting it into glibc was the reason I wrote it. I had intended to file a bug after writing the post, but my server went down and then day-job got in the way :-). I’ll probably do it today. Thanks for pointing QLocale, it didn’t occur to me to file a bug with Qt as well.
I filled a bug (#19963) with glibc. However, I couldn’t figure out what format QLocale expects its definitions.
After further search I have identified that prior to enter into QT, a locale must first exist in libc and in CLDR (via https://bugreports.qt.io/browse/QTBUG-35692?focusedCommentId=288638&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-288638).
The new locale was committed to
glibc
, and should be part of glibc-2.24.Do you have any idea how to get an en_IL locale in Android?
have been using linux for a long time, I have no idea how I missed this since 2016. Anyway, it’s great, thanks for pushing this to glibc.