Browse Source

Add (currently unused) code for handling countries

r17427
tags/0.046
Christian Perrier 17 years ago
parent
commit
6717ece2b3
7 changed files with 1563 additions and 14 deletions
  1. +3
    -1
      debian/changelog
  2. +31
    -12
      debian/po/fa.po
  3. +3
    -1
      debian/po/ko.po
  4. +16
    -0
      debian/rules
  5. +1369
    -0
      intltool-merge
  6. +95
    -0
      mktemplates
  7. +46
    -0
      sort-countries.new

+ 3
- 1
debian/changelog View File

@@ -6,8 +6,10 @@ choose-mirror (0.046) UNRELEASED; urgency=low
- Update Installer-Menu-Item.
* Joey Hess
- Make sort-countries clean up after itself.
* Christian Perrier
- code for better handling of countries. Not used yet

-- Bastian Blank <waldi@debian.org> Mon, 21 Jun 2004 14:26:16 +0200
-- Christian Perrier <bubulle@debian.org> Fri, 2 Jul 2004 20:15:07 +0200

choose-mirror (0.045) unstable; urgency=low



+ 31
- 12
debian/po/fa.po View File

@@ -36,13 +36,18 @@ msgstr " پروتکل بارگیری فایلها:"
msgid ""
"Please select the file download protocol. If unsure, select \"http\"; it is "
"less prone to problems involving firewalls."
msgstr "لطفا پروتکل دلخواهتان را برای بارگیری فایلها انتخاب کنید. اگر شک دارید \"http\" را اتخاب کنید. این پروتکل در رویارویی با دیواره‌های آتش کمتر دچار اشکال میشود."
msgstr ""
"لطفا پروتکل دلخواهتان را برای بارگیری فایلها انتخاب کنید. اگر شک دارید "
"\"http\" را اتخاب کنید. این پروتکل در رویارویی با دیواره‌های آتش کمتر دچار "
"اشکال میشود."

#. Type: string
#. Description
#: ../choose-mirror.templates:34
msgid "Please enter the hostname of the mirror from which Debian will be downloaded."
msgstr "لطفا نام میزبان شعبه ای را که میخواهید دبیان از آنجا بارگیری شود وارد کنید."
msgid ""
"Please enter the hostname of the mirror from which Debian will be downloaded."
msgstr ""
"لطفا نام میزبان شعبه ای را که میخواهید دبیان از آنجا بارگیری شود وارد کنید."

#. Type: string
#. Description
@@ -56,7 +61,9 @@ msgstr "اطلاعات پراکسی HTTP(اگر پروکسی ندارید خال
msgid ""
"If you need to use a HTTP proxy to access the outside world, enter the proxy "
"information here. Otherwise, leave this blank."
msgstr "اگر برای ارتباط با اینترنت احتیاج به تنظیم پراکسی دارید؛ این اطلاعات را اینجا وارد کنید در غیر این صورت خالی بگذازید"
msgstr ""
"اگر برای ارتباط با اینترنت احتیاج به تنظیم پراکسی دارید؛ این اطلاعات را "
"اینجا وارد کنید در غیر این صورت خالی بگذازید"

#. Type: string
#. Description
@@ -64,7 +71,9 @@ msgstr "اگر برای ارتباط با اینترنت احتیاج به تن
msgid ""
"The proxy information should be given in the standard form of \"http://"
"[[user][:pass]@]host[:port]/\""
msgstr "اطلاعات پراکسی باید به صورت استاندارد \"http://[[user][:pass]@]host[:port]/\" وارد گردد."
msgstr ""
"اطلاعات پراکسی باید به صورت استاندارد \"http://[[user][:pass]@]host[:port]/"
"\" وارد گردد."

