[gimp] build: drop codepage conversion, use UTF-8 for Win install lang files.
- From: Jehan <jehanp src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] build: drop codepage conversion, use UTF-8 for Win install lang files.
- Date: Mon, 20 Dec 2021 17:51:54 +0000 (UTC)
commit 3e1b783adbbf65c592d03b19cd153958be61ee31
Author: Jehan <jehan girinstud io>
Date: Mon Dec 20 15:05:34 2021 +0100
build: drop codepage conversion, use UTF-8 for Win install lang files.
Rewriting commit f8cdec1883e by Jernej Simončič for the development
code (which has a slightly different list of languages).
Also adding the meson version of this change.
Since now InnoSetup fully supports UTF-8 isl (as long as they have a
BOM), let's stop converting translations. Then we also avoid all
conversion errors and get a simpler/more robust build process.
build/windows/installer/lang/Makefile.am | 81 ++++++++++++++---------------
build/windows/installer/lang/extractlang.sh | 15 ++----
build/windows/installer/lang/meson.build | 53 +++++++++----------
3 files changed, 71 insertions(+), 78 deletions(-)
---
diff --git a/build/windows/installer/lang/Makefile.am b/build/windows/installer/lang/Makefile.am
index a3cc8532ad..7d7c2a9c0b 100644
--- a/build/windows/installer/lang/Makefile.am
+++ b/build/windows/installer/lang/Makefile.am
@@ -8,55 +8,54 @@ stamp_files = \
CLEANFILES = $(isl_files) $(stamp_files)
languages = \
- ca:[ca]:WINDOWS-1252 \
- cs:[cs]:WINDOWS-1250 \
- da:[da]:WINDOWS-1252 \
- de:[de]:WINDOWS-1252 \
- el:[el]:WINDOWS-1253 \
- en::WINDOWS-1252 \
- en_GB:[en_GB]:UTF-8 \
- eo:[eo]:ISO-8859-3 \
- es:[es]:WINDOWS-1252 \
- eu:[eu]:WINDOWS-1252 \
- fi:[fi]:WINDOWS-1252 \
- fr:[fr]:WINDOWS-1252 \
- he:[he]:WINDOWS-1255 \
- hu:[hu]:WINDOWS-1250 \
- id:[id]:ISO-8859-1 \
- is:[is]:WINDOWS-1252 \
- it:[it]:WINDOWS-1252 \
- ja:[ja]:CP932 \
- kab:[kab]:UTF-8 \
- ko:[ko]:EUC-KR \
- lt:[lt]:ISO-8859-13 \
- lv:[lv]:ISO-8859-13 \
- mr:[mr]:UTF-8 \
- ms:[ms]:UTF-8 \
- nl:[nl]:WINDOWS-1252 \
- pl:[pl]:WINDOWS-1250 \
- pt:[pt]:WINDOWS-1252 \
- pt_BR:[pt_BR]:WINDOWS-1252 \
- ro:[ro]:WINDOWS-1250 \
- ru:[ru]:WINDOWS-1251 \
- sk:[sk]:WINDOWS-1250 \
- sl:[sl]:WINDOWS-1250 \
- sv:[sv]:WINDOWS-1252 \
- tr:[tr]:WINDOWS-1254 \
- uk:[uk]:WINDOWS-1251 \
- vi:[vi]:WINDOWS-1258 \
- zh_CN:[zh_CN]:WINDOWS-936 \
- zh_TW:[zh_TW]:CP950
+ ca:[ca] \
+ cs:[cs] \
+ da:[da] \
+ de:[de] \
+ el:[el] \
+ en: \
+ en_GB:[en_GB] \
+ eo:[eo] \
+ es:[es] \
+ eu:[eu] \
+ fi:[fi] \
+ fr:[fr] \
+ he:[he] \
+ hu:[hu] \
+ id:[id] \
+ is:[is] \
+ it:[it] \
+ ja:[ja] \
+ kab:[kab] \
+ ko:[ko] \
+ lt:[lt] \
+ lv:[lv] \
+ mr:[mr] \
+ ms:[ms] \
+ nl:[nl] \
+ pl:[pl] \
+ pt:[pt] \
+ pt_BR:[pt_BR] \
+ ro:[ro] \
+ ru:[ru] \
+ sk:[sk] \
+ sl:[sl] \
+ sv:[sv] \
+ tr:[tr] \
+ uk:[uk] \
+ vi:[vi] \
+ zh_CN:[zh_CN] \
+ zh_TW:[zh_TW]
stamp-isl: setup.isl Makefile.am
@ \
for lang in $(languages); do \
code=`echo $$lang | cut -d: -f1`; \
prefix=`echo $$lang | cut -d: -f2 | sed 's/[][]/\\\\\\0/g'`; \
- encoding=`echo $$lang | cut -d: -f3`; \
isl="$(builddir)/$$code.setup.isl"; \
echo " GEN $$isl"; \
- sed '/^\w\+'"$$prefix"'=/{s/\(.\)'"$$prefix"'/\1/;n};/^\w.*=/d' $< | \
- iconv -c -f UTF-8 -t $$encoding > "$$isl"; \
+ echo -ne "\\xEF\\xBB\\xBF" > "$$isl"; \
+ sed '/^\w\+'"$$prefix"'=/{s/\(.\)'"$$prefix"'/\1/;n};/^\w.*=/d' $< >> "$$isl"; \
done && \
echo timestamp > stamp-isl
diff --git a/build/windows/installer/lang/extractlang.sh b/build/windows/installer/lang/extractlang.sh
index f156ded5cd..fec8994005 100644
--- a/build/windows/installer/lang/extractlang.sh
+++ b/build/windows/installer/lang/extractlang.sh
@@ -1,16 +1,11 @@
#!/bin/bash
prefix=$1
-encoding=$2
-infile=$3
+infile=$2
#replace [] with \[\]
prefix=$(echo "$prefix" | sed 's/[][]/\\\0/g')
-#echo to stdout
-sed '/^\w\+'"$prefix"'=/{s/\(.\)'"$prefix"'/\1/;n};/^\w.*=/d' "$infile" \
-| iconv -c -f UTF-8 -t "$encoding"
-
-# TODO: currently we silently discard non-convertible characters with -c
-# option on iconv. Eventually we would want to just use UTF-8 for all
-# language files (ideally), instead of folloding the LanguageCodePage of
-# the main .isl file as provided in the issrc repository.
+# InnoSetup now supports UTF-8 for all languages, but it requires a BOM
+# at the start of the file.
+echo -ne "\\xEF\\xBB\\xBF";
+sed '/^\w\+'"$prefix"'=/{s/\(.\)'"$prefix"'/\1/;n};/^\w.*=/d' "$infile"
diff --git a/build/windows/installer/lang/meson.build b/build/windows/installer/lang/meson.build
index 1dd4c606de..977e29b050 100644
--- a/build/windows/installer/lang/meson.build
+++ b/build/windows/installer/lang/meson.build
@@ -15,43 +15,43 @@ isl_input = custom_target('setup.isl',
languages = [
{ 'code': 'ca', },
- { 'code': 'cs', 'encoding': 'WINDOWS-1250', },
+ { 'code': 'cs', },
{ 'code': 'da', },
{ 'code': 'de', },
- { 'code': 'el', 'encoding': 'WINDOWS-1253', },
+ { 'code': 'el', },
{ 'code': 'en', 'prefix': '', },
- { 'code': 'en_GB', 'encoding': 'UTF-8', },
- { 'code': 'eo', 'encoding': 'ISO-8859-3', },
+ { 'code': 'en_GB', },
+ { 'code': 'eo', },
{ 'code': 'es', },
{ 'code': 'eu', },
{ 'code': 'fi', },
{ 'code': 'fr', },
- { 'code': 'he', 'encoding': 'WINDOWS-1255', },
- { 'code': 'hu', 'encoding': 'WINDOWS-1250', },
- { 'code': 'id', 'encoding': 'ISO-8859-1', },
+ { 'code': 'he', },
+ { 'code': 'hu', },
+ { 'code': 'id', },
{ 'code': 'is', },
{ 'code': 'it', },
- { 'code': 'ja', 'encoding': 'CP932', },
- { 'code': 'kab', 'encoding': 'UTF-8', },
- { 'code': 'ko', 'encoding': 'EUC-KR', },
- { 'code': 'lt', 'encoding': 'ISO-8859-13', },
- { 'code': 'lv', 'encoding': 'ISO-8859-13', },
- { 'code': 'mr', 'encoding': 'UTF-8', },
- { 'code': 'ms', 'encoding': 'UTF-8', },
+ { 'code': 'ja', },
+ { 'code': 'kab', },
+ { 'code': 'ko', },
+ { 'code': 'lt', },
+ { 'code': 'lv', },
+ { 'code': 'mr', },
+ { 'code': 'ms', },
{ 'code': 'nl', },
- { 'code': 'pl', 'encoding': 'WINDOWS-1250', },
- { 'code': 'pt', },
+ { 'code': 'pl', },
+ { 'code': 'pt', },
{ 'code': 'pt_BR', },
- { 'code': 'ro', 'encoding': 'WINDOWS-1250', },
- { 'code': 'ru', 'encoding': 'WINDOWS-1251', },
- { 'code': 'sk', 'encoding': 'WINDOWS-1250', },
- { 'code': 'sl', 'encoding': 'WINDOWS-1250', },
+ { 'code': 'ro', },
+ { 'code': 'ru', },
+ { 'code': 'sk', },
+ { 'code': 'sl', },
{ 'code': 'sv', },
- { 'code': 'tr', 'encoding': 'WINDOWS-1254', },
- { 'code': 'uk', 'encoding': 'WINDOWS-1251', },
- { 'code': 'vi', 'encoding': 'WINDOWS-1258', },
- { 'code': 'zh_CN', 'encoding': 'WINDOWS-936', },
- { 'code': 'zh_TW', 'encoding': 'CP950', },
+ { 'code': 'tr', },
+ { 'code': 'uk', },
+ { 'code': 'vi', },
+ { 'code': 'zh_CN', },
+ { 'code': 'zh_TW', },
]
extractlang = find_program('extractlang.sh')
@@ -60,14 +60,13 @@ all_isl = []
foreach language : languages
lang_code = language.get('code')
lang_prefix = language.get('prefix', '[@0@]'.format(lang_code))
- lang_encoding= language.get('encoding', 'WINDOWS-1252')
islfile = '@0 setup isl'.format(lang_code)
all_isl += custom_target(islfile,
input : isl_input,
output: islfile,
- command: [ extractlang, lang_prefix, lang_encoding, '@INPUT@' ],
+ command: [ extractlang, lang_prefix, '@INPUT@' ],
capture: true,
build_by_default: true,
)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]