Skip to content
Commits on Source (720)
......@@ -15,3 +15,5 @@ iso-codes.pc
# Deprecated XML files which are generated from JSON data
*.xml
.DS_Store
......@@ -7,6 +7,126 @@ The format is based on
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [4.18.0] – 2025-04-11
### Changed
* Translation updates for ISO 3166-1
* Translation updates for ISO 3166-2
* Translation updates for ISO 3166-3
* Translation updates for ISO 639-2
* Translation updates for ISO 639-3
* Translation updates for ISO 639-5
* Translation updates for ISO 4217
* Translation updates for ISO 15924
### Fixed
* Replace FSF postal address with their website
* Rename Chinese translations. Closes: #1085988
## [4.17.0] – 2024-09-13
### Changed
* Translation updates for ISO 3166-1
* Translation updates for ISO 3166-2
* Translation updates for ISO 3166-3
* Translation updates for ISO 639-2
* Translation updates for ISO 639-3
* Translation updates for ISO 639-5
* Translation updates for ISO 4217
* Translation updates for ISO 15924
### Fixed
* Add letter 'g' to conversion script for Tatar
* Regenerate cyrillic Tatar from latin Tatar
* Update Romanian translation and remove most pre- and suffixes
## [4.16.0] – 2024-01-14
### Added
- Include a check to prevent multiple entries with the same keys
in 'bin/validate_json_data.py'
- Reuse translations from ISO 639-2 for ISO 639-5
### Changed
- Rename nb.po to nb_NO.po
- Rename mo.po to ro_MD.po
- Translation updates for ISO 3166-1
- Translation updates for ISO 3166-2
- Translation updates for ISO 3166-3
- Translation updates for ISO 639-2
- Translation updates for ISO 639-3
- Translation updates for ISO 639-5
- Translation updates for ISO 4217
- Translation updates for ISO 15924
- Reformat python files with black
### Fixed
- Fix: always use country code for parent in ISO 3166-2
- ISO 3166-2: Fix subdivision names for Finland. Fixes #37
## [4.15.0] – 2023-04-27
### Changed
- Translation updates for ISO 3166-1
- Translation updates for ISO 3166-3
- Translation updates for ISO 639-2
## [4.14.0] – 2023-04-27
### Changed
- Translation updates for ISO 3166-1
- Translation updates for ISO 3166-2
- Translation updates for ISO 3166-3
- Translation updates for ISO 639-2
- Translation updates for ISO 639-3
- Translation updates for ISO 639-5
- Translation updates for ISO 4217
- Translation updates for ISO 15924
### Fixed
* ISO 3166-2: Fix wrong Spanish translation
## [4.13.0] – 2023-02-28
### Added
- ISO 3166-1: Add missing common names for Laos, Iran, and Syria.
Fixes #32
### Changed
- Translation updates for ISO 3166-1
- Kazakh from Debian BTS. Closes: #1025423
- Catalan from Debian BTS. Closes: #1026972
- Translation updates for ISO 3166-2
- Translation updates for ISO 3166-3
- Translation updates for ISO 639-2
- Translation updates for ISO 639-3
- Translation updates for ISO 639-5
- Translation updates for ISO 4217
- Translation updates for ISO 15924
### Fixed
- ISO 3166-3: Fix withdrawal dates of AN, CS and YU. Fixes #28
## [4.12.0] – 2022-11-06
### Changed
......@@ -21,6 +141,10 @@ and this project adheres to
- Translation updates for ISO 4217
- Translation updates for ISO 15924
### Fixed
- ISO 3166-2: Remove comment from Dutch translation. Fixes #41
## [4.11.0] – 2022-07-25
......@@ -249,7 +373,13 @@ please switch to the JSON data files.**
two and a half years. Please use the JSON data files instead.
[UNRELEASED]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.12.0...main
[UNRELEASED]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.18.0...main
[4.18.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.17.0...v4.18.0
[4.17.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.16.0...v4.17.0
[4.16.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.15.0...v4.16.0
[4.15.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.14.0...v4.15.0
[4.14.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.13.0...v4.14.0
[4.13.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.12.0...v4.13.0
[4.12.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.11.0...v4.12.0
[4.11.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.10.0...v4.11.0
[4.10.0]: https://salsa.debian.org/iso-codes-team/iso-codes/compare/v4.9.0...v4.10.0
......
......@@ -2,7 +2,7 @@
Version 2.1, February 1999
Copyright (C) 1991, 1999 Free Software Foundation, Inc.
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
<https://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
......@@ -484,8 +484,7 @@ convey the exclusion of warranty; and each file should have at least the
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this library; if not, see <https://www.gnu.org/licenses/>.
Also add information on how to contact you by electronic and paper mail.
......@@ -496,7 +495,7 @@ necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the
library `Frob' (a library for tweaking knobs) written by James Random Hacker.
<signature of Ty Coon>, 1 April 1990
Ty Coon, President of Vice
<signature of Moe Ghoul>, 1 April 1990
Moe Ghoul, President of Vice
That's all there is to it!
# Makefile.in generated by automake 1.16.5 from Makefile.am.
# Makefile.in generated by automake 1.17 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
# Copyright (C) 1994-2024 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -70,6 +70,8 @@ am__make_running_with_option = \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
am__rm_f = rm -f $(am__rm_f_notfound)
am__rm_rf = rm -rf $(am__rm_f_notfound)
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
......@@ -147,10 +149,9 @@ am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
{ test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
$(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
}
am__installdirs = "$(DESTDIR)$(jsondir)" "$(DESTDIR)$(pkgconfigdir)"
DATA = $(dist_json_DATA) $(pkgconfig_DATA)
......@@ -187,8 +188,8 @@ distdir = $(PACKAGE)-$(VERSION)
top_distdir = $(distdir)
am__remove_distdir = \
if test -d "$(distdir)"; then \
find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
&& rm -rf "$(distdir)" \
find "$(distdir)" -type d ! -perm -700 -exec chmod u+rwx {} ';' \
; rm -rf "$(distdir)" \
|| { sleep 5 && rm -rf "$(distdir)"; }; \
else :; fi
am__post_remove_distdir = $(am__remove_distdir)
......@@ -217,7 +218,7 @@ am__relativize = \
dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \
done; \
reldir="$$dir2"
GZIP_ENV = --best
GZIP_ENV = -9
DIST_ARCHIVES = $(distdir).tar.xz
DIST_TARGETS = dist-xz
# Exists only to be overridden by the user if desired.
......@@ -225,7 +226,9 @@ AM_DISTCHECK_DVI_TARGET = dvi
distuninstallcheck_listfiles = find . -type f -print
am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
| sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
distcleancheck_listfiles = find . -type f -print
distcleancheck_listfiles = \
find . \( -type f -a \! \
\( -name .nfs* -o -name .smb* -o -name .__afs* \) \) -print
ACLOCAL = @ACLOCAL@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
......@@ -277,8 +280,10 @@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
am__leading_dot = @am__leading_dot@
am__rm_f_notfound = @am__rm_f_notfound@
am__tar = @am__tar@
am__untar = @am__untar@
am__xargs_n = @am__xargs_n@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
......@@ -517,7 +522,7 @@ distdir: $(BUILT_SOURCES)
distdir-am: $(DISTFILES)
$(am__remove_distdir)
test -d "$(distdir)" || mkdir "$(distdir)"
$(AM_V_at)$(MKDIR_P) "$(distdir)"
@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
list='$(DISTFILES)'; \
......@@ -627,7 +632,7 @@ dist dist-all:
distcheck: dist
case '$(DIST_ARCHIVES)' in \
*.tar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\
eval GZIP= gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
*.tar.bz2*) \
bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
*.tar.lz*) \
......@@ -637,7 +642,7 @@ distcheck: dist
*.tar.Z*) \
uncompress -c $(distdir).tar.Z | $(am__untar) ;;\
*.shar.gz*) \
eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\
eval GZIP= gzip -dc $(distdir).shar.gz | unshar ;;\
*.zip*) \
unzip $(distdir).zip ;;\
*.tar.zst*) \
......@@ -740,9 +745,9 @@ mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES)
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
-$(am__rm_f) $(DISTCLEANFILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
......@@ -869,3 +874,10 @@ sign-release: iso-codes-$(VERSION).tar.xz
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# Tell GNU make to disable its built-in pattern rules.
%:: %,v
%:: RCS/%,v
%:: RCS/%
%:: s.%
%:: SCCS/s.%
This diff is collapsed.
......@@ -16,8 +16,8 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# License along with this program.
# If not, see https://www.gnu.org/licenses/.
import re
import sys
......@@ -40,11 +40,14 @@ for filename in sys.argv:
try:
utf8 = line.decode(encoding="utf-8", errors="strict")
except UnicodeError as error:
print("UTF-8 encoding error in file %s: %s (position %d)" % (filename, error.reason, error.start))
print(
"UTF-8 encoding error in file %s: %s (position %d)"
% (filename, error.reason, error.start)
)
print("Binary data: %s" % line)
exit_status = 1
break
if re.search(r'Content-Type: text/plain; charset=UTF-8', utf8):
if re.search(r"Content-Type: text/plain; charset=UTF-8", utf8):
charset_utf8_seen = True
# The whole file has been read, the content type should have
# been detected now. Otherwise, it's an error.
......
......@@ -15,8 +15,8 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# License along with this program.
# If not, see https://www.gnu.org/licenses/.
import json
import sys
......@@ -56,6 +56,7 @@ if domain == "iso_3166-2":
with open(datapath + "/" + domain + ".json", encoding="utf-8") as json_file:
iso = json.load(json_file)
# Helper function for keeping track of msgids and comments
# This is needed to ensure that no msgid is repeated, but
# instead the comments are joined. (ISO 3166-2 is an example.)
......@@ -66,10 +67,11 @@ def add_msgid(name, comment):
data["comment"].append(comment)
sorted_data[msgids[name]] = data
else:
sorted_data.append({'msgid': name, 'comment': [comment]})
sorted_data.append({"msgid": name, "comment": [comment]})
# Store the index of the newly added msgid
msgids[name] = len(sorted_data) - 1
# Collect all msgids with their comments
msgids = {}
sorted_data = []
......@@ -88,25 +90,29 @@ with open(domain + ".pot", "w", encoding="utf-8") as pot_file:
pot_file.write("# Translation of ISO " + iso_number + " to LANGUAGE\n")
pot_file.write("# " + description[domain] + "\n")
pot_file.write("#\n")
pot_file.write("# This file is distributed under the same license as the iso-codes package.\n")
pot_file.write(
"# This file is distributed under the same license as the iso-codes package.\n"
)
pot_file.write("#\n")
pot_file.write("# Copyright ©\n")
pot_file.write("# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.\n")
pot_file.write("#\n")
pot_file.write("msgid \"\"\n")
pot_file.write("msgstr \"\"\n")
pot_file.write("\"Project-Id-Version: " + domain + "\\n\"\n")
pot_file.write("\"Report-Msgid-Bugs-To: https://salsa.debian.org/iso-codes-team/iso-codes/issues\\n\"\n")
pot_file.write("\"POT-Creation-Date: " + time.strftime('%F %H:%M%z') + "\\n\"\n")
pot_file.write("\"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n\"\n")
pot_file.write("\"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n\"\n")
pot_file.write("\"Language-Team: LANGUAGE <LL@li.org>\\n\"\n")
pot_file.write("\"MIME-Version: 1.0\\n\"\n")
pot_file.write("\"Content-Type: text/plain; charset=UTF-8\\n\"\n")
pot_file.write("\"Content-Transfer-Encoding: 8bit\\n\"")
pot_file.write('msgid ""\n')
pot_file.write('msgstr ""\n')
pot_file.write('"Project-Id-Version: ' + domain + '\\n"\n')
pot_file.write(
'"Report-Msgid-Bugs-To: https://salsa.debian.org/iso-codes-team/iso-codes/issues\\n"\n'
)
pot_file.write('"POT-Creation-Date: ' + time.strftime("%F %H:%M%z") + '\\n"\n')
pot_file.write('"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\\n"\n')
pot_file.write('"Last-Translator: FULL NAME <EMAIL@ADDRESS>\\n"\n')
pot_file.write('"Language-Team: LANGUAGE <LL@li.org>\\n"\n')
pot_file.write('"MIME-Version: 1.0\\n"\n')
pot_file.write('"Content-Type: text/plain; charset=UTF-8\\n"\n')
pot_file.write('"Content-Transfer-Encoding: 8bit\\n"')
# Write the data
for msgid in sorted_data:
pot_file.write("\n\n#. " + ", ".join(msgid["comment"]) + "\n")
pot_file.write("msgid \"" + msgid["msgid"] + "\"\n")
pot_file.write("msgstr \"\"")
pot_file.write('msgid "' + msgid["msgid"] + '"\n')
pot_file.write('msgstr ""')
pot_file.write("\n")
......@@ -20,6 +20,8 @@ s/V/В/g
s/v/в/g
s/Ğ/Г/g
s/ğ/г/g
s/G/Г/g
s/g/г/g
s/D/Д/g
s/d/д/g
s/E/Е/g
......
......@@ -15,8 +15,8 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# License along with this program.
# If not, see https://www.gnu.org/licenses/.
import json
from jsonschema import validate
......@@ -50,8 +50,27 @@ for standard in standards:
if standard == "3166-2":
sort_key = "code"
iso[standard].sort(key=lambda item: item[sort_key])
# Write the sorted JSON file
with open("data/iso_" + standard + ".json", "w", encoding="utf-8") as json_file:
json.dump(iso, json_file, ensure_ascii=False, indent=2, sort_keys=True)
# Add a final newline
json_file.write("\n")
# Check for codes that are assigned more than once
keys = ["alpha_2", "alpha_3", "alpha_4", "numeric", "code"]
for key in keys:
# Skip ISO 3166-3 with data that has been withdrawn,
# here are multiple keys expected
if standard == "3166-3":
continue
values = []
for item in iso[standard]:
if key in item:
if item[key] not in values:
values.append(item[key])
else:
print(
"Error in ISO %s: key '%s' has multiple entries for value '%s'."
% (standard, key, item[key])
)
......@@ -15,15 +15,17 @@
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
# License along with this program.
# If not, see https://www.gnu.org/licenses/.
import json
import sys
# Get the current ISO code domain, the path to the JSON data dir, and the XML output file
if len(sys.argv) != 4:
sys.exit("Please provide the domain, the path to the JSON data dir, and the XML output file.")
sys.exit(
"Please provide the domain, the path to the JSON data dir, and the XML output file."
)
domain = sys.argv[1]
datapath = sys.argv[2]
xml_file = sys.argv[3]
......@@ -60,8 +62,8 @@ Copyright (C) 2005-2008 Tobias Quathamer <toddy@debian.org>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://www.loc.gov/standards/iso639-2/>
-->
......@@ -105,8 +107,8 @@ Copyright © 2008,2012,2013 Tobias Quathamer <toddy@debian.org>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://www.sil.org/iso639-3/>
-->
......@@ -154,8 +156,8 @@ Copyright © 2014 Pander <pander@opentaal.org>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://www.loc.gov/standards/iso639-5/>
-->
......@@ -199,8 +201,8 @@ Copyright (C) 2005, 2006, 2007 Tobias Quathamer <toddy@debian.org>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://www.iso.org/iso/country_codes>
-->
......@@ -266,8 +268,8 @@ Copyright (C) 2007-2010 Alexis Darrasse <alexis@ortsa.com>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://www.iso.org/iso/country_codes/background_on_iso_3166/iso_3166-2.htm>
-->
......@@ -319,8 +321,8 @@ Copyright (C) 2007 Tobias Quathamer <toddy@debian.org>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://unicode.org/iso15924/>
Source for changes: <http://unicode.org/iso15924/codechanges.html>
......@@ -364,8 +366,8 @@ Copyright (C) 2007 Christian Perrier <bubulle@debian.org>
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this file; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
License along with this program.
If not, see https://www.gnu.org/licenses/.
Source: <http://www.bsi-global.com/en/Standards-and-Publications/Industry-Sectors/Services/BSI-Currency-Code-Service/>
-->
......@@ -389,13 +391,14 @@ Source: <http://www.bsi-global.com/en/Standards-and-Publications/Industry-Sector
""",
}
def get_iso_entries(standard):
""" Return all entries from the given standard
"""
"""Return all entries from the given standard"""
with open(datapath + "/iso_" + standard + ".json", encoding="utf-8") as input_file:
iso = json.load(input_file)
return iso[standard]
# Create the output file
with open(xml_file, "w", encoding="utf-8") as outfile:
#
......@@ -408,15 +411,15 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
for entry in get_iso_entries("639-2"):
outfile.write("\t<iso_639_entry\n")
if "bibliographic" in entry:
outfile.write("\t\tiso_639_2B_code=\"" + entry["bibliographic"] + "\"\n")
outfile.write('\t\tiso_639_2B_code="' + entry["bibliographic"] + '"\n')
else:
outfile.write("\t\tiso_639_2B_code=\"" + entry["alpha_3"] + "\"\n")
outfile.write("\t\tiso_639_2T_code=\"" + entry["alpha_3"] + "\"\n")
outfile.write('\t\tiso_639_2B_code="' + entry["alpha_3"] + '"\n')
outfile.write('\t\tiso_639_2T_code="' + entry["alpha_3"] + '"\n')
if "alpha_2" in entry:
outfile.write("\t\tiso_639_1_code=\"" + entry["alpha_2"] + "\"\n")
outfile.write("\t\tname=\"" + entry["name"] + "\"")
outfile.write('\t\tiso_639_1_code="' + entry["alpha_2"] + '"\n')
outfile.write('\t\tname="' + entry["name"] + '"')
if "common_name" in entry:
outfile.write("\n\t\tcommon_name=\"" + entry["common_name"] + "\"")
outfile.write('\n\t\tcommon_name="' + entry["common_name"] + '"')
outfile.write(" />\n")
outfile.write("</iso_639_entries>\n")
#
......@@ -428,27 +431,27 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
outfile.write("<iso_639_3_entries>\n")
for entry in get_iso_entries("639-3"):
outfile.write("\t<iso_639_3_entry\n")
outfile.write("\t\tid=\"" + entry["alpha_3"] + "\"\n")
outfile.write('\t\tid="' + entry["alpha_3"] + '"\n')
if "alpha_2" in entry:
outfile.write("\t\tpart1_code=\"" + entry["alpha_2"] + "\"\n")
outfile.write('\t\tpart1_code="' + entry["alpha_2"] + '"\n')
if "bibliographic" in entry:
outfile.write("\t\tpart2_code=\"" + entry["bibliographic"] + "\"\n")
outfile.write('\t\tpart2_code="' + entry["bibliographic"] + '"\n')
# Special case for lcq, which is the only entry with status "Retired"
if entry["alpha_3"] == "lcq":
outfile.write("\t\tstatus=\"Retired\"\n")
outfile.write('\t\tstatus="Retired"\n')
else:
outfile.write("\t\tstatus=\"Active\"\n")
outfile.write("\t\tscope=\"" + entry["scope"] + "\"\n")
outfile.write("\t\ttype=\"" + entry["type"] + "\"\n")
outfile.write('\t\tstatus="Active"\n')
outfile.write('\t\tscope="' + entry["scope"] + '"\n')
outfile.write('\t\ttype="' + entry["type"] + '"\n')
if "inverted_name" in entry:
outfile.write("\t\tinverted_name=\"" + entry["inverted_name"] + "\"\n")
outfile.write("\t\treference_name=\"" + entry["name"] + "\"\n")
outfile.write('\t\tinverted_name="' + entry["inverted_name"] + '"\n')
outfile.write('\t\treference_name="' + entry["name"] + '"\n')
if "common_name" in entry:
outfile.write("\t\tcommon_name=\"" + entry["common_name"] + "\"\n")
outfile.write('\t\tcommon_name="' + entry["common_name"] + '"\n')
if "inverted_name" in entry:
outfile.write("\t\tname=\"" + entry["inverted_name"] + "\"")
outfile.write('\t\tname="' + entry["inverted_name"] + '"')
else:
outfile.write("\t\tname=\"" + entry["name"] + "\"")
outfile.write('\t\tname="' + entry["name"] + '"')
outfile.write(" />\n")
outfile.write("</iso_639_3_entries>\n")
#
......@@ -460,8 +463,8 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
outfile.write("<iso_639_5_entries>\n")
for entry in get_iso_entries("639-5"):
outfile.write("\t<iso_639_5_entry\n")
outfile.write("\t\tid=\"" + entry["alpha_3"] + "\"\n")
outfile.write("\t\tname=\"" + entry["name"] + "\"")
outfile.write('\t\tid="' + entry["alpha_3"] + '"\n')
outfile.write('\t\tname="' + entry["name"] + '"')
outfile.write(" />\n")
outfile.write("</iso_639_5_entries>\n")
#
......@@ -473,26 +476,26 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
outfile.write("<iso_3166_entries>\n")
for entry in get_iso_entries("3166-1"):
outfile.write("\t<iso_3166_entry\n")
outfile.write("\t\talpha_2_code=\"" + entry["alpha_2"] + "\"\n")
outfile.write("\t\talpha_3_code=\"" + entry["alpha_3"] + "\"\n")
outfile.write("\t\tnumeric_code=\"" + entry["numeric"] + "\"\n")
outfile.write('\t\talpha_2_code="' + entry["alpha_2"] + '"\n')
outfile.write('\t\talpha_3_code="' + entry["alpha_3"] + '"\n')
outfile.write('\t\tnumeric_code="' + entry["numeric"] + '"\n')
if "common_name" in entry:
outfile.write("\t\tcommon_name=\"" + entry["common_name"] + "\"\n")
outfile.write("\t\tname=\"" + entry["name"] + "\"")
outfile.write('\t\tcommon_name="' + entry["common_name"] + '"\n')
outfile.write('\t\tname="' + entry["name"] + '"')
if "official_name" in entry:
outfile.write("\n\t\tofficial_name=\"" + entry["official_name"] + "\"")
outfile.write('\n\t\tofficial_name="' + entry["official_name"] + '"')
outfile.write(" />\n")
for entry in get_iso_entries("3166-3"):
outfile.write("\t<iso_3166_3_entry\n")
outfile.write("\t\talpha_4_code=\"" + entry["alpha_4"] + "\"\n")
outfile.write("\t\talpha_3_code=\"" + entry["alpha_3"] + "\"\n")
outfile.write('\t\talpha_4_code="' + entry["alpha_4"] + '"\n')
outfile.write('\t\talpha_3_code="' + entry["alpha_3"] + '"\n')
if "numeric" in entry:
outfile.write("\t\tnumeric_code=\"" + entry["numeric"] + "\"\n")
outfile.write('\t\tnumeric_code="' + entry["numeric"] + '"\n')
if "withdrawal_date" in entry:
outfile.write("\t\tdate_withdrawn=\"" + entry["withdrawal_date"] + "\"\n")
outfile.write("\t\tnames=\"" + entry["name"] + "\"")
outfile.write('\t\tdate_withdrawn="' + entry["withdrawal_date"] + '"\n')
outfile.write('\t\tnames="' + entry["name"] + '"')
if "comment" in entry:
outfile.write("\n\t\tcomment=\"" + entry["comment"] + "\"")
outfile.write('\n\t\tcomment="' + entry["comment"] + '"')
outfile.write(" />\n")
outfile.write("</iso_3166_entries>\n")
#
......@@ -510,14 +513,22 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
if last_country_code != country_code:
# Write out if subsets are filled
if len(subsets) > 0:
outfile.write("<iso_3166_country code=\"" + last_country_code + "\">\n")
outfile.write(
'<iso_3166_country code="' + last_country_code + '">\n'
)
for subset in sorted(subsets):
outfile.write("<iso_3166_subset type=\"" + subset + "\">\n")
outfile.write('<iso_3166_subset type="' + subset + '">\n')
for item in subsets[subset]:
outfile.write("\t<iso_3166_2_entry\n")
outfile.write("\t\tcode=\"" + item["code"] + "\"\tname=\"" + item["name"] + "\"")
outfile.write(
'\t\tcode="'
+ item["code"]
+ '"\tname="'
+ item["name"]
+ '"'
)
if "parent" in item:
outfile.write("\tparent=\"" + item["parent"] + "\"")
outfile.write('\tparent="' + item["parent"] + '"')
outfile.write(" />\n")
outfile.write("</iso_3166_subset>\n")
outfile.write("</iso_3166_country>\n")
......@@ -538,9 +549,9 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
outfile.write("<iso_15924_entries>\n")
for entry in get_iso_entries("15924"):
outfile.write("\t<iso_15924_entry\n")
outfile.write("\t\talpha_4_code=\"" + entry["alpha_4"] + "\"\n")
outfile.write("\t\tnumeric_code=\"" + entry["numeric"] + "\"\n")
outfile.write("\t\tname=\"" + entry["name"] + "\"")
outfile.write('\t\talpha_4_code="' + entry["alpha_4"] + '"\n')
outfile.write('\t\tnumeric_code="' + entry["numeric"] + '"\n')
outfile.write('\t\tname="' + entry["name"] + '"')
outfile.write(" />\n")
outfile.write("</iso_15924_entries>\n")
#
......@@ -552,14 +563,15 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
outfile.write("<iso_4217_entries>\n")
for entry in get_iso_entries("4217"):
outfile.write("\t<iso_4217_entry\n")
outfile.write("\t\tletter_code=\"" + entry["alpha_3"] + "\"\n")
outfile.write('\t\tletter_code="' + entry["alpha_3"] + '"\n')
if "numeric" in entry:
outfile.write("\t\tnumeric_code=\"" + entry["numeric"] + "\"\n")
outfile.write("\t\tcurrency_name=\"" + entry["name"] + "\"")
outfile.write('\t\tnumeric_code="' + entry["numeric"] + '"\n')
outfile.write('\t\tcurrency_name="' + entry["name"] + '"')
outfile.write(" />\n")
# Insert the obsolete historic entries, which are no
# longer included in the JSON data files.
outfile.write(""" <historic_iso_4217_entry
outfile.write(
""" <historic_iso_4217_entry
letter_code="ADP"
numeric_code="020"
currency_name="Andorran Peseta"
......@@ -1036,5 +1048,6 @@ with open(xml_file, "w", encoding="utf-8") as outfile:
numeric_code="180"
currency_name="Zaire"
date_withdrawn="1994-02" />
""")
"""
)
outfile.write("</iso_4217_entries>\n")
This diff is collapsed.
# Process this file with autoconf to produce a configure script.
#
# Copyright © 2003-2004 Christian Persch
# Copyright © 2006-2022 Dr. Tobias Quathamer
# Copyright © 2006-2024 Dr. Tobias Quathamer
#
# This file is part of iso-codes.
#
......@@ -19,7 +19,7 @@
# with this program; if not, write to the Free Software Foundation, Inc.,
# 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
AC_INIT([iso-codes],[4.12.0])
AC_INIT([iso-codes],[4.18.0])
AM_INIT_AUTOMAKE([dist-xz no-dist-gzip foreign])
AM_MAINTAINER_MODE
......
......@@ -821,6 +821,7 @@
{
"alpha_2": "IR",
"alpha_3": "IRN",
"common_name": "Iran",
"flag": "🇮🇷",
"name": "Iran, Islamic Republic of",
"numeric": "364",
......@@ -953,6 +954,7 @@
{
"alpha_2": "LA",
"alpha_3": "LAO",
"common_name": "Laos",
"flag": "🇱🇦",
"name": "Lao People's Democratic Republic",
"numeric": "418"
......@@ -1653,6 +1655,7 @@
{
"alpha_2": "SY",
"alpha_3": "SYR",
"common_name": "Syria",
"flag": "🇸🇾",
"name": "Syrian Arab Republic",
"numeric": "760"
......
This diff is collapsed.
......@@ -12,9 +12,10 @@
"alpha_2": "AN",
"alpha_3": "ANT",
"alpha_4": "ANHH",
"comment": "had numeric code 532 until Aruba split away in 1986",
"name": "Netherlands Antilles",
"numeric": "530",
"withdrawal_date": "1993-07-12"
"withdrawal_date": "2010-12-15"
},
{
"alpha_2": "BQ",
......@@ -53,7 +54,7 @@
"alpha_4": "CSXX",
"name": "Serbia and Montenegro",
"numeric": "891",
"withdrawal_date": "2006-06-05"
"withdrawal_date": "2006-09-26"
},
{
"alpha_2": "CT",
......@@ -236,9 +237,10 @@
"alpha_2": "YU",
"alpha_3": "YUG",
"alpha_4": "YUCS",
"name": "Yugoslavia, Socialist Federal Republic of",
"comment": "had numeric code 890 until the 'Socialist Federal Republic of Yugoslavia' formerly broke apart on 27 April 1992 and the 'Federal Republic of Yugoslavia' was founded",
"name": "Yugoslavia, (Socialist) Federal Republic of",
"numeric": "891",
"withdrawal_date": "1993-07-28"
"withdrawal_date": "2003-07-23"
},
{
"alpha_2": "ZR",
......
#!/bin/sh
# install - install a program, script, or datafile
scriptversion=2020-11-14.01; # UTC
scriptversion=2024-06-19.01; # UTC
# This originates from X11R5 (mit/util/scripts/install.sh), which was
# later released in X11R6 (xc/config/util/install.sh) with the
......@@ -124,9 +124,9 @@ it's up to you to specify -f if you want it.
If -S is not specified, no backups are attempted.
Email bug reports to bug-automake@gnu.org.
Automake home page: https://www.gnu.org/software/automake/
"
Report bugs to <bug-automake@gnu.org>.
GNU Automake home page: <https://www.gnu.org/software/automake/>.
General help using GNU software: <https://www.gnu.org/gethelp/>."
while test $# -ne 0; do
case $1 in
......@@ -170,7 +170,7 @@ while test $# -ne 0; do
-T) is_target_a_directory=never;;
--version) echo "$0 $scriptversion"; exit $?;;
--version) echo "$0 (GNU Automake) $scriptversion"; exit $?;;
--) shift
break;;
......@@ -345,7 +345,7 @@ do
' 0
# Because "mkdir -p" follows existing symlinks and we likely work
# directly in world-writeable /tmp, make sure that the '$tmpdir'
# directly in world-writable /tmp, make sure that the '$tmpdir'
# directory is successfully created first before we actually test
# 'mkdir -p'.
if (umask $mkdir_umask &&
......@@ -353,7 +353,7 @@ do
exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1
then
if test -z "$dir_arg" || {
# Check for POSIX incompatibilities with -m.
# Check for POSIX incompatibility with -m.
# HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
# other-writable bit of parent directory when it shouldn't.
# FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
......
# Makefile.in generated by automake 1.16.5 from Makefile.am.
# Makefile.in generated by automake 1.17 from Makefile.am.
# @configure_input@
# Copyright (C) 1994-2021 Free Software Foundation, Inc.
# Copyright (C) 1994-2024 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
......@@ -70,6 +70,8 @@ am__make_running_with_option = \
test $$has_opt = yes
am__make_dryrun = (target_option=n; $(am__make_running_with_option))
am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
am__rm_f = rm -f $(am__rm_f_notfound)
am__rm_rf = rm -rf $(am__rm_f_notfound)
pkgdatadir = $(datadir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
......@@ -136,10 +138,9 @@ am__base_list = \
sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
am__uninstall_files_from_dir = { \
test -z "$$files" \
|| { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
{ test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
|| { echo " ( cd '$$dir' && rm -f" $$files ")"; \
$(am__cd) "$$dir" && rm -f $$files; }; \
$(am__cd) "$$dir" && echo $$files | $(am__xargs_n) 40 $(am__rm_f); }; \
}
am__installdirs = "$(DESTDIR)$(xmldir)"
DATA = $(nodist_xml_DATA) $(noinst_DATA)
......@@ -197,8 +198,10 @@ abs_srcdir = @abs_srcdir@
abs_top_builddir = @abs_top_builddir@
abs_top_srcdir = @abs_top_srcdir@
am__leading_dot = @am__leading_dot@
am__rm_f_notfound = @am__rm_f_notfound@
am__tar = @am__tar@
am__untar = @am__untar@
am__xargs_n = @am__xargs_n@
bindir = @bindir@
build_alias = @build_alias@
builddir = @builddir@
......@@ -367,13 +370,13 @@ install-strip:
"INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
fi
mostlyclean-generic:
-test -z "$(MOSTLYCLEANFILES)" || rm -f $(MOSTLYCLEANFILES)
-$(am__rm_f) $(MOSTLYCLEANFILES)
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
-$(am__rm_f) $(CONFIG_CLEAN_FILES)
-test . = "$(srcdir)" || $(am__rm_f) $(CONFIG_CLEAN_VPATH_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
......@@ -563,3 +566,10 @@ uninstall-hook:
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:
# Tell GNU make to disable its built-in pattern rules.
%:: %,v
%:: RCS/%,v
%:: RCS/%
%:: s.%
%:: SCCS/s.%
# Translation of ISO 15924 to Asturian
# Translation of ISO 15924 to Asturian; Bable; Leonese; Asturleonese
# Codes for the representation of names of scripts
# .
# This file is distributed under the same license as the iso-codes package.
......
# Translation of ISO 15924 to LANGUAGE
# Codes for the representation of names of scripts
#
# This file is distributed under the same license as the iso-codes package.
#
# Copyright ©
# Zulfar <mzulfar20@gmail.com>, 2025.
msgid ""
msgstr ""
"Project-Id-Version: iso_15924\n"
"Report-Msgid-Bugs-To: https://salsa.debian.org/iso-codes-team/iso-codes/"
"issues\n"
"POT-Creation-Date: 2018-01-17 22:10+0100\n"
"PO-Revision-Date: 2025-06-19 17:59+0000\n"
"Last-Translator: Zulfar <mzulfar20@gmail.com>\n"
"Language-Team: Bashkir <https://hosted.weblate.org/projects/iso-codes/"
"iso-15924/ba/>\n"
"Language: ba\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 5.12.1\n"
#. Name for Adlm
msgid "Adlam"
msgstr "Адлам"
#. Name for Afak
msgid "Afaka"
msgstr "Афака"
#. Name for Aghb
msgid "Caucasian Albanian"
msgstr "Кавказ албан"
#. Name for Ahom
msgid "Ahom, Tai Ahom"
msgstr "Ахом, Тай Ахом"
#. Name for Arab
msgid "Arabic"
msgstr "Ғәрәп"
#. Name for Aran
msgid "Arabic (Nastaliq variant)"
msgstr "Ғәрәп (нәстәлиҡ варианты)"
#. Name for Armi
msgid "Imperial Aramaic"
msgstr "Империя арамейы"
#. Name for Armn
msgid "Armenian"
msgstr "Әрмән"
#. Name for Avst
msgid "Avestan"
msgstr "Авеста"
#. Name for Bali
msgid "Balinese"
msgstr "Бали"
#. Name for Bamu
msgid "Bamum"
msgstr "Бамум"
#. Name for Bass
msgid "Bassa Vah"
msgstr "Басса-вах"
#. Name for Batk
msgid "Batak"
msgstr "Батак"
#. Name for Beng
msgid "Bengali"
msgstr "Бенгал"
#. Name for Bhks
msgid "Bhaiksuki"
msgstr "Бхаиксуки"
#. Name for Blis
msgid "Blissymbols"
msgstr "Блиссимволика"
#. Name for Bopo
msgid "Bopomofo"
msgstr "Бопомофо"
#. Name for Brah
msgid "Brahmi"
msgstr "Брахми"
#. Name for Brai
msgid "Braille"
msgstr "Брайль"
#. Name for Bugi
msgid "Buginese"
msgstr "Буги"
#. Name for Buhd
msgid "Buhid"
msgstr "Бухид"
#. Name for Cakm
msgid "Chakma"
msgstr "Чакма"
#. Name for Cans
msgid "Unified Canadian Aboriginal Syllabics"
msgstr "Берләшкән Канада автохтон ижекле яҙмаһы"
#. Name for Cari
msgid "Carian"
msgstr "Карий"
#. Name for Cham
msgid "Cham"
msgstr "Чам"
#. Name for Cher
msgid "Cherokee"
msgstr "Чероки"
#. Name for Cirt
msgid "Cirth"
msgstr "Кирт"
#. Name for Copt
msgid "Coptic"
msgstr "Копт"
#. Name for Cprt
msgid "Cypriot"
msgstr "Кипр"
#. Name for Cyrl
msgid "Cyrillic"
msgstr "Кириллица"
#. Name for Cyrs
msgid "Cyrillic (Old Church Slavonic variant)"
msgstr "Кириллица (иҫке сиркәү-славян варианты)"
#. Name for Deva
msgid "Devanagari (Nagari)"
msgstr "Деванагари (нагари)"
#. Name for Dsrt
msgid "Deseret (Mormon)"
msgstr "Дезерет (мормон)"
#. Name for Dupl
msgid "Duployan shorthand, Duployan stenography"
msgstr "Дюплуайе стенографияһы"
#. Name for Egyd
msgid "Egyptian demotic"
msgstr "Мысыр демотик яҙмаһы"
#. Name for Egyh
msgid "Egyptian hieratic"
msgstr "Мысыр иератик яҙмаһы"
#. Name for Egyp
msgid "Egyptian hieroglyphs"
msgstr "Мысыр иероглифтары"
#. Name for Elba
msgid "Elbasan"
msgstr "Эльбасан"
#. Name for Ethi
msgid "Ethiopic (Geʻez)"
msgstr "Эфиоп (геэз)"
#. Name for Geok
msgid "Khutsuri (Asomtavruli and Nuskhuri)"
msgstr "Хуцури (асомтаврули һәм нусхури)"
#. Name for Geor
msgid "Georgian (Mkhedruli)"
msgstr "Грузин (мхедрули)"
#. Name for Glag
msgid "Glagolitic"
msgstr "Глаголица"
#. Name for Goth
msgid "Gothic"
msgstr "Гот"
#. Name for Gran
msgid "Grantha"
msgstr "Грантха"
#. Name for Grek
msgid "Greek"
msgstr "Грек"
#. Name for Gujr
msgid "Gujarati"
msgstr "Гуджарати"
#. Name for Guru
msgid "Gurmukhi"
msgstr "Гурмукхи"
#. Name for Hanb
msgid "Han with Bopomofo (alias for Han + Bopomofo)"
msgstr "Хань бопомофо менән (Хань + Бопомофо псевдонимы)"
#. Name for Hang
msgid "Hangul (Hangŭl, Hangeul)"
msgstr "Хангыль"
#. Name for Hani
msgid "Han (Hanzi, Kanji, Hanja)"
msgstr "Хань (ханьцзы, кандзи, ханча)"
#. Name for Hano
msgid "Hanunoo (Hanunóo)"
msgstr "Хануноо"
#. Name for Hans
msgid "Han (Simplified variant)"
msgstr "Хань (ябайлаштырылған вариант)"
#. Name for Hant
msgid "Han (Traditional variant)"
msgstr "Хань (традицион вариант)"
#. Name for Hatr
msgid "Hatran"
msgstr "Хатра"
#. Name for Hebr
msgid "Hebrew"
msgstr "Йәһүд"
#. Name for Hira
msgid "Hiragana"
msgstr "Хирагана"
#. Name for Hluw
msgid "Anatolian Hieroglyphs (Luwian Hieroglyphs, Hittite Hieroglyphs)"
msgstr "Анатолия иероглифтары (лувий иероглифтары, хетт иероглифтары)"
#. Name for Hmng
msgid "Pahawh Hmong"
msgstr "Пахавх-хмонг"
#. Name for Hrkt
msgid "Japanese syllabaries (alias for Hiragana + Katakana)"
msgstr "Япон ижекле яҙмалары (хирагана + катакана псевдонимы)"
#. Name for Hung
msgid "Old Hungarian (Hungarian Runic)"
msgstr "Боронғо венгр (венгр руналары)"
#. Name for Inds
msgid "Indus (Harappan)"
msgstr "Һинд (Хараппа)"
#. Name for Ital
msgid "Old Italic (Etruscan, Oscan, etc.)"
msgstr "Боронғо италий (этруск, оск һ.б.)"
#. Name for Jamo
msgid "Jamo (alias for Jamo subset of Hangul)"
msgstr "Чамо (хангыль өлөшө өсөн псевдоним)"
#. Name for Java
msgid "Javanese"
msgstr "Ява"
#. Name for Jpan
msgid "Japanese (alias for Han + Hiragana + Katakana)"
msgstr "Япон (Хань + Хирагана + Катакана псевдонимы)"
#. Name for Jurc
msgid "Jurchen"
msgstr "Чжурчжэнь"
#. Name for Kali
msgid "Kayah Li"
msgstr "Кая-ли"
#. Name for Kana
msgid "Katakana"
msgstr "Катакана"
#. Name for Khar
msgid "Kharoshthi"
msgstr "Кхароштхи"
#. Name for Khmr
msgid "Khmer"
msgstr "Кхмер"
#. Name for Khoj
msgid "Khojki"
msgstr "Ходжки"
#. Name for Kitl
msgid "Khitan large script"
msgstr "Кидань ҙур яҙмаһы"
#. Name for Kits
msgid "Khitan small script"
msgstr "Кидань кесе яҙмаһы"
#. Name for Knda
msgid "Kannada"
msgstr "Каннада"
#. Name for Kore
msgid "Korean (alias for Hangul + Han)"
msgstr "Корей (Хангыль + Хань псевдонимы)"
#. Name for Kpel
msgid "Kpelle"
msgstr "Кпелле"
#. Name for Kthi
msgid "Kaithi"
msgstr "Кайтхи"
#. Name for Lana
msgid "Tai Tham (Lanna)"
msgstr "Тай-тхам (ланна)"
#. Name for Laoo
msgid "Lao"
msgstr "Лаос"
#. Name for Latf
msgid "Latin (Fraktur variant)"
msgstr "Латин (фрактура варианты)"
#. Name for Latg
msgid "Latin (Gaelic variant)"
msgstr "Латин (гэл варианты)"
#. Name for Latn
msgid "Latin"
msgstr "Латин"
#. Name for Leke
msgid "Leke"
msgstr "Леке"
#. Name for Lepc
msgid "Lepcha (Róng)"
msgstr "Лепча (ронг)"
#. Name for Limb
msgid "Limbu"
msgstr "Лимбу"
#. Name for Lina
msgid "Linear A"
msgstr "Һыҙыҡлы А"
#. Name for Linb
msgid "Linear B"
msgstr "Һыҙыҡлы Б"
#. Name for Lisu
msgid "Lisu (Fraser)"
msgstr "Лису (Фрейзер)"
#. Name for Loma
msgid "Loma"
msgstr "Лома"
#. Name for Lyci
msgid "Lycian"
msgstr "Ликий"
#. Name for Lydi
msgid "Lydian"
msgstr "Лидий"
#. Name for Mahj
msgid "Mahajani"
msgstr "Махаджани"
#. Name for Mand
msgid "Mandaic, Mandaean"
msgstr "Мандей"
#. Name for Mani
msgid "Manichaean"
msgstr "Манихей"
#. Name for Marc
msgid "Marchen"
msgstr "Марчен"
#. Name for Maya
msgid "Mayan hieroglyphs"
msgstr "Майя иероглифтары"
#. Name for Mend
msgid "Mende Kikakui"
msgstr "Менде-кикакуи"
#. Name for Merc
msgid "Meroitic Cursive"
msgstr "Мероит курсивы"
#. Name for Mero
msgid "Meroitic Hieroglyphs"
msgstr "Мероит иероглифтары"
#. Name for Mlym
msgid "Malayalam"
msgstr "Малаялам"
#. Name for Modi
msgid "Modi, Moḍī"
msgstr "Моди"
#. Name for Mong
msgid "Mongolian"
msgstr "Монгол"
#. Name for Moon
msgid "Moon (Moon code, Moon script, Moon type)"
msgstr "Мун (Мун коды, Мун яҙмаһы, Мун шрифты)"
#. Name for Mroo
msgid "Mro, Mru"
msgstr "Мро, Мру"
#. Name for Mtei
msgid "Meitei Mayek (Meithei, Meetei)"
msgstr "Мейтей-маек (мейтеи, меетеи)"
#. Name for Mult
msgid "Multani"
msgstr "Мултани"
#. Name for Mymr
msgid "Myanmar (Burmese)"
msgstr "Мьянма (бирма)"
#. Name for Narb
msgid "Old North Arabian (Ancient North Arabian)"
msgstr "Боронғо төньяҡ ғәрәп"
#. Name for Nbat
msgid "Nabataean"
msgstr "Набатей"
#. Name for Newa
msgid "Newa, Newar, Newari, Nepāla lipi"
msgstr "Нева, невар, невари, непала-липи"
#. Name for Nkgb
msgid "Nakhi Geba ('Na-'Khi ²Ggŏ-¹baw, Naxi Geba)"
msgstr "Наси-гэба ('На-'кхи ²гго-¹бау, Наси-гэба)"
#. Name for Nkoo
msgid "N’Ko"
msgstr "Нко"
#. Name for Nshu
msgid "Nüshu"
msgstr "Нюй-шу"
#. Name for Ogam
msgid "Ogham"
msgstr "Огам"
#. Name for Olck
msgid "Ol Chiki (Ol Cemet’, Ol, Santali)"
msgstr "Ол-чики (ол-цемет, ол, сантали)"
#. Name for Orkh
msgid "Old Turkic, Orkhon Runic"
msgstr "Боронғо төрки, Орхон руналары"
#. Name for Orya
msgid "Oriya"
msgstr "Ория"
#. Name for Osge
msgid "Osage"
msgstr "Осейдж"
#. Name for Osma
msgid "Osmanya"
msgstr "Османья"
#. Name for Palm
msgid "Palmyrene"
msgstr "Пальмира"
#. Name for Pauc
msgid "Pau Cin Hau"
msgstr "Пау-чин-хау"
#. Name for Perm
msgid "Old Permic"
msgstr "Боронғо пермь"
#. Name for Phag
msgid "Phags-pa"
msgstr "Пагба-лама"
#. Name for Phli
msgid "Inscriptional Pahlavi"
msgstr "Яҙыулы пехлеви"
#. Name for Phlp
msgid "Psalter Pahlavi"
msgstr "Псалтырь пехлеви"
#. Name for Phlv
msgid "Book Pahlavi"
msgstr "Китап пехлеви"
#. Name for Phnx
msgid "Phoenician"
msgstr "Финикия"
#. Name for Piqd
msgid "Klingon (KLI pIqaD)"
msgstr "Клингон (KLI pIqaD)"
#. Name for Plrd
msgid "Miao (Pollard)"
msgstr "Мяо (Поллард)"
#. Name for Prti
msgid "Inscriptional Parthian"
msgstr "Яҙыулы парфян"
#. Name for Qaaa
msgid "Reserved for private use (start)"
msgstr "Шәхси ҡулланыу өсөн һаҡланған (башы)"
#. Name for Qabx
msgid "Reserved for private use (end)"
msgstr "Шәхси ҡулланыу өсөн һаҡланған (аҙағы)"
#. Name for Rjng
msgid "Rejang (Redjang, Kaganga)"
msgstr "Реджанг (каганга)"
#. Name for Roro
msgid "Rongorongo"
msgstr "Ронго-ронго"
#. Name for Runr
msgid "Runic"
msgstr "Руна"
#. Name for Samr
msgid "Samaritan"
msgstr "Самаритян"
#. Name for Sara
msgid "Sarati"
msgstr "Сарати"
#. Name for Sarb
msgid "Old South Arabian"
msgstr "Боронғо көньяҡ ғәрәп"
#. Name for Saur
msgid "Saurashtra"
msgstr "Саураштра"
#. Name for Sgnw
msgid "SignWriting"
msgstr "Сайнрайтинг"
#. Name for Shaw
msgid "Shavian (Shaw)"
msgstr "Шавиан (Шоу)"
#. Name for Shrd
msgid "Sharada, Śāradā"
msgstr "Шарада"
#. Name for Sidd
msgid "Siddham, Siddhaṃ, Siddhamātṛkā"
msgstr "Сиддхам, Сиддхаматрика"
#. Name for Sind
msgid "Khudawadi, Sindhi"
msgstr "Худавади, синдхи"
#. Name for Sinh
msgid "Sinhala"
msgstr "Сингал"
#. Name for Sora
msgid "Sora Sompeng"
msgstr "Сора-сомпенг"
#. Name for Sund
msgid "Sundanese"
msgstr "Сундан"
#. Name for Sylo
msgid "Syloti Nagri"
msgstr "Силоти-нагри"
#. Name for Syrc
msgid "Syriac"
msgstr "Сүриә"
#. Name for Syre
msgid "Syriac (Estrangelo variant)"
msgstr "Сүриә (эстрангело варианты)"
#. Name for Syrj
msgid "Syriac (Western variant)"
msgstr "Сүриә (көнбайыш варианты)"
#. Name for Syrn
msgid "Syriac (Eastern variant)"
msgstr "Сүриә (көнсығыш варианты)"
#. Name for Tagb
msgid "Tagbanwa"
msgstr "Тагбанва"
#. Name for Takr
msgid "Takri, Ṭākrī, Ṭāṅkrī"
msgstr "Такри"
#. Name for Tale
msgid "Tai Le"
msgstr "Тай-ле"
#. Name for Talu
msgid "New Tai Lue"
msgstr "Яңы тай-лы"
#. Name for Taml
msgid "Tamil"
msgstr "Тамил"
#. Name for Tang
msgid "Tangut"
msgstr "Тангут"
#. Name for Tavt
msgid "Tai Viet"
msgstr "Тай-вьет"
#. Name for Telu
msgid "Telugu"
msgstr "Телугу"
#. Name for Teng
msgid "Tengwar"
msgstr "Тенгвар"
#. Name for Tfng
msgid "Tifinagh (Berber)"
msgstr "Тифинаг (бербер)"
#. Name for Tglg
msgid "Tagalog (Baybayin, Alibata)"
msgstr "Тагаль (байбайин, алибата)"
#. Name for Thaa
msgid "Thaana"
msgstr "Тана"
#. Name for Thai
msgid "Thai"
msgstr "Тай"
#. Name for Tibt
msgid "Tibetan"
msgstr "Тибет"
#. Name for Tirh
msgid "Tirhuta"
msgstr "Тирхута"
#. Name for Ugar
msgid "Ugaritic"
msgstr "Угарит"
#. Name for Vaii
msgid "Vai"
msgstr "Ваи"
#. Name for Visp
msgid "Visible Speech"
msgstr "Күренеүсән телмәр"
#. Name for Wara
msgid "Warang Citi (Varang Kshiti)"
msgstr "Варанг-чити (варанг-кшити)"
#. Name for Wole
msgid "Woleai"
msgstr "Волеаи"
#. Name for Xpeo
msgid "Old Persian"
msgstr "Боронғо фарсы"
#. Name for Xsux
msgid "Cuneiform, Sumero-Akkadian"
msgstr "Шына яҙыу, шумер-аккад"
#. Name for Yiii
msgid "Yi"
msgstr "Йи"
#. Name for Zinh
msgid "Code for inherited script"
msgstr "Мираҫ итеп алынған яҙма коды"
#. Name for Zmth
msgid "Mathematical notation"
msgstr "Математик нотация"
#. Name for Zsye
msgid "Symbols (Emoji variant)"
msgstr "Символдар (эмодзи варианты)"
#. Name for Zsym
msgid "Symbols"
msgstr "Символдар"
#. Name for Zxxx
msgid "Code for unwritten documents"
msgstr "Яҙылмаған документтар коды"
#. Name for Zyyy
msgid "Code for undetermined script"
msgstr "Билдәһеҙ яҙма коды"
#. Name for Zzzz
msgid "Code for uncoded script"
msgstr "Кодланмаған яҙма коды"
# Translation of ISO 15924 to LANGUAGE
# Translation of ISO 15924 to Bengali (Bangladesh)
# Codes for the representation of names of scripts
#
# .
# This file is distributed under the same license as the iso-codes package.
#
# .
# Copyright ©
# Oymate <dhruboadittya96@gmail.com>, 2020.
# Anonymous <noreply@weblate.org>, 2020.
......