#. Type: select
#. Description
@@ -79,7 +88,9 @@ msgid ""
"Please select a Debian archive mirror. You should use a mirror in your "
"country or region if you do not know which mirror has the best Internet "
"connection to you."
msgstr " لطفا یکی از شعبه‌های آرشیو دبیان را انتخاب کنید. اگر نمیدانید کدامیک از آنها برای شما بهتر است باید شعبه ای را در منطقه یا کشور خود انتخاب کنید."
msgstr ""
" لطفا یکی از شعبه‌های آرشیو دبیان را انتخاب کنید. اگر نمیدانید کدامیک از آنها "
"برای شما بهتر است باید شعبه ای را در منطقه یا کشور خود انتخاب کنید."

#. Type: select
#. Description
@@ -127,7 +138,9 @@ msgstr "اطلاعات پراکسی FTP(اگر پروکسی ندارید خال
msgid ""
"If you need to use a FTP proxy to access the outside world, please enter the "
"proxy information here. Otherwise, leave this blank."
msgstr "اگر برای ارتباط با اینترنت توسط FTP احتیاج به تنظیم پراکسی دارید؛ این اطلاعات را اینجا وارد کنید در غیر این صورت خالی بگذازید."
msgstr ""
"اگر برای ارتباط با اینترنت توسط FTP احتیاج به تنظیم پراکسی دارید؛ این "
"اطلاعات را اینجا وارد کنید در غیر این صورت خالی بگذازید."

#. Type: string
#. Description
@@ -136,8 +149,8 @@ msgid ""
"The proxy information should be the standard form of \"http://[[user][:pass]"
"@]host[:port]/\"."
msgstr ""
" اطلاعات پراکسی FTP باید به صورت استاندارد: "
"\"http://[[user][:pass]@]host[:port]/\". باشد."
" اطلاعات پراکسی FTP باید به صورت استاندارد: \"http://[[user][:pass]@]host[:"
"port]/\". باشد."

#. Type: select
#. Choices
@@ -159,7 +172,11 @@ msgid ""
"Unstable is untested and frequently changing. Testing is a middle ground, "
"that receives many of the new versions from unstable if they are not too "
"buggy."
msgstr "دبیان در چند نوع مختلف قابل دسترسی است: \"پایدار\" نسخه‌ایست که به خوبی آزمایش شده و به ندرت تغییر میکند. \"ناپایدار\" نسخه ایست که آزمایش نشده و به طور مداوم در حال تغییر است. \" آزمایشی\" نسخه ای بینابینی است که بسیاری از ویرایش‌های جدید را در صورتی که زیاد مشکل نداشته باشند از نسخه ناپایدار میگیرد."
msgstr ""
"دبیان در چند نوع مختلف قابل دسترسی است: \"پایدار\" نسخه‌ایست که به خوبی "
"آزمایش شده و به ندرت تغییر میکند. \"ناپایدار\" نسخه ایست که آزمایش نشده و به "
"طور مداوم در حال تغییر است. \" آزمایشی\" نسخه ای بینابینی است که بسیاری از "
"ویرایش‌های جدید را در صورتی که زیاد مشکل نداشته باشند از نسخه ناپایدار میگیرد."

#. Type: string
#. Description
@@ -556,5 +573,7 @@ msgid ""
"The goal is to find a mirror of the Debian archive that is close to you on "
"the network -- be aware that nearby countries, or even your own, may not be "
"the best choice."
msgstr "هدف انتخاب شعبه‌ای از آرشیو دبیان است که بر روی اینترنت به شما نزدیکتر باشد -- باید توجه داشته باشید که کشورهای نزدیک و یا حتی کشور خودتان ممکن است بهترین انتخاب نباشد.س"

msgstr ""
"هدف انتخاب شعبه‌ای از آرشیو دبیان است که بر روی اینترنت به شما نزدیکتر باشد "
"-- باید توجه داشته باشید که کشورهای نزدیک و یا حتی کشور خودتان ممکن است "
"بهترین انتخاب نباشد.س"

+ 3
- 1
debian/po/ko.po View File

@@ -23,7 +23,9 @@ msgstr "파일 내려받을 때 사용할 프로토콜:"
msgid ""
"Please select the file download protocol. If unsure, select \"http\"; it is "
"less prone to problems involving firewalls."
msgstr "파일 내려받기 프로토콜을 선택하십시오. 잘 모르겠으면, \"http\"를 선택하십시오; http가 방화벽 관련한 문제에 가장 덜 민감합니다."
msgstr ""
"파일 내려받기 프로토콜을 선택하십시오. 잘 모르겠으면, \"http\"를 선택하십시"
"오; http가 방화벽 관련한 문제에 가장 덜 민감합니다."

#. Type: string
#. Description


+ 16
- 0
debian/rules View File

@@ -4,6 +4,22 @@ build: build-stamp
build-stamp:
dh_testdir
$(MAKE) small

# C. Perrier 2/7/2004
# DO NOT actually uncomment these
# the scripts have not been tested enough
# we'd better include this for post-rc1
# Grab ISO codes from iso-codes package
#chmod u+x ./get-iso-codes
#./get-iso-codes
# Yes, we use this one, embarked, because it has been
# hacked for using partial translations in lists
#chmod u+x ./intltool-merge
# Build the templates
#chmod u+x ./mktemplates
#./mktemplates
# END of do not uncomment

touch build-stamp

clean:


+ 1369
- 0
intltool-merge
File diff suppressed because it is too large
View File


+ 95
- 0
mktemplates View File

@@ -0,0 +1,95 @@
#!/bin/sh

set -e

# Script for generating a debconf templates file from both files
# in debian/po/*.po and country names translations from the
# iso-codes package
#
# Some variables
ISO3166TAB=/usr/share/iso-codes/iso_3166.tab
export ISO3166TAB
# Translations location (relative to the build root directory)
ISO3166TRANSLATIONS=debian/iso-codes

# Get the ordered list of countries from the iso_3166.tab, sorted
# according to the regionmap.
#
# We need to escape commas by preceding them with a backslash.
HTTPCODECHOICES=`cat debian/httplist-countries`
FTPCODECHOICES=`cat debian/ftplist-countries`

printf "Creating the list of countries for HTTP mirrors..."
# We need building the choices list with English names rather than codes
HTTPCHOICES=$(cat debian/httplist-countries | \
(read a; echo -n `grep -i "^$a" $ISO3166TAB | cut -b 4-` ; while read b; do echo -n ", "`grep -i "^$b" $ISO3166TAB | cut -b 4- | sed 's/,/\\\\\\\\,/g'`; done; echo))
printf " Done.\n"

printf "Creating the list of countries for FTP mirrors..."
FTPCHOICES=$(cat debian/ftplist-countries | \
(read a; echo -n `grep -i "^$a" $ISO3166TAB | cut -b 4-` ; while read b; do echo -n ", "`grep -i "^$b" $ISO3166TAB | cut -b 4- | sed 's/,/\\\\\\\\,/g'`; done; echo))
printf " Done.\n"

printf "Insert the lists of choices into the templates file..."
# Now put this list as the choices in the templates
# and defined this field as translatable (__Choices hack)
cat debian/templates-in | \
perl -pe 's/\@httpcountrylist\@/'"$HTTPCHOICES"'/g' | \
perl -pe 's/\@ftpcountrylist\@/'"$FTPCHOICES"'/g' | \
sed "/^_Choices: enter/s/_Choices:/__Choices:/g" \
>debian/templates.tmp
printf " Done.\n"

# Create a temporary "pobuild" directory
rm -rf debian/pobuild >/dev/null 2>&1
mkdir debian/pobuild

# Create the appropriate POTFILES.in file there
cat >debian/pobuild/POTFILES.in <<EOF
[type: gettext/rfc822deb] templates.tmp
EOF

# Create the appropriate output file also
cat >debian/pobuild/output <<EOF
2 utf8
EOF

# Run debconf-updatepo on this directory
# -->this will create pobuild/templates.pot
debconf-updatepo --podir debian/pobuild

printf "Include country names translations into the templates file:\n"
# The following takes place for each language
# (each existing file in debian/po)
for pofile in debian/po/*.po ; do
pofilename=`basename $pofile`
langname=`basename $pofilename .po`
printf " $langname..."
# If the country names are translated, we need to merge
# the translation with the templates translations
if [ -f $ISO3166TRANSLATIONS/$pofilename ]
then
# Output is verbose, don't worry
# Copy other templates translations
cp debian/po/$pofilename debian/pobuild/$pofilename.copied
# Update it with templates.pot
msgmerge -U debian/pobuild/$pofilename.copied \
debian/pobuild/templates.pot 2>/dev/null
# merge with iso-codes translations
# if charsets differ, this may output some "error" messages we ignore
msgmerge debian/iso-codes/$pofilename \
debian/pobuild/$pofilename.copied \
> debian/pobuild/$pofilename 2>/dev/null
# clean out the generated file
msgmerge -U debian/pobuild/$pofilename \
debian/pobuild/templates.pot 2>/dev/null
# Else we just use what's translated
else
cp $pofile debian/pobuild/$pofilename && true
fi
printf "Done.\n"
done

# and now we generate the templates file from all this
PODEBCONF_LIB=. po2debconf --podir debian/pobuild debian/templates.tmp >debian/choose-mirror.templates


+ 46
- 0
sort-countries.new View File

@@ -0,0 +1,46 @@
#!/bin/sh
set -e

[ -d debian/locales ] || mkdir debian/locales
[ -d debian/sort-tmp ] || mkdir debian/sort-tmp
cd debian/sort-tmp
for protocol in http ftp
do
sed -n -e "/^Template: mirror\\/$protocol\\/countries/,/^Description:/p" ../choose-mirror/DEBIAN/templates |
sed -e "/^Choices-/s/\\\\,/--/g" |
perl -p -e '
chomp;
if (m/Choices-([^.]*)\.UTF-8:/) {
open (OUT, "> list.$1");
@t = split(/, /);
shift(@t);
my $cnt = 1;
foreach my $name (@t) {$cnt++; print OUT "$cnt $name\n";}
close OUT;
}
$_="";'
echo "Sorting mirror country list for protocol $protocol:"
for file in list.*
do
lang=${file#list.}
unilang=$(grep "^$lang.*\\.UTF-8" /usr/share/i18n/SUPPORTED | sed -e 1q | sed -e 's/[@. ].*//' )
echo -n " $lang... "
if [ -z "$unilang" ]; then
echo "skipped because no UTF-8 variant found." 1>&2
else
[ -d ../locales/$unilang.UTF-8 ] || localedef -c -f UTF-8 -i $unilang ../locales/$unilang.UTF-8
LOCPATH=`pwd` LC_ALL=../locales/$unilang.UTF-8 sort -k 2.1 $file | sed -e 's/ .*/, /' | tr -d '\n' | sed -e "s/^/Indices-$lang.UTF-8: 1, /" -e 's/, $//' > sorted$file
echo "Done."
echo "" >>sorted$file
fi
done
# Now ../choose-mirror/DEBIAN/templates must be patched: all sortedlist.*
# files have to be added to the mirror/$protocol/countries template.
sed -e "/$protocol.*countries/{n;q;}" ../choose-mirror/DEBIAN/templates |\
sed -e "/^Choices-/s/--/\\,/g" >templates.tmp
cat sorted* >>templates.tmp
sed -e "/$protocol.*countries/!d;/$protocol.*countries/{:end;n;b end}" ../choose-mirror/DEBIAN/templates | sed '1,2d'>>templates.tmp
mv templates.tmp ../choose-mirror/DEBIAN/templates || true
done
cd ../..
rm -r debian/locales debian/sort-tmp || true

Loading…
Cancel
Save