summaryrefslogtreecommitdiffstats
path: root/perl-install/share/po/ko.po
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/share/po/ko.po')
-rw-r--r--perl-install/share/po/ko.po597
1 files changed, 302 insertions, 295 deletions
diff --git a/perl-install/share/po/ko.po b/perl-install/share/po/ko.po
index ad3dd8d99..99f91f3cb 100644
--- a/perl-install/share/po/ko.po
+++ b/perl-install/share/po/ko.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: Mageia\n"
-"POT-Creation-Date: 2016-10-16 11:42+0200\n"
+"POT-Creation-Date: 2016-12-12 23:00+0100\n"
"PO-Revision-Date: 2015-07-05 06:47+0000\n"
"Last-Translator: Yuri Chornoivan <yurchor@ukr.net>\n"
"Language-Team: Korean (http://www.transifex.com/MageiaLinux/mageia/language/"
@@ -17,10 +17,10 @@ msgstr ""
"Content-Transfer-Encoding: 8-bit\n"
"Plural-Forms: nplurals=1; plural=0;\n"
-#: any.pm:263 any.pm:1023 diskdrake/interactive.pm:645
-#: diskdrake/interactive.pm:869 diskdrake/interactive.pm:931
-#: diskdrake/interactive.pm:1023 diskdrake/interactive.pm:1050
-#: diskdrake/interactive.pm:1281 diskdrake/interactive.pm:1339 do_pkgs.pm:342
+#: any.pm:263 any.pm:1026 diskdrake/interactive.pm:650
+#: diskdrake/interactive.pm:874 diskdrake/interactive.pm:936
+#: diskdrake/interactive.pm:1028 diskdrake/interactive.pm:1055
+#: diskdrake/interactive.pm:1286 diskdrake/interactive.pm:1344 do_pkgs.pm:342
#: do_pkgs.pm:387 interactive.pm:712 pkgs.pm:293
#, c-format
msgid "Please wait"
@@ -98,7 +98,7 @@ msgstr ""
msgid "On Floppy"
msgstr ""
-#: any.pm:364 pkgs.pm:289 ugtk2.pm:526 ugtk3.pm:602
+#: any.pm:364 pkgs.pm:289 ugtk2.pm:526 ugtk3.pm:600
#, c-format
msgid "Skip"
msgstr "건너뛰기"
@@ -168,7 +168,7 @@ msgstr ""
msgid "Security"
msgstr "보안"
-#: any.pm:428 any.pm:947 any.pm:966 authentication.pm:249
+#: any.pm:428 any.pm:950 any.pm:969 authentication.pm:249
#: diskdrake/smbnfs_gtk.pm:181
#, c-format
msgid "Password"
@@ -179,7 +179,7 @@ msgstr "암호"
msgid "The passwords do not match"
msgstr "암호가 일치하지 않습니다."
-#: any.pm:431 authentication.pm:260 diskdrake/interactive.pm:1508
+#: any.pm:431 authentication.pm:260 diskdrake/interactive.pm:1513
#, c-format
msgid "Please try again"
msgstr "다시 시도하세요."
@@ -189,7 +189,7 @@ msgstr "다시 시도하세요."
msgid "You cannot use a password with %s"
msgstr ""
-#: any.pm:437 any.pm:950 any.pm:968 authentication.pm:250
+#: any.pm:437 any.pm:953 any.pm:971 authentication.pm:250
#, c-format
msgid "Password (again)"
msgstr "암호 (확인)"
@@ -204,7 +204,7 @@ msgstr "이미지"
msgid "Root"
msgstr "루트"
-#: any.pm:504 any.pm:641
+#: any.pm:504 any.pm:642
#, c-format
msgid "Append"
msgstr "추가"
@@ -219,7 +219,7 @@ msgstr "Xen 추가"
msgid "Requires password to boot"
msgstr ""
-#: any.pm:509 any.pm:642
+#: any.pm:509 any.pm:643
#, c-format
msgid "Video mode"
msgstr "비디오 모드"
@@ -234,12 +234,12 @@ msgstr "초기화 램디스크"
msgid "Network profile"
msgstr ""
-#: any.pm:519 diskdrake/interactive.pm:410
+#: any.pm:519 diskdrake/interactive.pm:411
#, c-format
msgid "Label"
msgstr "항목명"
-#: any.pm:521 any.pm:639 harddrake/v4l.pm:438
+#: any.pm:521 any.pm:640 harddrake/v4l.pm:438
#, c-format
msgid "Default"
msgstr "기본값"
@@ -293,230 +293,237 @@ msgstr ""
"몇 가지 항목이 여기에 표시되고 있습니다.\n"
"더 추가하거나, 기존의 것들을 수정할수 있습니다."
-#: any.pm:644
+#: any.pm:645
#, c-format
msgid "Do not touch ESP or MBR"
msgstr ""
-#: any.pm:646 diskdrake/dav.pm:106 diskdrake/hd_gtk.pm:458
-#: diskdrake/interactive.pm:304 diskdrake/interactive.pm:390
-#: diskdrake/interactive.pm:600 diskdrake/interactive.pm:815
-#: diskdrake/interactive.pm:880 diskdrake/interactive.pm:1048
-#: diskdrake/interactive.pm:1090 diskdrake/interactive.pm:1091
-#: diskdrake/interactive.pm:1324 diskdrake/interactive.pm:1362
-#: diskdrake/interactive.pm:1507 do_pkgs.pm:45 do_pkgs.pm:74 do_pkgs.pm:100
+#: any.pm:647 diskdrake/dav.pm:106 diskdrake/hd_gtk.pm:458
+#: diskdrake/interactive.pm:305 diskdrake/interactive.pm:391
+#: diskdrake/interactive.pm:605 diskdrake/interactive.pm:820
+#: diskdrake/interactive.pm:885 diskdrake/interactive.pm:1053
+#: diskdrake/interactive.pm:1095 diskdrake/interactive.pm:1096
+#: diskdrake/interactive.pm:1329 diskdrake/interactive.pm:1367
+#: diskdrake/interactive.pm:1512 do_pkgs.pm:45 do_pkgs.pm:74 do_pkgs.pm:100
#: do_pkgs.pm:137
#, c-format
msgid "Warning"
msgstr "경고"
-#: any.pm:647
+#: any.pm:648
#, c-format
msgid ""
"Not installing on ESP or MBR means that the installation is not bootable "
"unless chain loaded from another OS!"
msgstr ""
-#: any.pm:651
+#: any.pm:652
#, c-format
msgid "Probe Foreign OS"
msgstr ""
-#: any.pm:906
+#: any.pm:653
+#, c-format
+msgid ""
+"If grub2 takes too long to install, you can use this option to skip "
+"detecting other OSes and make it fast"
+msgstr ""
+
+#: any.pm:909
#, c-format
msgid "access to X programs"
msgstr "X 프로그램 액세스"
-#: any.pm:907
+#: any.pm:910
#, c-format
msgid "access to rpm tools"
msgstr "RPM 도구 액세스"
-#: any.pm:908
+#: any.pm:911
#, c-format
msgid "allow \"su\""
msgstr "「su」허용"
-#: any.pm:909
+#: any.pm:912
#, c-format
msgid "access to administrative files"
msgstr "시스템 관리파일 액세스"
-#: any.pm:910
+#: any.pm:913
#, c-format
msgid "access to network tools"
msgstr "네트웍 도구 액세스"
-#: any.pm:911
+#: any.pm:914
#, c-format
msgid "access to compilation tools"
msgstr "컴파일 도구 액세스"
-#: any.pm:917
+#: any.pm:920
#, c-format
msgid "(already added %s)"
msgstr "(이미 %s는(은) 추가되었습니다.)"
-#: any.pm:923
+#: any.pm:926
#, c-format
msgid "Please give a user name"
msgstr "사용자명을 입력해 주세요"
-#: any.pm:924
+#: any.pm:927
#, c-format
msgid ""
"The user name must start with a lower case letter followed by only lower "
"cased letters, numbers, `-' and `_'"
msgstr ""
-#: any.pm:925
+#: any.pm:928
#, c-format
msgid "The user name is too long"
msgstr "사용자 명이 너무 깁니다."
-#: any.pm:926
+#: any.pm:929
#, c-format
msgid "This user name has already been added"
msgstr "이 사용자명은 이미 추가되어 있습니다."
-#: any.pm:932 any.pm:970
+#: any.pm:935 any.pm:973
#, c-format
msgid "User ID"
msgstr "사용자 ID"
-#: any.pm:932 any.pm:971
+#: any.pm:935 any.pm:974
#, c-format
msgid "Group ID"
msgstr "그룹 ID"
-#: any.pm:933
+#: any.pm:936
#, c-format
msgid "%s must be a number"
msgstr ""
-#: any.pm:934
+#: any.pm:937
#, c-format
msgid "%s should be above 1000. Accept anyway?"
msgstr ""
"%s 는 1000 위의 수여야 합니다. 지금의 수를 허가하고 \n"
"계속 진행하시겠습니까?"
-#: any.pm:938
+#: any.pm:941
#, c-format
msgid "User management"
msgstr ""
-#: any.pm:944
+#: any.pm:947
#, c-format
msgid "Enable guest account"
msgstr ""
-#: any.pm:946 authentication.pm:236
+#: any.pm:949 authentication.pm:236
#, c-format
msgid "Set administrator (root) password"
msgstr ""
-#: any.pm:952
+#: any.pm:955
#, c-format
msgid "Enter a user"
msgstr ""
-#: any.pm:954
+#: any.pm:957
#, c-format
msgid "Icon"
msgstr "아이콘"
-#: any.pm:957
+#: any.pm:960
#, c-format
msgid "Real name"
msgstr "실제 이름"
-#: any.pm:964
+#: any.pm:967
#, c-format
msgid "Login name"
msgstr ""
-#: any.pm:969
+#: any.pm:972
#, c-format
msgid "Shell"
msgstr "명령 해석기"
-#: any.pm:973
+#: any.pm:976
#, c-format
msgid "Extra Groups:"
msgstr ""
-#: any.pm:1023
+#: any.pm:1026
#, c-format
msgid "Please wait, adding media..."
msgstr ""
-#: any.pm:1075 security/l10n.pm:14
+#: any.pm:1078 security/l10n.pm:14
#, c-format
msgid "Autologin"
msgstr "자동로그인"
-#: any.pm:1076
+#: any.pm:1079
#, c-format
msgid "I can set up your computer to automatically log on one user."
msgstr ""
-#: any.pm:1077
+#: any.pm:1080
#, c-format
msgid "Use this feature"
msgstr ""
-#: any.pm:1078
+#: any.pm:1081
#, c-format
msgid "Choose the default user:"
msgstr "기본 사용자를 선택하세요:"
-#: any.pm:1079
+#: any.pm:1082
#, c-format
msgid "Choose the window manager to run:"
msgstr "사용할 윈도우 매니저를 선택하세요:"
-#: any.pm:1090 any.pm:1105 any.pm:1174
+#: any.pm:1093 any.pm:1108 any.pm:1177
#, c-format
msgid "Release Notes"
msgstr "릴리즈 노트"
-#: any.pm:1112 any.pm:1473 interactive/gtk.pm:820
+#: any.pm:1115 any.pm:1476 interactive/gtk.pm:820
#, c-format
msgid "Close"
msgstr "닫기"
-#: any.pm:1160
+#: any.pm:1163
#, c-format
msgid "License agreement"
msgstr "사용 동의서"
-#: any.pm:1162 diskdrake/dav.pm:26 mygtk2.pm:1229 mygtk3.pm:1311
+#: any.pm:1165 diskdrake/dav.pm:26 mygtk2.pm:1229 mygtk3.pm:1312
#, c-format
msgid "Quit"
msgstr "종료"
-#: any.pm:1169
+#: any.pm:1172
#, c-format
msgid "Do you accept this license ?"
msgstr ""
-#: any.pm:1170
+#: any.pm:1173
#, c-format
msgid "Accept"
msgstr "동의"
-#: any.pm:1170
+#: any.pm:1173
#, c-format
msgid "Refuse"
msgstr "거부"
-#: any.pm:1196 any.pm:1259
+#: any.pm:1199 any.pm:1262
#, c-format
msgid "Please choose a language to use"
msgstr "사용할 언어를 선택해 주세요"
-#: any.pm:1224
+#: any.pm:1227
#, c-format
msgid ""
"%s can support multiple languages. Select\n"
@@ -524,87 +531,87 @@ msgid ""
"when your installation is complete and you restart your system."
msgstr ""
-#: any.pm:1226 fs/partitioning_wizard.pm:194
+#: any.pm:1229 fs/partitioning_wizard.pm:194
#, c-format
msgid "Mageia"
msgstr "마제야"
-#: any.pm:1227
+#: any.pm:1230
#, c-format
msgid "Multiple languages"
msgstr ""
-#: any.pm:1228
+#: any.pm:1231
#, c-format
msgid "Select Additional Languages"
msgstr ""
-#: any.pm:1237 any.pm:1268
+#: any.pm:1240 any.pm:1271
#, c-format
msgid "Old compatibility (non UTF-8) encoding"
msgstr "이전 호환성 (non UTF-8) 인코딩"
-#: any.pm:1238
+#: any.pm:1241
#, c-format
msgid "All languages"
msgstr "모든 언어들"
-#: any.pm:1260
+#: any.pm:1263
#, c-format
msgid "Language choice"
msgstr ""
-#: any.pm:1314
+#: any.pm:1317
#, c-format
msgid "Country / Region"
msgstr "국가"
-#: any.pm:1315
+#: any.pm:1318
#, c-format
msgid "Please choose your country"
msgstr ""
-#: any.pm:1317
+#: any.pm:1320
#, c-format
msgid "Here is the full list of available countries"
msgstr ""
-#: any.pm:1318
+#: any.pm:1321
#, c-format
msgid "Other Countries"
msgstr ""
-#: any.pm:1318 interactive.pm:491 interactive/gtk.pm:444
+#: any.pm:1321 interactive.pm:491 interactive/gtk.pm:444
#, c-format
msgid "Advanced"
msgstr "고급"
-#: any.pm:1324
+#: any.pm:1327
#, c-format
msgid "Input method:"
msgstr "입력 방법"
-#: any.pm:1327
+#: any.pm:1330
#, c-format
msgid "None"
msgstr "없음"
-#: any.pm:1418
+#: any.pm:1421
#, c-format
msgid "No sharing"
msgstr "비공유"
-#: any.pm:1418
+#: any.pm:1421
#, c-format
msgid "Allow all users"
msgstr "모든 사용자 허용"
-#: any.pm:1418
+#: any.pm:1421
#, c-format
msgid "Custom"
msgstr "사용자 정의"
-#: any.pm:1422
+#: any.pm:1425
#, c-format
msgid ""
"Would you like to allow users to share some of their directories?\n"
@@ -618,7 +625,7 @@ msgstr ""
"사용자에게 공유가 허가될 것입니다.\n"
"\"Custom\" 사용자마다 따로 허가 해줄 수 있습니다.\n"
-#: any.pm:1434
+#: any.pm:1437
#, c-format
msgid ""
"NFS: the traditional Unix file sharing system, with less support on Mac and "
@@ -627,7 +634,7 @@ msgstr ""
"NFS: Mac과 Windows 에서는 다소 지원이 미흡하지만\n"
"전통적인 Unix 파일 공유 시스템입니다."
-#: any.pm:1437
+#: any.pm:1440
#, c-format
msgid ""
"SMB: a file sharing system used by Windows, Mac OS X and many modern Linux "
@@ -635,18 +642,18 @@ msgid ""
msgstr ""
"SMB: Window, Mac OS X 그리고 많은 최신 Linux에서 사용되는 파일 공유 시스템"
-#: any.pm:1445
+#: any.pm:1448
#, c-format
msgid ""
"You can export using NFS or SMB. Please select which you would like to use."
msgstr "NFS와 삼바 중, 어느 것을 이용하시겠습니까?"
-#: any.pm:1473
+#: any.pm:1476
#, c-format
msgid "Launch userdrake"
msgstr "userdrake 실행"
-#: any.pm:1475
+#: any.pm:1478
#, c-format
msgid ""
"The per-user sharing uses the group \"fileshare\". \n"
@@ -655,54 +662,54 @@ msgstr ""
"사용자 개개인의 공유를 위해서는 그룹의 \"fileshare\"를 사용합니다.\n"
"이 그룹에서 사용자를 추가하기위해 userdrake를 사용할 수 있습니다."
-#: any.pm:1582
+#: any.pm:1585
#, c-format
msgid ""
"You need to logout and back in again for changes to take effect. Press OK to "
"logout now."
msgstr ""
-#: any.pm:1586
+#: any.pm:1589
#, c-format
msgid "You need to log out and back in again for changes to take effect"
msgstr ""
-#: any.pm:1621
+#: any.pm:1624
#, c-format
msgid "Timezone"
msgstr "시간대"
-#: any.pm:1621
+#: any.pm:1624
#, c-format
msgid "Which is your timezone?"
msgstr "님의 시간대는 어디입니까?"
-#: any.pm:1644 any.pm:1646
+#: any.pm:1647 any.pm:1649
#, c-format
msgid "Date, Clock & Time Zone Settings"
msgstr "날짜, 시간 & 시간대 설정"
-#: any.pm:1647
+#: any.pm:1650
#, c-format
msgid "What is the best time?"
msgstr "최적의 시간은 무엇입니까?"
-#: any.pm:1651
+#: any.pm:1654
#, c-format
msgid "%s (hardware clock set to UTC)"
msgstr ""
-#: any.pm:1652
+#: any.pm:1655
#, c-format
msgid "%s (hardware clock set to local time)"
msgstr ""
-#: any.pm:1654
+#: any.pm:1657
#, c-format
msgid "NTP Server"
msgstr "NTP 서버"
-#: any.pm:1655
+#: any.pm:1658
#, c-format
msgid "Automatic time synchronization (using NTP)"
msgstr "자동 시간 동기화 (NTP 사용)"
@@ -1157,12 +1164,12 @@ msgstr ""
msgid "New"
msgstr "새로 만들기"
-#: diskdrake/dav.pm:63 diskdrake/interactive.pm:417 diskdrake/smbnfs_gtk.pm:75
+#: diskdrake/dav.pm:63 diskdrake/interactive.pm:418 diskdrake/smbnfs_gtk.pm:75
#, c-format
msgid "Unmount"
msgstr "언마운트"
-#: diskdrake/dav.pm:64 diskdrake/interactive.pm:413 diskdrake/smbnfs_gtk.pm:76
+#: diskdrake/dav.pm:64 diskdrake/interactive.pm:414 diskdrake/smbnfs_gtk.pm:76
#, c-format
msgid "Mount"
msgstr "마운트"
@@ -1172,16 +1179,16 @@ msgstr "마운트"
msgid "Server"
msgstr "서버"
-#: diskdrake/dav.pm:66 diskdrake/interactive.pm:407
-#: diskdrake/interactive.pm:722 diskdrake/interactive.pm:740
-#: diskdrake/interactive.pm:744 diskdrake/removable.pm:23
+#: diskdrake/dav.pm:66 diskdrake/interactive.pm:408
+#: diskdrake/interactive.pm:727 diskdrake/interactive.pm:745
+#: diskdrake/interactive.pm:749 diskdrake/removable.pm:23
#: diskdrake/smbnfs_gtk.pm:79
#, c-format
msgid "Mount point"
msgstr "마운트 위치"
-#: diskdrake/dav.pm:67 diskdrake/interactive.pm:409
-#: diskdrake/interactive.pm:1177 diskdrake/removable.pm:24
+#: diskdrake/dav.pm:67 diskdrake/interactive.pm:410
+#: diskdrake/interactive.pm:1182 diskdrake/removable.pm:24
#: diskdrake/smbnfs_gtk.pm:80
#, c-format
msgid "Options"
@@ -1199,13 +1206,13 @@ msgid "Done"
msgstr "완료"
#: diskdrake/dav.pm:78 diskdrake/hd_gtk.pm:153 diskdrake/hd_gtk.pm:323
-#: diskdrake/interactive.pm:245 diskdrake/interactive.pm:258
-#: diskdrake/interactive.pm:455 diskdrake/interactive.pm:530
-#: diskdrake/interactive.pm:548 diskdrake/interactive.pm:553
-#: diskdrake/interactive.pm:712 diskdrake/interactive.pm:1015
-#: diskdrake/interactive.pm:1068 diskdrake/interactive.pm:1224
-#: diskdrake/interactive.pm:1237 diskdrake/interactive.pm:1240
-#: diskdrake/interactive.pm:1508 diskdrake/smbnfs_gtk.pm:42 do_pkgs.pm:49
+#: diskdrake/interactive.pm:246 diskdrake/interactive.pm:259
+#: diskdrake/interactive.pm:460 diskdrake/interactive.pm:535
+#: diskdrake/interactive.pm:553 diskdrake/interactive.pm:558
+#: diskdrake/interactive.pm:717 diskdrake/interactive.pm:1020
+#: diskdrake/interactive.pm:1073 diskdrake/interactive.pm:1229
+#: diskdrake/interactive.pm:1242 diskdrake/interactive.pm:1245
+#: diskdrake/interactive.pm:1513 diskdrake/smbnfs_gtk.pm:42 do_pkgs.pm:49
#: do_pkgs.pm:54 do_pkgs.pm:79 do_pkgs.pm:103 do_pkgs.pm:108 do_pkgs.pm:142
#: fsedit.pm:266 interactive/http.pm:117 interactive/http.pm:118
#: modules/interactive.pm:19 scanner.pm:94 scanner.pm:105 scanner.pm:112
@@ -1234,18 +1241,18 @@ msgstr ""
msgid "Server: "
msgstr "서버:"
-#: diskdrake/dav.pm:125 diskdrake/interactive.pm:500
-#: diskdrake/interactive.pm:1386 diskdrake/interactive.pm:1468
+#: diskdrake/dav.pm:125 diskdrake/interactive.pm:505
+#: diskdrake/interactive.pm:1391 diskdrake/interactive.pm:1473
#, c-format
msgid "Mount point: "
msgstr "마운트 위치: "
-#: diskdrake/dav.pm:126 diskdrake/interactive.pm:1475
+#: diskdrake/dav.pm:126 diskdrake/interactive.pm:1480
#, c-format
msgid "Options: %s"
msgstr "옵션들: %s"
-#: diskdrake/hd_gtk.pm:61 diskdrake/interactive.pm:299
+#: diskdrake/hd_gtk.pm:61 diskdrake/interactive.pm:300
#: diskdrake/smbnfs_gtk.pm:22 fs/mount_point.pm:113
#: fs/partitioning_wizard.pm:66 fs/partitioning_wizard.pm:264
#: fs/partitioning_wizard.pm:272 fs/partitioning_wizard.pm:310
@@ -1260,8 +1267,8 @@ msgstr ""
msgid "Click on a partition, choose a filesystem type then choose an action"
msgstr ""
-#: diskdrake/hd_gtk.pm:133 diskdrake/interactive.pm:1198
-#: diskdrake/interactive.pm:1208 diskdrake/interactive.pm:1262
+#: diskdrake/hd_gtk.pm:133 diskdrake/interactive.pm:1203
+#: diskdrake/interactive.pm:1213 diskdrake/interactive.pm:1267
#, c-format
msgid "Read carefully"
msgstr "주의깊게 읽으세요"
@@ -1271,7 +1278,7 @@ msgstr "주의깊게 읽으세요"
msgid "Please make a backup of your data first"
msgstr "먼저 데이터를 백업하세요."
-#: diskdrake/hd_gtk.pm:134 diskdrake/interactive.pm:238
+#: diskdrake/hd_gtk.pm:134 diskdrake/interactive.pm:239
#, c-format
msgid "Exit"
msgstr "종료"
@@ -1283,7 +1290,7 @@ msgstr "계속"
#: diskdrake/hd_gtk.pm:216 fs/partitioning_wizard.pm:590 interactive.pm:778
#: interactive/gtk.pm:812 interactive/gtk.pm:830 interactive/gtk.pm:862
-#: ugtk2.pm:934 ugtk3.pm:1032
+#: ugtk2.pm:934 ugtk3.pm:1030
#, c-format
msgid "Help"
msgstr "도움말"
@@ -1341,7 +1348,7 @@ msgstr ""
msgid "Other"
msgstr "기타"
-#: diskdrake/hd_gtk.pm:430 diskdrake/interactive.pm:1392
+#: diskdrake/hd_gtk.pm:430 diskdrake/interactive.pm:1397
#: fs/partitioning_wizard.pm:437
#, c-format
msgid "Empty"
@@ -1367,61 +1374,61 @@ msgstr "「언마운트」를 먼저 사용하세요"
msgid "Use ``%s'' instead (in expert mode)"
msgstr ""
-#: diskdrake/hd_gtk.pm:467 diskdrake/interactive.pm:408
-#: diskdrake/interactive.pm:639 diskdrake/removable.pm:25
+#: diskdrake/hd_gtk.pm:467 diskdrake/interactive.pm:409
+#: diskdrake/interactive.pm:644 diskdrake/removable.pm:25
#: diskdrake/removable.pm:48
#, c-format
msgid "Type"
msgstr "유형"
-#: diskdrake/interactive.pm:209
+#: diskdrake/interactive.pm:210
#, c-format
msgid "Choose another partition"
msgstr "다른 파티션 선택"
-#: diskdrake/interactive.pm:209
+#: diskdrake/interactive.pm:210
#, c-format
msgid "Choose a partition"
msgstr "파티션 선택"
-#: diskdrake/interactive.pm:271 diskdrake/interactive.pm:381
+#: diskdrake/interactive.pm:272 diskdrake/interactive.pm:382
#: interactive/curses.pm:532
#, c-format
msgid "More"
msgstr "추가 옵션"
-#: diskdrake/interactive.pm:279 diskdrake/interactive.pm:292
-#: diskdrake/interactive.pm:1308 mygtk2.pm:1228 mygtk3.pm:1310
+#: diskdrake/interactive.pm:280 diskdrake/interactive.pm:293
+#: diskdrake/interactive.pm:1313 mygtk2.pm:1228 mygtk3.pm:1311
#, c-format
msgid "Confirmation"
msgstr "확인"
-#: diskdrake/interactive.pm:279
+#: diskdrake/interactive.pm:280
#, c-format
msgid "Continue anyway?"
msgstr "계속하시겠습니까?"
-#: diskdrake/interactive.pm:284
+#: diskdrake/interactive.pm:285
#, c-format
msgid "Quit without saving"
msgstr "저장하지 않고 종료하시겠습니까?"
-#: diskdrake/interactive.pm:284
+#: diskdrake/interactive.pm:285
#, c-format
msgid "Quit without writing the partition table?"
msgstr "파티션을 기록하지 않고 종료하시겠습니까?"
-#: diskdrake/interactive.pm:292
+#: diskdrake/interactive.pm:293
#, c-format
msgid "Do you want to save the /etc/fstab modifications?"
msgstr "「/etc/fstab」의 변경사항을 저장하시겠습니까?"
-#: diskdrake/interactive.pm:299 fs/partitioning_wizard.pm:310
+#: diskdrake/interactive.pm:300 fs/partitioning_wizard.pm:310
#, c-format
msgid "You need to reboot for the partition table modifications to take effect"
msgstr "파티션 테이블 변경사항을 적용하려면 리부팅을 해야 합니다."
-#: diskdrake/interactive.pm:304
+#: diskdrake/interactive.pm:305
#, c-format
msgid ""
"You should format partition %s.\n"
@@ -1432,42 +1439,42 @@ msgstr ""
"포맷하지 않으면 fstab에 %s 마운트 포인트는 작성되지 않을 것입니다\n"
"종료하시겠습니까?"
-#: diskdrake/interactive.pm:317
+#: diskdrake/interactive.pm:318
#, c-format
msgid "Clear all"
msgstr "모두 삭제"
-#: diskdrake/interactive.pm:318
+#: diskdrake/interactive.pm:319
#, c-format
msgid "Auto allocate"
msgstr "자동 할당"
-#: diskdrake/interactive.pm:324
+#: diskdrake/interactive.pm:325
#, c-format
msgid "Toggle to normal mode"
msgstr "일반 모드로 전환"
-#: diskdrake/interactive.pm:324
+#: diskdrake/interactive.pm:325
#, c-format
msgid "Toggle to expert mode"
msgstr "전문가 모드로 전환"
-#: diskdrake/interactive.pm:336
+#: diskdrake/interactive.pm:337
#, c-format
msgid "Hard disk drive information"
msgstr "하드 디스크 정보"
-#: diskdrake/interactive.pm:370
+#: diskdrake/interactive.pm:371
#, c-format
msgid "All primary partitions are used"
msgstr "모든 주파티션이 사용중입니다."
-#: diskdrake/interactive.pm:371
+#: diskdrake/interactive.pm:372
#, c-format
msgid "I cannot add any more partitions"
msgstr "더이상 파티션을 추가할 수 없습니다."
-#: diskdrake/interactive.pm:372
+#: diskdrake/interactive.pm:373
#, c-format
msgid ""
"To have more partitions, please delete one to be able to create an extended "
@@ -1476,142 +1483,142 @@ msgstr ""
"더 많은 파티션을 만드실려면, 확장 파티션을 만들수 있도록 주파티션 하나를 지우"
"세요."
-#: diskdrake/interactive.pm:383
+#: diskdrake/interactive.pm:384
#, c-format
msgid "Reload partition table"
msgstr "파티션 테이블 다시 읽기"
-#: diskdrake/interactive.pm:390
+#: diskdrake/interactive.pm:391
#, c-format
msgid "Detailed information"
msgstr "자세한 정보"
-#: diskdrake/interactive.pm:406
+#: diskdrake/interactive.pm:407
#, c-format
msgid "View"
msgstr "보기"
-#: diskdrake/interactive.pm:411 diskdrake/interactive.pm:828
+#: diskdrake/interactive.pm:412 diskdrake/interactive.pm:833
#, c-format
msgid "Resize"
msgstr "크기조정"
-#: diskdrake/interactive.pm:412
+#: diskdrake/interactive.pm:413
#, c-format
msgid "Format"
msgstr "포맷"
-#: diskdrake/interactive.pm:414 diskdrake/interactive.pm:978
+#: diskdrake/interactive.pm:415 diskdrake/interactive.pm:983
#, c-format
msgid "Add to RAID"
msgstr "RAID에 추가"
-#: diskdrake/interactive.pm:415 diskdrake/interactive.pm:997
+#: diskdrake/interactive.pm:416 diskdrake/interactive.pm:1002
#, c-format
msgid "Add to LVM"
msgstr "LVM에 추가"
-#: diskdrake/interactive.pm:416
+#: diskdrake/interactive.pm:417
#, c-format
msgid "Use"
msgstr ""
-#: diskdrake/interactive.pm:418
+#: diskdrake/interactive.pm:419
#, c-format
msgid "Delete"
msgstr "삭제"
-#: diskdrake/interactive.pm:419
+#: diskdrake/interactive.pm:420
#, c-format
msgid "Remove from RAID"
msgstr "RAID로부터 제거"
-#: diskdrake/interactive.pm:420
+#: diskdrake/interactive.pm:421
#, c-format
msgid "Remove from LVM"
msgstr "LVM으로부터 제거"
-#: diskdrake/interactive.pm:421
+#: diskdrake/interactive.pm:422
#, c-format
msgid "Remove from dm"
msgstr ""
-#: diskdrake/interactive.pm:422
+#: diskdrake/interactive.pm:423
#, c-format
msgid "Modify RAID"
msgstr "RAID 수정"
-#: diskdrake/interactive.pm:423
+#: diskdrake/interactive.pm:424
#, c-format
msgid "Use for loopback"
msgstr "루프백으로 사용"
-#: diskdrake/interactive.pm:433
+#: diskdrake/interactive.pm:434
#, c-format
msgid "Create"
msgstr "생성"
-#: diskdrake/interactive.pm:455
+#: diskdrake/interactive.pm:460
#, c-format
msgid "Failed to mount partition"
msgstr ""
-#: diskdrake/interactive.pm:489 diskdrake/interactive.pm:491
+#: diskdrake/interactive.pm:494 diskdrake/interactive.pm:496
#, c-format
msgid "Create a new partition"
msgstr "새 파티션 만들기"
-#: diskdrake/interactive.pm:493
+#: diskdrake/interactive.pm:498
#, c-format
msgid "Start sector: "
msgstr "시작 섹터: "
-#: diskdrake/interactive.pm:496 diskdrake/interactive.pm:1083
+#: diskdrake/interactive.pm:501 diskdrake/interactive.pm:1088
#, c-format
msgid "Size in MB: "
msgstr "크기(MB) :"
-#: diskdrake/interactive.pm:498 diskdrake/interactive.pm:1084
+#: diskdrake/interactive.pm:503 diskdrake/interactive.pm:1089
#, c-format
msgid "Filesystem type: "
msgstr "파일시스템 유형: "
-#: diskdrake/interactive.pm:508
+#: diskdrake/interactive.pm:513
#, c-format
msgid "Preference: "
msgstr "사용자 정의"
-#: diskdrake/interactive.pm:511
+#: diskdrake/interactive.pm:516
#, c-format
msgid "Logical volume name "
msgstr ""
-#: diskdrake/interactive.pm:513
+#: diskdrake/interactive.pm:518
#, c-format
msgid "Encrypt partition"
msgstr ""
-#: diskdrake/interactive.pm:514
+#: diskdrake/interactive.pm:519
#, c-format
msgid "Encryption key "
msgstr ""
-#: diskdrake/interactive.pm:515 diskdrake/interactive.pm:1512
+#: diskdrake/interactive.pm:520 diskdrake/interactive.pm:1517
#, c-format
msgid "Encryption key (again)"
msgstr "암호화 키 (확인)"
-#: diskdrake/interactive.pm:527 diskdrake/interactive.pm:1508
+#: diskdrake/interactive.pm:532 diskdrake/interactive.pm:1513
#, c-format
msgid "The encryption keys do not match"
msgstr "암호화 키가 일치하지 않습니다."
-#: diskdrake/interactive.pm:528
+#: diskdrake/interactive.pm:533
#, c-format
msgid "Missing encryption key"
msgstr ""
-#: diskdrake/interactive.pm:548
+#: diskdrake/interactive.pm:553
#, c-format
msgid ""
"You cannot create a new partition\n"
@@ -1621,68 +1628,68 @@ msgstr ""
"(주 파티션의 최고 숫자에 도달했기 때문에)새 파티션을 생성할 수 없습니다.\n"
"먼저 주 파티션을 제거하고 확장 파티션을 생성합니다."
-#: diskdrake/interactive.pm:600
+#: diskdrake/interactive.pm:605
#, c-format
msgid "Remove the loopback file?"
msgstr "루프백 파일을 제거합니까?"
-#: diskdrake/interactive.pm:620
+#: diskdrake/interactive.pm:625
#, c-format
msgid ""
"After changing type of partition %s, all data on this partition will be lost"
msgstr "%s의 파티션 유형을 변경후 이 파티션내의 모든 자료를 잃게 됩니다."
-#: diskdrake/interactive.pm:636
+#: diskdrake/interactive.pm:641
#, c-format
msgid "Change partition type"
msgstr "파티션 유형 변경"
-#: diskdrake/interactive.pm:638 diskdrake/removable.pm:47
+#: diskdrake/interactive.pm:643 diskdrake/removable.pm:47
#, c-format
msgid "Which filesystem do you want?"
msgstr "어떤 파일 시스템을 원하세요?"
-#: diskdrake/interactive.pm:645
+#: diskdrake/interactive.pm:650
#, c-format
msgid "Switching from %s to %s"
msgstr ""
-#: diskdrake/interactive.pm:680
+#: diskdrake/interactive.pm:685
#, c-format
msgid "Set volume label"
msgstr ""
-#: diskdrake/interactive.pm:682
+#: diskdrake/interactive.pm:687
#, c-format
msgid "Beware, this will be written to disk as soon as you validate!"
msgstr ""
-#: diskdrake/interactive.pm:683
+#: diskdrake/interactive.pm:688
#, c-format
msgid "Beware, this will be written to disk only after formatting!"
msgstr ""
-#: diskdrake/interactive.pm:685
+#: diskdrake/interactive.pm:690
#, c-format
msgid "Which volume label?"
msgstr "어느 Volume Label?"
-#: diskdrake/interactive.pm:686
+#: diskdrake/interactive.pm:691
#, c-format
msgid "Label:"
msgstr ""
-#: diskdrake/interactive.pm:707
+#: diskdrake/interactive.pm:712
#, c-format
msgid "Where do you want to mount the loopback file %s?"
msgstr ""
-#: diskdrake/interactive.pm:708
+#: diskdrake/interactive.pm:713
#, c-format
msgid "Where do you want to mount device %s?"
msgstr "장치 %s를 어디에 마운트 하시겠습니까?"
-#: diskdrake/interactive.pm:713
+#: diskdrake/interactive.pm:718
#, c-format
msgid ""
"Cannot unset mount point as this partition is used for loop back.\n"
@@ -1692,120 +1699,120 @@ msgstr ""
"다.\n"
"loopback을 먼저 제거하세요."
-#: diskdrake/interactive.pm:743
+#: diskdrake/interactive.pm:748
#, c-format
msgid "Where do you want to mount %s?"
msgstr "%s를 어디에 마운트 하시겠습니까?"
-#: diskdrake/interactive.pm:773 diskdrake/interactive.pm:869
+#: diskdrake/interactive.pm:778 diskdrake/interactive.pm:874
#: fs/partitioning_wizard.pm:151 fs/partitioning_wizard.pm:233
#, c-format
msgid "Resizing"
msgstr "크기변경"
-#: diskdrake/interactive.pm:773
+#: diskdrake/interactive.pm:778
#, c-format
msgid "Computing FAT filesystem bounds"
msgstr "도스 파일시스템의 범위 계산중"
-#: diskdrake/interactive.pm:815
+#: diskdrake/interactive.pm:820
#, c-format
msgid "This partition is not resizeable"
msgstr "이 파티션은 크기변경이 허용되지 않습니다."
-#: diskdrake/interactive.pm:820
+#: diskdrake/interactive.pm:825
#, c-format
msgid "All data on this partition should be backed up"
msgstr "이 파티션의 모든 데이타를 백업하여야 합니다."
-#: diskdrake/interactive.pm:822
+#: diskdrake/interactive.pm:827
#, c-format
msgid "After resizing partition %s, all data on this partition will be lost"
msgstr "%s 파티션의 크기를 변경하면, 모든 데이타를 잃게됩니다."
-#: diskdrake/interactive.pm:829
+#: diskdrake/interactive.pm:834
#, c-format
msgid "Choose the new size"
msgstr "새로운 크기를 선택해 주세요"
-#: diskdrake/interactive.pm:830
+#: diskdrake/interactive.pm:835
#, c-format
msgid "New size in MB: "
msgstr "새로운 용량(MB):"
-#: diskdrake/interactive.pm:831
+#: diskdrake/interactive.pm:836
#, c-format
msgid "Minimum size: %s MB"
msgstr "최소 크기: %s MB"
-#: diskdrake/interactive.pm:832
+#: diskdrake/interactive.pm:837
#, c-format
msgid "Maximum size: %s MB"
msgstr "최대 크기: %s MB"
-#: diskdrake/interactive.pm:880 fs/partitioning_wizard.pm:241
+#: diskdrake/interactive.pm:885 fs/partitioning_wizard.pm:241
#, c-format
msgid ""
"To ensure data integrity after resizing the partition(s),\n"
"filesystem checks will be run on your next boot into Microsoft Windows®"
msgstr ""
-#: diskdrake/interactive.pm:946 diskdrake/interactive.pm:1503
+#: diskdrake/interactive.pm:951 diskdrake/interactive.pm:1508
#, c-format
msgid "Filesystem encryption key"
msgstr "파일시스템 암호화 키"
-#: diskdrake/interactive.pm:947
+#: diskdrake/interactive.pm:952
#, c-format
msgid "Enter your filesystem encryption key"
msgstr ""
-#: diskdrake/interactive.pm:948 diskdrake/interactive.pm:1511
+#: diskdrake/interactive.pm:953 diskdrake/interactive.pm:1516
#, c-format
msgid "Encryption key"
msgstr "암호화 키"
-#: diskdrake/interactive.pm:955
+#: diskdrake/interactive.pm:960
#, c-format
msgid "Invalid key"
msgstr ""
-#: diskdrake/interactive.pm:978
+#: diskdrake/interactive.pm:983
#, c-format
msgid "Choose an existing RAID to add to"
msgstr "추가할 기존 RAID를 선택하세요."
-#: diskdrake/interactive.pm:980 diskdrake/interactive.pm:999
+#: diskdrake/interactive.pm:985 diskdrake/interactive.pm:1004
#, c-format
msgid "new"
msgstr "새로 만들기"
-#: diskdrake/interactive.pm:997
+#: diskdrake/interactive.pm:1002
#, c-format
msgid "Choose an existing LVM to add to"
msgstr "추가할 LVM를 선택하세요"
-#: diskdrake/interactive.pm:1009 diskdrake/interactive.pm:1018
+#: diskdrake/interactive.pm:1014 diskdrake/interactive.pm:1023
#, c-format
msgid "LVM name"
msgstr ""
-#: diskdrake/interactive.pm:1010
+#: diskdrake/interactive.pm:1015
#, c-format
msgid "Enter a name for the new LVM volume group"
msgstr ""
-#: diskdrake/interactive.pm:1015
+#: diskdrake/interactive.pm:1020
#, c-format
msgid "\"%s\" already exists"
msgstr ""
-#: diskdrake/interactive.pm:1023
+#: diskdrake/interactive.pm:1028
#, c-format
msgid "Setting up LVM"
msgstr ""
-#: diskdrake/interactive.pm:1048
+#: diskdrake/interactive.pm:1053
#, c-format
msgid ""
"Physical volume %s is still in use.\n"
@@ -1814,117 +1821,117 @@ msgstr ""
"물리적 Volume %s 는 이미 사용중입니다.\n"
"이 Volume에서 사용된 물리적인 부분을 다른 Volume으로 이동하시겠습니까?"
-#: diskdrake/interactive.pm:1050
+#: diskdrake/interactive.pm:1055
#, c-format
msgid "Moving physical extents"
msgstr "물리적인 부분 이동중"
-#: diskdrake/interactive.pm:1068
+#: diskdrake/interactive.pm:1073
#, c-format
msgid "This partition cannot be used for loopback"
msgstr "이 파티션은 loopback으로 사용될 수 없습니다."
-#: diskdrake/interactive.pm:1081
+#: diskdrake/interactive.pm:1086
#, c-format
msgid "Loopback"
msgstr "루프백"
-#: diskdrake/interactive.pm:1082
+#: diskdrake/interactive.pm:1087
#, c-format
msgid "Loopback file name: "
msgstr "루프백 파일 이름: "
-#: diskdrake/interactive.pm:1087
+#: diskdrake/interactive.pm:1092
#, c-format
msgid "Give a file name"
msgstr "파일 이름을 입력하세요."
-#: diskdrake/interactive.pm:1090
+#: diskdrake/interactive.pm:1095
#, c-format
msgid "File is already used by another loopback, choose another one"
msgstr ""
-#: diskdrake/interactive.pm:1091
+#: diskdrake/interactive.pm:1096
#, c-format
msgid "File already exists. Use it?"
msgstr "파일이 이미 존재합니다. 그것을 사용합니까?"
-#: diskdrake/interactive.pm:1123 diskdrake/interactive.pm:1126
+#: diskdrake/interactive.pm:1128 diskdrake/interactive.pm:1131
#, c-format
msgid "Mount options"
msgstr "마운트 옵션들:"
-#: diskdrake/interactive.pm:1133
+#: diskdrake/interactive.pm:1138
#, c-format
msgid "Various"
msgstr "다양한"
-#: diskdrake/interactive.pm:1179
+#: diskdrake/interactive.pm:1184
#, c-format
msgid "device"
msgstr "장치"
-#: diskdrake/interactive.pm:1180
+#: diskdrake/interactive.pm:1185
#, c-format
msgid "level"
msgstr "레벨"
-#: diskdrake/interactive.pm:1181
+#: diskdrake/interactive.pm:1186
#, c-format
msgid "chunk size in KiB"
msgstr ""
-#: diskdrake/interactive.pm:1199
+#: diskdrake/interactive.pm:1204
#, c-format
msgid "Be careful: this operation is dangerous."
msgstr "주의 : 이 조작은 위험합니다."
-#: diskdrake/interactive.pm:1215
+#: diskdrake/interactive.pm:1220
#, c-format
msgid "Partitioning Type"
msgstr ""
-#: diskdrake/interactive.pm:1215
+#: diskdrake/interactive.pm:1220
#, c-format
msgid "What type of partitioning?"
msgstr "어떤 유형의 파티션입니까?"
-#: diskdrake/interactive.pm:1253
+#: diskdrake/interactive.pm:1258
#, c-format
msgid "You'll need to reboot before the modification can take effect"
msgstr "변경된것을 적용하기 위해선 리부팅이 필요합니다."
-#: diskdrake/interactive.pm:1262
+#: diskdrake/interactive.pm:1267
#, c-format
msgid "Partition table of drive %s is going to be written to disk"
msgstr "%s 드라이브의 파티션 테이블을 저장합니다."
-#: diskdrake/interactive.pm:1281 fs/format.pm:106 fs/format.pm:113
+#: diskdrake/interactive.pm:1286 fs/format.pm:106 fs/format.pm:113
#, c-format
msgid "Formatting partition %s"
msgstr "%s 파티션 포맷중"
-#: diskdrake/interactive.pm:1294
+#: diskdrake/interactive.pm:1299
#, c-format
msgid "After formatting partition %s, all data on this partition will be lost"
msgstr "%s 파티션을 포맷하면, 모든 데이타를 잃게 됩니다."
-#: diskdrake/interactive.pm:1308 fs/partitioning.pm:48
+#: diskdrake/interactive.pm:1313 fs/partitioning.pm:48
#, c-format
msgid "Check for bad blocks?"
msgstr "배드 블럭 검사를 합니까?"
-#: diskdrake/interactive.pm:1323
+#: diskdrake/interactive.pm:1328
#, c-format
msgid "Move files to the new partition"
msgstr "새 파티션으로 파일 옴기기"
-#: diskdrake/interactive.pm:1323
+#: diskdrake/interactive.pm:1328
#, c-format
msgid "Hide files"
msgstr "파일 숨기기"
-#: diskdrake/interactive.pm:1324
+#: diskdrake/interactive.pm:1329
#, c-format
msgid ""
"Directory %s already contains data\n"
@@ -1935,127 +1942,127 @@ msgid ""
"the contents of the mounted partition)"
msgstr ""
-#: diskdrake/interactive.pm:1339
+#: diskdrake/interactive.pm:1344
#, c-format
msgid "Moving files to the new partition"
msgstr "새 파티션으로 파일 이동 중"
-#: diskdrake/interactive.pm:1343
+#: diskdrake/interactive.pm:1348
#, c-format
msgid "Copying %s"
msgstr "%s 복사 중"
-#: diskdrake/interactive.pm:1347
+#: diskdrake/interactive.pm:1352
#, c-format
msgid "Removing %s"
msgstr "%s 제거 중"
-#: diskdrake/interactive.pm:1361
+#: diskdrake/interactive.pm:1366
#, c-format
msgid "partition %s is now known as %s"
msgstr "%s 파티션은 지금 %s로 알려져 있습니다. "
-#: diskdrake/interactive.pm:1362
+#: diskdrake/interactive.pm:1367
#, c-format
msgid "Partitions have been renumbered: "
msgstr "파티션이 다시 번호가 매겨졌습니다."
-#: diskdrake/interactive.pm:1387 diskdrake/interactive.pm:1452
+#: diskdrake/interactive.pm:1392 diskdrake/interactive.pm:1457
#, c-format
msgid "Device: "
msgstr "장치: "
-#: diskdrake/interactive.pm:1388
+#: diskdrake/interactive.pm:1393
#, c-format
msgid "Volume label: "
msgstr ""
-#: diskdrake/interactive.pm:1389
+#: diskdrake/interactive.pm:1394
#, c-format
msgid "UUID: "
msgstr ""
-#: diskdrake/interactive.pm:1390
+#: diskdrake/interactive.pm:1395
#, c-format
msgid "DOS drive letter: %s (just a guess)\n"
msgstr "DOS 드라이브 문자: %s (단지 추측일 뿐임)\n"
-#: diskdrake/interactive.pm:1394 diskdrake/interactive.pm:1471
+#: diskdrake/interactive.pm:1399 diskdrake/interactive.pm:1476
#, c-format
msgid "Type: "
msgstr "유형: "
-#: diskdrake/interactive.pm:1396
+#: diskdrake/interactive.pm:1401
#, c-format
msgid "Start: sector %s\n"
msgstr "시작: 섹터 %s\n"
-#: diskdrake/interactive.pm:1398
+#: diskdrake/interactive.pm:1403
#, c-format
msgid "Size: %s (%s%% of disk)"
msgstr ""
-#: diskdrake/interactive.pm:1400
+#: diskdrake/interactive.pm:1405
#, c-format
msgid "Size: %s"
msgstr "크기: %s"
-#: diskdrake/interactive.pm:1402
+#: diskdrake/interactive.pm:1407
#, c-format
msgid ", %s sectors"
msgstr ", %s 섹터"
-#: diskdrake/interactive.pm:1404
+#: diskdrake/interactive.pm:1409
#, c-format
msgid "Cylinder %d to %d\n"
msgstr "실린더 %d에서 %d까지\n"
-#: diskdrake/interactive.pm:1405
+#: diskdrake/interactive.pm:1410
#, c-format
msgid "Number of logical extents: %d\n"
msgstr "Logical 부분의 수 : %d\n"
-#: diskdrake/interactive.pm:1406
+#: diskdrake/interactive.pm:1411
#, c-format
msgid "Formatted\n"
msgstr "포맷되었음\n"
-#: diskdrake/interactive.pm:1407
+#: diskdrake/interactive.pm:1412
#, c-format
msgid "Not formatted\n"
msgstr "포맷 안되었음\n"
-#: diskdrake/interactive.pm:1408
+#: diskdrake/interactive.pm:1413
#, c-format
msgid "Mounted\n"
msgstr "마운트 되었음\n"
-#: diskdrake/interactive.pm:1409
+#: diskdrake/interactive.pm:1414
#, c-format
msgid "RAID %s\n"
msgstr "레이드 장치 %s\n"
-#: diskdrake/interactive.pm:1411
+#: diskdrake/interactive.pm:1416
#, c-format
msgid "Encrypted"
msgstr ""
-#: diskdrake/interactive.pm:1413
+#: diskdrake/interactive.pm:1418
#, c-format
msgid " (mapped on %s)"
msgstr ""
-#: diskdrake/interactive.pm:1414
+#: diskdrake/interactive.pm:1419
#, c-format
msgid " (to map on %s)"
msgstr ""
-#: diskdrake/interactive.pm:1415
+#: diskdrake/interactive.pm:1420
#, c-format
msgid " (inactive)"
msgstr ""
-#: diskdrake/interactive.pm:1422
+#: diskdrake/interactive.pm:1427
#, c-format
msgid ""
"Loopback file(s):\n"
@@ -2064,7 +2071,7 @@ msgstr ""
"루프백 파일(들):\n"
" %s\n"
-#: diskdrake/interactive.pm:1423
+#: diskdrake/interactive.pm:1428
#, c-format
msgid ""
"Partition booted by default\n"
@@ -2073,27 +2080,27 @@ msgstr ""
"기본적으로 부팅되는 파티션\n"
" (lilo를 위한것이 아니라 MS-DOS boot를 위한것임)\n"
-#: diskdrake/interactive.pm:1425
+#: diskdrake/interactive.pm:1430
#, c-format
msgid "Level %s\n"
msgstr "%s 등급\n"
-#: diskdrake/interactive.pm:1426
+#: diskdrake/interactive.pm:1431
#, c-format
msgid "Chunk size %d KiB\n"
msgstr ""
-#: diskdrake/interactive.pm:1427
+#: diskdrake/interactive.pm:1432
#, c-format
msgid "RAID-disks %s\n"
msgstr "레이드-디스크 %s\n"
-#: diskdrake/interactive.pm:1429
+#: diskdrake/interactive.pm:1434
#, c-format
msgid "Loopback file name: %s"
msgstr "루프백 파일 이름: %s"
-#: diskdrake/interactive.pm:1432
+#: diskdrake/interactive.pm:1437
#, c-format
msgid ""
"\n"
@@ -2102,7 +2109,7 @@ msgid ""
"probably leave it alone.\n"
msgstr ""
-#: diskdrake/interactive.pm:1435
+#: diskdrake/interactive.pm:1440
#, c-format
msgid ""
"\n"
@@ -2115,62 +2122,62 @@ msgstr ""
"파티션은 시스템을 \n"
"듀얼 부팅하기 위한 것입니다.\n"
-#: diskdrake/interactive.pm:1444
+#: diskdrake/interactive.pm:1449
#, c-format
msgid "Free space on %s (%s)"
msgstr ""
-#: diskdrake/interactive.pm:1453
+#: diskdrake/interactive.pm:1458
#, c-format
msgid "Read-only"
msgstr "읽기 전용"
-#: diskdrake/interactive.pm:1454
+#: diskdrake/interactive.pm:1459
#, c-format
msgid "Size: %s\n"
msgstr "크기: %s\n"
-#: diskdrake/interactive.pm:1455
+#: diskdrake/interactive.pm:1460
#, c-format
msgid "Geometry: %s cylinders, %s heads, %s sectors\n"
msgstr "위치: %s 실린터, %s 헤드, %s 섹터\n"
-#: diskdrake/interactive.pm:1456
+#: diskdrake/interactive.pm:1461
#, c-format
msgid "Name: "
msgstr "이름:"
-#: diskdrake/interactive.pm:1457
+#: diskdrake/interactive.pm:1462
#, c-format
msgid "Medium type: "
msgstr ""
-#: diskdrake/interactive.pm:1458
+#: diskdrake/interactive.pm:1463
#, c-format
msgid "LVM-disks %s\n"
msgstr "LVM-디스크 %s\n"
-#: diskdrake/interactive.pm:1459
+#: diskdrake/interactive.pm:1464
#, c-format
msgid "Partition table type: %s\n"
msgstr "파티션 테이블 유형: %s\n"
-#: diskdrake/interactive.pm:1460
+#: diskdrake/interactive.pm:1465
#, c-format
msgid "on channel %d id %d\n"
msgstr ""
-#: diskdrake/interactive.pm:1504
+#: diskdrake/interactive.pm:1509
#, c-format
msgid "Choose your filesystem encryption key"
msgstr "파일 시스템 암호화 키 선택"
-#: diskdrake/interactive.pm:1507
+#: diskdrake/interactive.pm:1512
#, c-format
msgid "This encryption key is too simple (must be at least %d characters long)"
msgstr "이 암호화 키는 너무 단순합니다.( 적어도 %d 글자는 넘어야 합니다)"
-#: diskdrake/interactive.pm:1514
+#: diskdrake/interactive.pm:1519
#, c-format
msgid "Encryption algorithm"
msgstr ""
@@ -2183,9 +2190,9 @@ msgstr "유형 변경"
#: diskdrake/smbnfs_gtk.pm:81 interactive.pm:120 interactive.pm:675
#: interactive/curses.pm:267 interactive/http.pm:104 interactive/http.pm:160
#: interactive/stdio.pm:39 interactive/stdio.pm:148 mygtk2.pm:846
-#: mygtk2.pm:1229 mygtk3.pm:927 mygtk3.pm:1311 ugtk2.pm:415 ugtk2.pm:517
-#: ugtk2.pm:526 ugtk2.pm:810 ugtk3.pm:503 ugtk3.pm:593 ugtk3.pm:602
-#: ugtk3.pm:908
+#: mygtk2.pm:1229 mygtk3.pm:928 mygtk3.pm:1312 ugtk2.pm:415 ugtk2.pm:517
+#: ugtk2.pm:526 ugtk2.pm:810 ugtk3.pm:501 ugtk3.pm:591 ugtk3.pm:600
+#: ugtk3.pm:906
#, c-format
msgid "Cancel"
msgstr "취소"
@@ -2277,12 +2284,12 @@ msgstr ""
"오류 발생 - 새로운 파일 시스템을 만들 어떤 올바른 장치도 찾을 수 없습니다.\n"
"이 문제를 해결하시려면, 하드웨어를 점검해 보시기 바랍니다."
-#: fs/any.pm:75 fs/partitioning_wizard.pm:77
+#: fs/any.pm:77 fs/partitioning_wizard.pm:77
#, c-format
msgid "You must have a ESP FAT32 partition mounted in /boot/EFI"
msgstr "「/boot/EFI」에 마운트된 ESP FAT32 파티션이 있어야만 합니다."
-#: fs/any.pm:79 fs/partitioning_wizard.pm:82
+#: fs/any.pm:81 fs/partitioning_wizard.pm:82
#, c-format
msgid ""
"You must have a BIOS boot partition for non-UEFI GPT-partitioned disks. "
@@ -2573,7 +2580,7 @@ msgstr ""
#. -PO: keep the double empty lines between sections, this is formatted a la LaTeX
#: fs/partitioning_wizard.pm:217 fs/partitioning_wizard.pm:594
-#: interactive.pm:674 interactive/curses.pm:270 ugtk2.pm:519 ugtk3.pm:595
+#: interactive.pm:674 interactive/curses.pm:270 ugtk2.pm:519 ugtk3.pm:593
#, c-format
msgid "Next"
msgstr "다음"
@@ -2674,17 +2681,17 @@ msgstr ""
msgid "Partitioning failed: %s"
msgstr "파티션 나누기 실패: %s"
-#: fs/type.pm:376
+#: fs/type.pm:382
#, c-format
msgid "You cannot use JFS for partitions smaller than 16MB"
msgstr "16MB 미만의 파티션에는 JFS 파일 시스템을 사용할 수 없습니다."
-#: fs/type.pm:377
+#: fs/type.pm:383
#, c-format
msgid "You cannot use ReiserFS for partitions smaller than 32MB"
msgstr "32MB 미만의 파티션에는 ReiserFS 파일 시스템을 사용할 수 없습니다."
-#: fs/type.pm:378
+#: fs/type.pm:384
#, c-format
msgid "You cannot use btrfs for partitions smaller than 256MB"
msgstr ""
@@ -3172,19 +3179,19 @@ msgstr "튜너 유형:"
#: interactive.pm:119 interactive.pm:674 interactive/curses.pm:270
#: interactive/http.pm:103 interactive/http.pm:156 interactive/stdio.pm:39
#: interactive/stdio.pm:148 interactive/stdio.pm:149 mygtk2.pm:846
-#: mygtk3.pm:927 ugtk2.pm:421 ugtk2.pm:519 ugtk2.pm:810 ugtk2.pm:833
-#: ugtk3.pm:509 ugtk3.pm:595 ugtk3.pm:908 ugtk3.pm:931
+#: mygtk3.pm:928 ugtk2.pm:421 ugtk2.pm:519 ugtk2.pm:810 ugtk2.pm:833
+#: ugtk3.pm:507 ugtk3.pm:593 ugtk3.pm:906 ugtk3.pm:929
#, c-format
msgid "Ok"
msgstr "확인"
-#: interactive.pm:219 modules/interactive.pm:72 ugtk2.pm:809 ugtk3.pm:907
+#: interactive.pm:219 modules/interactive.pm:72 ugtk2.pm:809 ugtk3.pm:905
#: wizards.pm:156
#, c-format
msgid "Yes"
msgstr "예"
-#: interactive.pm:219 modules/interactive.pm:72 ugtk2.pm:809 ugtk3.pm:907
+#: interactive.pm:219 modules/interactive.pm:72 ugtk2.pm:809 ugtk3.pm:905
#: wizards.pm:156
#, c-format
msgid "No"
@@ -3205,32 +3212,32 @@ msgstr "추가"
msgid "Modify"
msgstr "변경"
-#: interactive.pm:674 interactive/curses.pm:270 ugtk2.pm:519 ugtk3.pm:595
+#: interactive.pm:674 interactive/curses.pm:270 ugtk2.pm:519 ugtk3.pm:593
#, c-format
msgid "Finish"
msgstr "종료"
-#: interactive.pm:675 interactive/curses.pm:267 ugtk2.pm:517 ugtk3.pm:593
+#: interactive.pm:675 interactive/curses.pm:267 ugtk2.pm:517 ugtk3.pm:591
#, c-format
msgid "Previous"
msgstr "이전"
-#: interactive/curses.pm:576 ugtk2.pm:870 ugtk3.pm:968
+#: interactive/curses.pm:576 ugtk2.pm:870 ugtk3.pm:966
#, c-format
msgid "No file chosen"
msgstr ""
-#: interactive/curses.pm:580 ugtk2.pm:874 ugtk3.pm:972
+#: interactive/curses.pm:580 ugtk2.pm:874 ugtk3.pm:970
#, c-format
msgid "You have chosen a directory, not a file"
msgstr ""
-#: interactive/curses.pm:582 ugtk2.pm:876 ugtk3.pm:974
+#: interactive/curses.pm:582 ugtk2.pm:876 ugtk3.pm:972
#, c-format
msgid "No such directory"
msgstr ""
-#: interactive/curses.pm:582 ugtk2.pm:876 ugtk3.pm:974
+#: interactive/curses.pm:582 ugtk2.pm:876 ugtk3.pm:972
#, c-format
msgid "No such file"
msgstr ""
@@ -4861,22 +4868,22 @@ msgstr ""
"%s 모듈을 읽어들이는데 실패했습니다.\n"
"다른 값으로 다시 시도해 보시겠습니까?"
-#: mygtk2.pm:1229 mygtk3.pm:1311
+#: mygtk2.pm:1229 mygtk3.pm:1312
#, c-format
msgid "Are you sure you want to quit?"
msgstr ""
-#: mygtk2.pm:1570 mygtk2.pm:1571 mygtk3.pm:1678 mygtk3.pm:1679
+#: mygtk2.pm:1570 mygtk2.pm:1571 mygtk3.pm:1646 mygtk3.pm:1647
#, c-format
msgid "Password is trivial to guess"
msgstr ""
-#: mygtk2.pm:1572 mygtk3.pm:1680
+#: mygtk2.pm:1572 mygtk3.pm:1648
#, c-format
msgid "Password should be resistant to basic attacks"
msgstr ""
-#: mygtk2.pm:1573 mygtk2.pm:1574 mygtk3.pm:1681 mygtk3.pm:1682
+#: mygtk2.pm:1573 mygtk2.pm:1574 mygtk3.pm:1649 mygtk3.pm:1650
#, c-format
msgid "Password seems secure"
msgstr ""
@@ -6454,17 +6461,17 @@ msgstr "러시아"
msgid "Yugoslavia"
msgstr "유고슬라비아"
-#: ugtk2.pm:810 ugtk3.pm:908
+#: ugtk2.pm:810 ugtk3.pm:906
#, c-format
msgid "Is this correct?"
msgstr "이것이 맞습니까?"
-#: ugtk2.pm:872 ugtk3.pm:970
+#: ugtk2.pm:872 ugtk3.pm:968
#, c-format
msgid "You have chosen a file, not a directory"
msgstr ""
-#: ugtk2.pm:922 ugtk3.pm:1020
+#: ugtk2.pm:922 ugtk3.pm:1018
#, c-format
msgid "Info"
msgstr "정보"
opt">, ' 2 ', 'utf_mymr', 'my_MM:my' ], 'nb' => [ 'Norwegian Bokmaal', 'Norsk, Bokmal', 'nb_NO', '1 ', 'iso-8859-15', 'nb:no' ], 'nds' => [ 'Low Saxon', 'Platduutsch', 'nds_DE', '1 ', 'utf_lat1', 'nds_DE:nds' ], 'ne' => [ 'Nepali', 'ZZ Nepali', 'ne_NP', ' 2 ', 'utf_deva' ], 'nl' => [ 'Dutch', 'Nederlands', 'nl_NL', '1 ', 'iso-8859-15' ], 'nn' => [ 'Norwegian Nynorsk', 'Norsk, Nynorsk', 'nn_NO', '1 ', 'iso-8859-15', 'nn:no@nynorsk:no_NY:no:nb' ], 'nr' => [ 'Ndebele', 'Ndebele', 'nr_ZA', ' 3 ', 'utf_lat1', 'nr:en_ZA' ], 'nso' => [ 'Northern Sotho', 'Sesotho sa Leboa', 'nso_ZA', ' 3 ', 'utf_lat1', 'st:nso:en_ZA' ], 'oc' => [ 'Occitan', 'Occitan', 'oc_FR', '1 ', 'utf_lat1', 'oc:fr_FR:fr' ], 'pa_IN' => [ 'Punjabi (gurmukhi)', 'ZZ Punjabi', 'pa_IN', ' 2 ', 'utf_guru' ], 'pl' => [ 'Polish', 'Polski', 'pl_PL', '1 ', 'iso-8859-2' ], 'pt' => [ 'Portuguese', 'Portugues', 'pt_PT', '1 3 ', 'iso-8859-15', 'pt_PT:pt:pt_BR' ], 'pt_BR' => [ 'Portuguese Brazil', 'Portugues do Brasil', 'pt_BR', ' 5', 'iso-8859-1', 'pt_BR:pt_PT:pt' ], #- qu_PE not yet done, using es_PE locale instead 'qu' => [ 'Quichua', 'Runa Simi', 'es_PE', ' 5', 'utf_lat1', 'qu:es_PE:es' ], 'ro' => [ 'Romanian', 'Romana', 'ro_RO', '1 ', 'iso-8859-2' ], 'ru' => [ 'Russian', 'Russkij', 'ru_RU', '12 ', 'koi8-u' ], 'rw' => [ 'Kinyarwanda', 'Kinyarwanda', 'rw_RW', ' 3 ', 'utf_lat1', 'rw' ], 'sc' => [ 'Sardinian', 'Sardu', 'sc_IT', '1 ', 'utf_lat1', 'sc:it_IT:it' ], 'se' => [ 'Saami', 'Samegiella', 'se_NO', '1 ', 'unicode' ], 'sk' => [ 'Slovak', 'Slovencina', 'sk_SK', '1 ', 'iso-8859-2' ], 'sl' => [ 'Slovenian', 'Slovenscina', 'sl_SI', '1 ', 'iso-8859-2' ], 'so' => [ 'Somali', 'Soomaali', 'so_SO', ' 3 ', 'utf_lat1' ], 'sq' => [ 'Albanian', 'Shqip', 'sq_AL', '1 ', 'iso-8859-1' ], 'sr' => [ 'Serbian Cyrillic', 'Srpska', 'sr_CS', '1 ', 'utf_cyr1', 'sp:sr' ], #- "sh" comes first, because otherwise, due to the way glibc does language #- fallback, if "sr@Latn" is not there but a "sr" (whichs uses cyrillic) #- is there, "sh" will never be used. 'sr@Latn' => [ 'Serbian Latin', 'Srpska', 'sr_CS', '1 ', 'unicode', 'sh:sr@Latn' ], 'ss' => [ 'Swati', 'SiSwati', 'ss_ZA', ' 3 ', 'utf_lat1', 'ss:en_ZA' ], 'st' => [ 'Sotho', 'Sesotho', 'st_ZA', ' 3 ', 'utf_lat1', 'st:nso:en_ZA' ], 'sv' => [ 'Swedish', 'Svenska', 'sv_SE', '1 ', 'iso-8859-15' ], 'ta' => [ 'Tamil', 'ZZ Tamil', 'ta_IN', ' 2 ', 'utf_taml' ], 'te' => [ 'Telugu', 'ZZ Telugu', 'te_IN', ' 2 ', 'unicode' ], 'tg' => [ 'Tajik', 'Tojiki', 'tg_TJ', ' 2 ', 'utf_cyr2' ], 'th' => [ 'Thai', 'ZZ Thai', 'th_TH', ' 2 ', 'tis620' ], 'tk' => [ 'Turkmen', 'Turkmence', 'tk_TM', ' 2 ', 'utf_az' ], 'tn' => [ 'Tswana', 'Setswana', 'tn_ZA', ' 3 ', 'utf_lat1', 'tn:en_ZA' ], 'tr' => [ 'Turkish', 'Turkce', 'tr_TR', '12 ', 'iso-8859-9' ], 'ts' => [ 'Tsonga', 'Xitsonga', 'ts_ZA', ' 3 ', 'utf_lat1', 'ts:en_ZA' ], 'tt' => [ 'Tatar', 'Tatarca', 'tt_RU', ' 2 ', 'utf_lat5' ], 'ug' => [ 'Uyghur', 'AA Uyghur', 'ug_CN', ' 2 ', 'utf_ar', 'ug' ], 'uk' => [ 'Ukrainian', 'Ukrayinska', 'uk_UA', '1 ', 'koi8-u' ], 'ur' => [ 'Urdu', 'AA Urdu', 'ur_PK', ' 2 ', 'utf_ar' ], 'uz' => [ 'Uzbek', 'Ozbekcha', 'uz_UZ', ' 2 ', 'utf_cyr2', 'uz' ], 'uz@cyrillic' => [ 'Uzbek (cyrillic)', 'Ozbekcha', 'uz_UZ@cyrillic', ' 2 ', 'utf_cyr2', 'uz@cyrillic' ], 've' => [ 'Venda', 'Tshivenda', 've_ZA', ' 3 ', 'utf_lat1', 've:ven:en_ZA' ], 'vi' => [ 'Vietnamese', 'Tieng Viet', 'vi_VN', ' 2 ', 'utf_vi' ], 'wa' => [ 'Walon', 'Walon', 'wa_BE', '1 ', 'utf_lat1', 'wa:fr_BE:fr' ], #- locale "wen_DE" not done yet, using "de_DE" instead #- wen disabled until we have a perl-install/pixmaps/langs/lang-wen.png for it #'wen' => [ 'Sorbian', 'Sorbian', 'de_DE', '1 ', 'utf_lat1', 'wen' ], 'xh' => [ 'Xhosa', 'Xhosa', 'xh_ZA', ' 3 ', 'utf_lat1', 'xh:en_ZA' ], 'yi' => [ 'Yiddish', 'AA Yidish', 'yi_US', '1 ', 'utf_he' ], 'yo' => [ 'Yoruba', 'Yoruba', 'yo_NG', ' 3 ', 'utf_yo', 'yo:en_NG' ], 'zh_CN' => [ 'Chinese Simplified', 'ZZ ZhongWen', 'zh_CN', ' 2 ', 'gb2312', 'zh_CN.GBK:zh_CN.GB2312:zh_CN:zh' ], 'zh_TW' => [ 'Chinese Traditional', 'ZZ ZhongWen', 'zh_TW', ' 2 ', 'Big5', 'zh_TW.Big5:zh_TW:zh_HK:zh' ], 'zu' => [ 'Zulu', 'Zulu', 'zu_ZA', ' 3 ', 'utf_lat1', 'xh:en_ZA' ], ); sub l2name { exists $langs{$_[0]} && $langs{$_[0]}[0] } sub l2transliterated { exists $langs{$_[0]} && $langs{$_[0]}[1] } sub l2locale { exists $langs{$_[0]} && $langs{$_[0]}[2] } sub l2location { my ($lang) = @_; my %geo = (1 => 'Europe', 2 => 'Asia', 3 => 'Africa', 4 => 'Oceania/Pacific', 5 => 'America'); map { $geo{$_} } grep { $langs{$lang} && $langs{$lang}[3] =~ $_ } 1..5; } sub l2charset { exists $langs{$_[0]} && $langs{$_[0]}[4] } sub l2language { exists $langs{$_[0]} && $langs{$_[0]}[5] } sub list_langs { my (%options) = @_; my @l = keys %langs; $options{exclude_non_installed} ? grep { -e "/usr/share/locale/" . l2locale($_) . "/LC_CTYPE" } @l : @l; } sub text_direction_rtl() { #-PO: the string "default:LTR" can be translated *ONLY* as "default:LTR" #-PO: or as "default:RTL", depending if your language is written from #-PO: left to right, or from right to left; any other string is wrong. N("default:LTR") eq "default:RTL"; } #- key: country name (that should be YY in xx_YY locale) #- [0]: country name in natural language #- [1]: default locale for that country #- [2]: geographic groups that this country belongs to (for displaying #- in the menu grouped in smaller lists), 1=Europe, 2=Asia, 3=Africa, #- 4=Oceania&Pacific, 5=America (if you wonder, it's the order #- used in the olympic flag) #- #- Note: for countries for which a glibc locale do not exist (yet) I tried to #- put a locale that makes sense; and a '#' at the end of the line to show #- the locale is not the "correct" one. 'en_US' is used when no good choice #- is available. my %countries = ( 'AD' => [ N_("Andorra"), 'ca_AD', '1' ], 'AE' => [ N_("United Arab Emirates"), 'ar_AE', '2' ], 'AF' => [ N_("Afghanistan"), 'en_US', '2' ], # 'AG' => [ N_("Antigua and Barbuda"), 'en_US', '5' ], # 'AI' => [ N_("Anguilla"), 'en_US', '5' ], # 'AL' => [ N_("Albania"), 'sq_AL', '1' ], 'AM' => [ N_("Armenia"), 'hy_AM', '2' ], 'AN' => [ N_("Netherlands Antilles"), 'en_US', '5' ], # 'AO' => [ N_("Angola"), 'pt_PT', '3' ], # 'AQ' => [ N_("Antarctica"), 'en_US', '4' ], # 'AR' => [ N_("Argentina"), 'es_AR', '5' ], 'AS' => [ N_("American Samoa"), 'en_US', '4' ], # 'AT' => [ N_("Austria"), 'de_AT', '1' ], 'AU' => [ N_("Australia"), 'en_AU', '4' ], 'AW' => [ N_("Aruba"), 'en_US', '5' ], # 'AZ' => [ N_("Azerbaijan"), 'az_AZ', '1' ], 'BA' => [ N_("Bosnia and Herzegovina"), 'bs_BA', '1' ], 'BB' => [ N_("Barbados"), 'en_US', '5' ], # 'BD' => [ N_("Bangladesh"), 'bn_BD', '2' ], 'BE' => [ N_("Belgium"), 'fr_BE', '1' ], 'BF' => [ N_("Burkina Faso"), 'en_US', '3' ], # 'BG' => [ N_("Bulgaria"), 'bg_BG', '1' ], 'BH' => [ N_("Bahrain"), 'ar_BH', '2' ], 'BI' => [ N_("Burundi"), 'en_US', '3' ], # 'BJ' => [ N_("Benin"), 'fr_FR', '3' ], # 'BM' => [ N_("Bermuda"), 'en_US', '5' ], # 'BN' => [ N_("Brunei Darussalam"), 'ar_EG', '2' ], # 'BO' => [ N_("Bolivia"), 'es_BO', '5' ], 'BR' => [ N_("Brazil"), 'pt_BR', '5' ], 'BS' => [ N_("Bahamas"), 'en_US', '5' ], # 'BT' => [ N_("Bhutan"), 'dz_BT', '2' ], 'BV' => [ N_("Bouvet Island"), 'en_US', '3' ], # 'BW' => [ N_("Botswana"), 'en_BW', '3' ], 'BY' => [ N_("Belarus"), 'be_BY', '1' ], 'BZ' => [ N_("Belize"), 'en_US', '5' ], # 'CA' => [ N_("Canada"), 'en_CA', '5' ], 'CC' => [ N_("Cocos (Keeling) Islands"), 'en_US', '4' ], # 'CD' => [ N_("Congo (Kinshasa)"), 'fr_FR', '3' ], # 'CF' => [ N_("Central African Republic"), 'fr_FR', '3' ], # 'CG' => [ N_("Congo (Brazzaville)"), 'fr_FR', '3' ], # 'CH' => [ N_("Switzerland"), 'de_CH', '1' ], 'CI' => [ N_("Cote d'Ivoire"), 'fr_FR', '3' ], # 'CK' => [ N_("Cook Islands"), 'en_US', '4' ], # 'CL' => [ N_("Chile"), 'es_CL', '5' ], 'CM' => [ N_("Cameroon"), 'fr_FR', '3' ], # 'CN' => [ N_("China"), 'zh_CN', '2' ], 'CO' => [ N_("Colombia"), 'es_CO', '5' ], 'CR' => [ N_("Costa Rica"), 'es_CR', '5' ], 'CS' => [ N_("Serbia & Montenegro"), 'sr_CS', '1' ], 'CU' => [ N_("Cuba"), 'es_DO', '5' ], # 'CV' => [ N_("Cape Verde"), 'pt_PT', '3' ], # 'CX' => [ N_("Christmas Island"), 'en_US', '4' ], # 'CY' => [ N_("Cyprus"), 'el_CY', '1' ], 'CZ' => [ N_("Czech Republic"), 'cs_CZ', '2' ], 'DE' => [ N_("Germany"), 'de_DE', '1' ], 'DJ' => [ N_("Djibouti"), 'en_US', '3' ], # 'DK' => [ N_("Denmark"), 'da_DK', '1' ], 'DM' => [ N_("Dominica"), 'en_US', '5' ], # 'DO' => [ N_("Dominican Republic"), 'es_DO', '5' ], 'DZ' => [ N_("Algeria"), 'ar_DZ', '3' ], 'EC' => [ N_("Ecuador"), 'es_EC', '5' ], 'EE' => [ N_("Estonia"), 'et_EE', '1' ], 'EG' => [ N_("Egypt"), 'ar_EG', '3' ], 'EH' => [ N_("Western Sahara"), 'ar_MA', '3' ], # 'ER' => [ N_("Eritrea"), 'ti_ER', '3' ], 'ES' => [ N_("Spain"), 'es_ES', '1' ], 'ET' => [ N_("Ethiopia"), 'am_ET', '3' ], 'FI' => [ N_("Finland"), 'fi_FI', '1' ], 'FJ' => [ N_("Fiji"), 'en_US', '4' ], # 'FK' => [ N_("Falkland Islands (Malvinas)"), 'en_GB', '5' ], # 'FM' => [ N_("Micronesia"), 'en_US', '4' ], # 'FO' => [ N_("Faroe Islands"), 'fo_FO', '1' ], 'FR' => [ N_("France"), 'fr_FR', '1' ], 'GA' => [ N_("Gabon"), 'fr_FR', '3' ], # 'GB' => [ N_("United Kingdom"), 'en_GB', '1' ], 'GD' => [ N_("Grenada"), 'en_US', '5' ], # 'GE' => [ N_("Georgia"), 'ka_GE', '2' ], 'GF' => [ N_("French Guiana"), 'fr_FR', '5' ], # 'GH' => [ N_("Ghana"), 'en_GB', '3' ], # 'GI' => [ N_("Gibraltar"), 'en_GB', '1' ], # 'GL' => [ N_("Greenland"), 'kl_GL', '5' ], 'GM' => [ N_("Gambia"), 'en_US', '3' ], # 'GN' => [ N_("Guinea"), 'en_US', '3' ], # 'GP' => [ N_("Guadeloupe"), 'fr_FR', '5' ], # 'GQ' => [ N_("Equatorial Guinea"), 'en_US', '3' ], # 'GR' => [ N_("Greece"), 'el_GR', '1' ], 'GS' => [ N_("South Georgia and the South Sandwich Islands"), 'en_US', '4' ], # 'GT' => [ N_("Guatemala"), 'es_GT', '5' ], 'GU' => [ N_("Guam"), 'en_US', '4' ], # 'GW' => [ N_("Guinea-Bissau"), 'pt_PT', '3' ], # 'GY' => [ N_("Guyana"), 'en_US', '5' ], # 'HK' => [ N_("Hong Kong SAR (China)"), 'zh_HK', '2' ], 'HM' => [ N_("Heard and McDonald Islands"), 'en_US', '4' ], # 'HN' => [ N_("Honduras"), 'es_HN', '5' ], 'HR' => [ N_("Croatia"), 'hr_HR', '1' ], 'HT' => [ N_("Haiti"), 'fr_FR', '5' ], # 'HU' => [ N_("Hungary"), 'hu_HU', '1' ], 'ID' => [ N_("Indonesia"), 'id_ID', '2' ], 'IE' => [ N_("Ireland"), 'en_IE', '1' ], 'IL' => [ N_("Israel"), 'he_IL', '2' ], 'IN' => [ N_("India"), 'hi_IN', '2' ], 'IO' => [ N_("British Indian Ocean Territory"), 'en_GB', '2' ], # 'IQ' => [ N_("Iraq"), 'ar_IQ', '2' ], 'IR' => [ N_("Iran"), 'fa_IR', '2' ], 'IS' => [ N_("Iceland"), 'is_IS', '1' ], 'IT' => [ N_("Italy"), 'it_IT', '1' ], 'JM' => [ N_("Jamaica"), 'en_US', '5' ], # 'JO' => [ N_("Jordan"), 'ar_JO', '2' ], 'JP' => [ N_("Japan"), 'ja_JP', '2' ], 'KE' => [ N_("Kenya"), 'en_ZW', '3' ], # 'KG' => [ N_("Kyrgyzstan"), 'ky_KG', '2' ], 'KH' => [ N_("Cambodia"), 'km_KH', '2' ], 'KI' => [ N_("Kiribati"), 'en_US', '3' ], # 'KM' => [ N_("Comoros"), 'en_US', '2' ], # 'KN' => [ N_("Saint Kitts and Nevis"), 'en_US', '5' ], # 'KP' => [ N_("Korea (North)"), 'ko_KR', '2' ], # 'KR' => [ N_("Korea"), 'ko_KR', '2' ], 'KW' => [ N_("Kuwait"), 'ar_KW', '2' ], 'KY' => [ N_("Cayman Islands"), 'en_US', '5' ], # 'KZ' => [ N_("Kazakhstan"), 'kk_KZ', '2' ], 'LA' => [ N_("Laos"), 'lo_LA', '2' ], 'LB' => [ N_("Lebanon"), 'ar_LB', '2' ], 'LC' => [ N_("Saint Lucia"), 'en_US', '5' ], # 'LI' => [ N_("Liechtenstein"), 'de_CH', '1' ], # 'LK' => [ N_("Sri Lanka"), 'si_LK', '2' ], 'LR' => [ N_("Liberia"), 'en_US', '3' ], # 'LS' => [ N_("Lesotho"), 'en_BW', '3' ], # 'LT' => [ N_("Lithuania"), 'lt_LT', '1' ], 'LU' => [ N_("Luxembourg"), 'de_LU', '1' ], # lb_LU 'LV' => [ N_("Latvia"), 'lv_LV', '1' ], 'LY' => [ N_("Libya"), 'ar_LY', '3' ], 'MA' => [ N_("Morocco"), 'ar_MA', '3' ], 'MC' => [ N_("Monaco"), 'fr_FR', '1' ], # 'MD' => [ N_("Moldova"), 'ro_RO', '1' ], # 'MG' => [ N_("Madagascar"), 'mg_MG', '3' ], 'MH' => [ N_("Marshall Islands"), 'en_US', '4' ], # 'MK' => [ N_("Macedonia"), 'mk_MK', '1' ], 'ML' => [ N_("Mali"), 'en_US', '3' ], # 'MM' => [ N_("Myanmar"), 'en_US', '2' ], # my_MM 'MN' => [ N_("Mongolia"), 'mn_MN', '2' ], 'MP' => [ N_("Northern Mariana Islands"), 'en_US', '2' ], # 'MQ' => [ N_("Martinique"), 'fr_FR', '5' ], # 'MR' => [ N_("Mauritania"), 'en_US', '3' ], # 'MS' => [ N_("Montserrat"), 'en_US', '5' ], # 'MT' => [ N_("Malta"), 'mt_MT', '1' ], 'MU' => [ N_("Mauritius"), 'en_US', '3' ], # 'MV' => [ N_("Maldives"), 'en_US', '4' ], # 'MW' => [ N_("Malawi"), 'en_US', '3' ], # 'MX' => [ N_("Mexico"), 'es_MX', '5' ], 'MY' => [ N_("Malaysia"), 'ms_MY', '2' ], 'MZ' => [ N_("Mozambique"), 'pt_PT', '3' ], # 'NA' => [ N_("Namibia"), 'en_US', '3' ], # 'NC' => [ N_("New Caledonia"), 'fr_FR', '4' ], # 'NE' => [ N_("Niger"), 'en_US', '3' ], # 'NF' => [ N_("Norfolk Island"), 'en_GB', '4' ], # 'NG' => [ N_("Nigeria"), 'en_NG', '3' ], 'NI' => [ N_("Nicaragua"), 'es_NI', '5' ], 'NL' => [ N_("Netherlands"), 'nl_NL', '1' ], 'NO' => [ N_("Norway"), 'nb_NO', '1' ], 'NP' => [ N_("Nepal"), 'ne_NP', '2' ], 'NR' => [ N_("Nauru"), 'en_US', '4' ], # 'NU' => [ N_("Niue"), 'en_US', '4' ], # 'NZ' => [ N_("New Zealand"), 'en_NZ', '4' ], 'OM' => [ N_("Oman"), 'ar_OM', '2' ], 'PA' => [ N_("Panama"), 'es_PA', '5' ], 'PE' => [ N_("Peru"), 'es_PE', '5' ], 'PF' => [ N_("French Polynesia"), 'fr_FR', '4' ], # 'PG' => [ N_("Papua New Guinea"), 'en_NZ', '4' ], # 'PH' => [ N_("Philippines"), 'fil_PH', '2' ], 'PK' => [ N_("Pakistan"), 'ur_PK', '2' ], 'PL' => [ N_("Poland"), 'pl_PL', '1' ], 'PM' => [ N_("Saint Pierre and Miquelon"), 'fr_CA', '5' ], # 'PN' => [ N_("Pitcairn"), 'en_US', '4' ], # 'PR' => [ N_("Puerto Rico"), 'es_PR', '5' ], 'PS' => [ N_("Palestine"), 'ar_JO', '2' ], # 'PT' => [ N_("Portugal"), 'pt_PT', '1' ], 'PY' => [ N_("Paraguay"), 'es_PY', '5' ], 'PW' => [ N_("Palau"), 'en_US', '2' ], # 'QA' => [ N_("Qatar"), 'ar_QA', '2' ], 'RE' => [ N_("Reunion"), 'fr_FR', '2' ], # 'RO' => [ N_("Romania"), 'ro_RO', '1' ], 'RU' => [ N_("Russia"), 'ru_RU', '1' ], 'RW' => [ N_("Rwanda"), 'rw_RW', '3' ], 'SA' => [ N_("Saudi Arabia"), 'ar_SA', '2' ], 'SB' => [ N_("Solomon Islands"), 'en_US', '4' ], # 'SC' => [ N_("Seychelles"), 'en_US', '4' ], # 'SD' => [ N_("Sudan"), 'ar_SD', '5' ], 'SE' => [ N_("Sweden"), 'sv_SE', '1' ], 'SG' => [ N_("Singapore"), 'en_SG', '2' ], 'SH' => [ N_("Saint Helena"), 'en_GB', '5' ], # 'SI' => [ N_("Slovenia"), 'sl_SI', '1' ], 'SJ' => [ N_("Svalbard and Jan Mayen Islands"), 'en_US', '1' ], # 'SK' => [ N_("Slovakia"), 'sk_SK', '1' ], 'SL' => [ N_("Sierra Leone"), 'en_US', '3' ], # 'SM' => [ N_("San Marino"), 'it_IT', '1' ], # 'SN' => [ N_("Senegal"), 'fr_FR', '3' ], # 'SO' => [ N_("Somalia"), 'so_SO', '3' ], 'SR' => [ N_("Suriname"), 'nl_NL', '5' ], # 'ST' => [ N_("Sao Tome and Principe"), 'en_US', '5' ], # 'SV' => [ N_("El Salvador"), 'es_SV', '5' ], 'SY' => [ N_("Syria"), 'ar_SY', '2' ], 'SZ' => [ N_("Swaziland"), 'en_BW', '3' ], # 'TC' => [ N_("Turks and Caicos Islands"), 'en_US', '5' ], # 'TD' => [ N_("Chad"), 'en_US', '3' ], # 'TF' => [ N_("French Southern Territories"), 'fr_FR', '4' ], # 'TG' => [ N_("Togo"), 'fr_FR', '3' ], # 'TH' => [ N_("Thailand"), 'th_TH', '2' ], 'TJ' => [ N_("Tajikistan"), 'tg_TJ', '2' ], 'TK' => [ N_("Tokelau"), 'en_US', '4' ], # 'TL' => [ N_("East Timor"), 'pt_PT', '4' ], # 'TM' => [ N_("Turkmenistan"), 'tk_TM', '2' ], 'TN' => [ N_("Tunisia"), 'ar_TN', '5' ], 'TO' => [ N_("Tonga"), 'en_US', '3' ], # 'TR' => [ N_("Turkey"), 'tr_TR', '2' ], 'TT' => [ N_("Trinidad and Tobago"), 'en_US', '5' ], # 'TV' => [ N_("Tuvalu"), 'en_US', '4' ], # 'TW' => [ N_("Taiwan"), 'zh_TW', '2' ], 'TZ' => [ N_("Tanzania"), 'en_US', '3' ], # 'UA' => [ N_("Ukraine"), 'uk_UA', '1' ], 'UG' => [ N_("Uganda"), 'lg_UG', '3' ], 'UM' => [ N_("United States Minor Outlying Islands"), 'en_US', '5' ], # 'US' => [ N_("United States"), 'en_US', '5' ], 'UY' => [ N_("Uruguay"), 'es_UY', '5' ], 'UZ' => [ N_("Uzbekistan"), 'uz_UZ', '2' ], 'VA' => [ N_("Vatican"), 'it_IT', '1' ], # 'VC' => [ N_("Saint Vincent and the Grenadines"), 'en_US', '5' ], 'VE' => [ N_("Venezuela"), 'es_VE', '5' ], 'VG' => [ N_("Virgin Islands (British)"), 'en_GB', '5' ], # 'VI' => [ N_("Virgin Islands (U.S.)"), 'en_US', '5' ], # 'VN' => [ N_("Vietnam"), 'vi_VN', '2' ], 'VU' => [ N_("Vanuatu"), 'en_US', '4' ], # 'WF' => [ N_("Wallis and Futuna"), 'fr_FR', '4' ], # 'WS' => [ N_("Samoa"), 'en_US', '4' ], # 'YE' => [ N_("Yemen"), 'ar_YE', '2' ], 'YT' => [ N_("Mayotte"), 'fr_FR', '3' ], # 'ZA' => [ N_("South Africa"), 'en_ZA', '5' ], 'ZM' => [ N_("Zambia"), 'en_US', '3' ], # 'ZW' => [ N_("Zimbabwe"), 'en_ZW', '5' ], ); sub c2name { exists $countries{$_[0]} && translate($countries{$_[0]}[0]) } sub c2locale { exists $countries{$_[0]} && $countries{$_[0]}[1] } sub list_countries { my (%_options) = @_; keys %countries; } #- this list is built with the following command on the compile cluster: #- rpm -qpl /cooker/RPMS/release/locales-* | grep LC_CTYPE | grep '\.UTF-8' | cut -d'/' -f5 | sed 's/.UTF-8//' | sort | tr '\n' ' ' ; echo our @locales = qw(aa_DJ aa_ER aa_ER@saaho aa_ET af_ZA am_ET an_ES ar_AE ar_BH ar_DZ ar_EG ar_IN ar_IQ ar_JO ar_KW ar_LB ar_LY ar_MA ar_OM ar_QA ar_SA ar_SD ar_SY ar_TN ar_YE as_IN az_AZ be_BY ber_DZ ber_MA bg_BG bn_BD bn_IN br_FR bs_BA byn_ER ca_AD ca_ES ca_FR ca_IT cs_CZ cy_GB da_DK de_AT de_BE de_CH de_DE de_LU dz_BT el_CY el_GR en_AU en_BE en_BW en_CA en_DK en_GB en_HK en_IE en_IN en_NG en_NZ en_PH en_SG en_US en_ZA en_ZW eo_XX es_AR es_BO es_CL es_CO es_CR es_DO es_EC es_ES es_GT es_HN es_MX es_NI es_PA es_PE es_PR es_PY es_SV es_US es_UY es_VE et_EE eu_ES fa_IR fi_FI fil_PH fo_FO fr_BE fr_CA fr_CH fr_FR fr_LU fur_IT fy_DE fy_NL ga_IE gd_GB gez_ER gez_ER@abegede gez_ET gez_ET@abegede gl_ES gu_IN gv_GB ha_NG he_IL hi_IN hr_HR hsb_DE hu_HU hy_AM id_ID ig_NG ik_CA is_IS it_CH it_IT iu_CA ja_JP ka_GE kk_KZ kl_GL km_KH kn_IN ko_KR ku_TR kw_GB ky_KG lg_UG li_BE li_NL lo_LA lt_LT lv_LV mg_MG mi_NZ mk_MK ml_IN mn_MN mr_IN ms_MY mt_MT nb_NO nds_DE@traditional ne_NP nl_BE nl_NL nn_NO no_NO nr_ZA nso_ZA oc_FR om_ET om_KE pa_IN pap_AN pa_PK ph_PH pl_PL pt_BR pt_PT ro_RO ru_RU ru_UA rw_RW sc_IT se_NO sid_ET si_LK sk_SK sl_SI so_DJ so_ET so_KE so_SO sq_AL sr_ME sr_RS sr_RS@latin ss_ZA st_ZA sv_FI sv_SE sw_XX ta_IN te_IN tg_TJ th_TH ti_ER ti_ET tig_ER tk_TM tl_PH tn_ZA tr_CY tr_TR ts_ZA tt_RU ug_CN uk_UA ur_PK uz_UZ uz_UZ@cyrillic ve_ZA vi_VN wa_BE wal_ET xh_ZA yi_US yo_NG zh_CN zh_HK zh_SG zh_TW zu_ZA); sub standard_locale { my ($lang, $country, $prefer_lang) = @_; my $lang_ = force_lang_country($lang, $country); if (member($lang_, @locales)) { $lang_; } elsif ($prefer_lang && member($lang, @locales)) { $lang; } else { ''; } } sub force_lang_country { my ($lang, $country) = @_; my $h = analyse_locale_name($lang); $h->{country} = $country; analysed_to_lang($h); } sub force_lang_charset { my ($lang, $charset) = @_; my $h = analyse_locale_name($lang); $h->{charset} = $charset; analysed_to_lang($h); } sub analysed_to_lang { my ($h) = @_; $h->{main} . '_' . $h->{country} . ($h->{charset} ? '.' . $h->{charset} : '') . ($h->{variant} ? '@' . $h->{variant} : ''); } sub analyse_locale_name { my ($lang) = @_; $lang =~ /^(.*?) (?:_(.*?))? (?:\.(.*?))? (?:\@(.*?))? $/x && { main => $1, country => $2, charset => $3, variant => $4 }; } sub locale_to_main_locale { my ($lang) = @_; lc(analyse_locale_name($lang)->{main}); } sub getlocale_for_lang { my ($lang, $country, $o_utf8) = @_; force_lang_charset(standard_locale($lang, $country, 'prefer_lang') || l2locale($lang), $o_utf8 && 'UTF-8'); } sub getlocale_for_country { my ($lang, $country, $o_utf8) = @_; force_lang_charset(standard_locale($lang, $country, '') || c2locale($country), $o_utf8 && 'UTF-8'); } sub getLANGUAGE { my ($lang, $o_country, $o_utf8) = @_; l2language($lang) || join(':', uniq(getlocale_for_lang($lang, $o_country, $o_utf8), $lang, locale_to_main_locale($lang))); } sub countries_to_locales { my (%options) = @_; my %country2locales; my $may_add = sub { my ($locale, $country) = @_; if ($options{exclude_non_installed}) { -e "/usr/share/locale/$locale/LC_CTYPE" or return; } my $h = analyse_locale_name($locale) or internal_error(); push @{$country2locales{$country || $h->{country}}}, $h; }; # first add all real locales foreach (@locales) { $may_add->($_, undef); } # then add countries XX for which we use locale yy_ZZ and not yy_XX foreach my $country (list_countries()) { $may_add->(c2locale($country), $country); } \%country2locales; } #------------------------------------------------------------- # # IM configuration hash tables # # in order to configure an IM, one has to: # - put generic configuration in %IM_config # This set generic IM fields. my @IM_i18n_fields = ( 'XMODIFIERS', #- is the environnement variable used by the X11 XIM protocol #- it is of the form XIMODIFIERS="@im=foo" 'XIM', #- is used by some programs, it usually is the like XIMODIFIERS #- with the "@im=" part stripped 'GTK_IM_MODULE', #- the module to use for Gtk programs ("xim" to use an X11 #- XIM server; or a a native gtk module if exists) 'XIM_PROGRAM', #- the XIM program to run (usually the same as XIM value, but #- in some cases different, particularly if parameters are needed; 'QT_IM_MODULE', #- the module to use for Qt programs ("xim" to use an X11 #- XIM server; or a Qt plugin if exists) ); my ($is_kde4); # keep the 'packages' field in sync with share/rpmsrate: my %IM_config = ( chinput => { GTK_IM_MODULE => 'xim', XIM => 'chinput', XMODIFIERS => '@im=Chinput', XIM_PROGRAM => { 'zh_CN' => 'chinput -gb', 'en_SG' => 'chinput -gb', 'zh_HK' => 'chinput -big5', 'zh_TW' => 'chinput -big5', }, langs => 'zh', packages => { generic => sub { 'miniChinput' } }, }, fcitx => { GTK_IM_MODULE => 'xim', XIM => 'fcitx', XIM_PROGRAM => 'fcitx', XMODIFIERS => '@im=fcitx', langs => 'zh', }, gcin => { GTK_IM_MODULE => 'gcin', XIM => 'gcin', XIM_PROGRAM => 'gcin', XMODIFIERS => '@im=gcin', langs => 'zh', packages => { common => sub { if_($is_kde4, 'gcin-qt4') }, generic => sub { qw(gcin) }, }, }, 'im-ja' => { GTK_IM_MODULE => 'im-ja', QT_IM_MODULE => 'xim', XIM => 'im-ja-xim-server', XIM_PROGRAM => 'im-ja-xim-server', XMODIFIERS => '@im=im-ja-xim-server', langs => 'ja', }, kinput2 => { GTK_IM_MODULE => 'xim', XIM => 'kinput2', XIM_PROGRAM => 'kinput2', XMODIFIERS => '@im=kinput2', langs => 'ja', packages => { generic => sub { 'kinput2-wnn' } }, }, nabi => { GTK_IM_MODULE => 'xim', XIM => 'nabi', XIM_PROGRAM => 'nabi', XMODIFIERS => '@im=nabi', langs => 'ko', }, oxim => { GTK_IM_MODULE => 'oxim', XIM => 'oxim', XIM_PROGRAM => 'oxim', XMODIFIERS => '@im=oxim', # '@im=SCIM' is broken for now langs => 'zh_TW', packages => { generic => sub { 'oxim' } }, }, 'scim' => { GTK_IM_MODULE => 'scim', QT_IM_MODULE => 'xim', XIM_PROGRAM => 'scim -d', XMODIFIERS => '@im=SCIM', packages => { generic => sub { qw(scim-m17n scim-tables) }, am => sub { qw(scim-tables) }, ja => sub { qw(scim-anthy scim-input-pad scim-tomoe) }, ko => sub { qw(scim-hangul) }, th => sub { qw(scim-thai) }, vi => sub { qw(scim-m17n) }, zh => sub { qw(scim-googlepinyin scim-tables-zh scim-chewing) }, }, }, 'scim-bridge' => { GTK_IM_MODULE => 'scim-bridge', XIM_PROGRAM => 'scim-bridge', XMODIFIERS => '@im=SCIM', default_for_lang => 'am ja ko th vi zh_CN zh_TW', packages => { common => sub { if_($is_kde4, 'scim-bridge-qt4') }, generic => sub { qw(scim-m17n scim-tables) }, am => sub { qw(scim-tables) }, ja => sub { qw(scim-anthy scim-input-pad scim-tomoe) }, ko => sub { qw(scim-hangul) }, th => sub { qw(scim-thai) }, vi => sub { qw(scim-m17n) }, zh => sub { qw(scim-googlepinyin scim-tables-zh scim-chewing) }, }, }, 'ibus' => { GTK_IM_MODULE => 'ibus', QT_IM_MODULE => 'ibus', XIM_PROGRAM => 'ibus-daemon -d -x', XMODIFIERS => '@im=ibus', packages => { generic => sub { qw(ibus-table ibus-m17n), if_($is_kde4, 'ibus-qt4') }, ja => sub { qw(ibus-anthy) }, zh => sub { qw(ibus-pinyin ibus-chewing) }, ko => sub { qw(ibus-hangul) }, }, }, uim => { GTK_IM_MODULE => 'uim', XIM => 'uim', XIM_PROGRAM => 'uim-xim', XMODIFIERS => '@im=uim', langs => 'ja', packages => { common => sub { if_($is_kde4, 'uim-qt4immodule') }, generic => sub { qw(uim-gtk uim) }, }, }, xcin => { XIM => 'xcin', XIM_PROGRAM => 'xcin', XMODIFIERS => '@im=xcin-zh_TW', GTK_IM_MODULE => 'xim', langs => 'zh', }, 'x-unikey' => { GTK_IM_MODULE => 'xim', XMODIFIERS => '@im=unikey', langs => 'vi', }, ); #------------------------------------------------------------- # # Locale configuration regarding encoding/IM #- ENC is used by some versions or rxvt my %locale2ENC = ( 'ja' => 'eucj', 'ko' => 'kr', 'zh_CN' => 'gb', # zh_SG zh_HK were reported as missing by make check: 'zh_HK' => 'big5', 'zh_SG' => 'gb', 'zh_TW' => 'big5', ); my %IM_locale_specific_config = ( #-XFree86 has an internal XIM for Thai that enables syntax checking etc. #-'Passthroug' is no check at all, 'BasicCheck' accepts bad sequences #-and convert them to right ones, 'Strict' refuses bad sequences 'th' => { XIM_PROGRAM => '/bin/true', #- it's an internal module XMODIFIERS => '"@im=BasicCheck"', }, ); sub get_ims { my ($lang) = @_; my $main_lang = analyse_locale_name($lang)->{main}; sort grep { my $langs = $IM_config{$_}{langs}; !$langs || intersection([ $lang, $main_lang ], [ split(' ', $langs) ]); } keys %IM_config; } sub get_default_im { my ($lang) = @_; find { member($lang, split(' ', $IM_config{$_}{default_for_lang})); } keys %IM_config; } sub IM2packages { my ($locale) = @_; if ($locale->{IM}) { require any; my @sessions = any::sessions(); $is_kde4 = member('KDE4', @sessions); my $per_lang = $IM_config{$locale->{IM}}{packages} || {}; my $main_lang = analyse_locale_name($locale->{lang})->{main}; my $packages = $per_lang->{$main_lang} || $per_lang->{generic}; my @pkgs = ($packages ? $packages->() : $locale->{IM}, $per_lang->{common} ? $per_lang->{common}->() : ()); @pkgs; } else { () } } #- [0]: console font name #- [1]: unused #- [2]: console map (none if utf8) #- [3]: iocharset param for mount (utf8 if utf8) #- [4]: codepage parameter for mount (none if utf8) my %charsets = ( #- chinese needs special console driver for text mode "Big5" => [ undef, undef, undef, "big5", "950" ], "gb2312" => [ undef, undef, undef, "gb2312", "936" ], "gbk" => [ undef, undef, undef, "gb2312", "936" ], "C" => [ "lat0-16", undef, "8859-15", "iso8859-1", "850" ], "iso-8859-1" => [ "lat1-16", undef, "8859-1", "iso8859-1", "850" ], "iso-8859-2" => [ "lat2-16", undef, "8859-2", "iso8859-2", "852" ], "iso-8859-5" => [ "UniCyr_8x16", undef, "8859-5", "iso8859-5", "866" ], "iso-8859-7" => [ "iso07u-16", undef, "8859-7", "iso8859-7", "869" ], "iso-8859-9" => [ "lat5-16", undef, "8859-9", "iso8859-9", "857" ], "iso-8859-13" => [ "tlat7", undef, "8859-13", "iso8859-13", "775" ], "iso-8859-15" => [ "lat0-16", undef, "8859-15", "iso8859-15", "850" ], #- japanese needs special console driver for text mode [kon2] "jisx0208" => [ undef, undef, undef, "euc-jp", "932" ], "koi8-r" => [ "UniCyr_8x16", undef, "koi8-r", "koi8-r", "866" ], "koi8-u" => [ "UniCyr_8x16", undef, "koi8-u", "koi8-u", "866" ], "cp1251" => [ "UniCyr_8x16", undef, "cp1251", "cp1251", "866" ], #- korean needs special console driver for text mode "ksc5601" => [ undef, undef, undef, "euc-kr", "949" ], #- I have no console font for Thai... "tis620" => [ undef, undef, undef, "tis-620", "874" ], # UTF-8 encodings here; they differ in the console font mainly. "utf_ar" => [ undef, undef, undef, "utf8", undef ], "utf_armn" => [ undef, undef, undef, "utf8", undef ], "utf_az" => [ "tiso09e", undef, undef, "utf8", undef ], "utf_beng" => [ undef, undef, undef, "utf8", undef ], "utf_cyr1" => [ "UniCyr_8x16", undef, undef, "utf8", undef ], "utf_cyr2" => [ "koi8-k", undef, undef, "utf8", undef ], "utf_deva" => [ undef, undef, undef, "utf8", undef ], "utf_ethi" => [ "Agafari-16", undef, undef, "utf8", undef ], "utf_geor" => [ "t_geors", undef, undef, "utf8", undef ], "utf_guru" => [ undef, undef, undef, "utf8", undef ], "utf_he" => [ undef, undef, undef, "utf8", undef ], "utf_iu" => [ undef, undef, undef, "utf8", undef ], "utf_khmr" => [ undef, undef, undef, "utf8", undef ], "utf_knda" => [ undef, undef, undef, "utf8", undef ], "utf_laoo" => [ undef, undef, undef, "utf8", undef ], "utf_lat1" => [ "lat0-16", undef, undef, "utf8", undef ], "utf_lat5" => [ undef, undef, undef, "utf8", undef ], "utf_lat7" => [ "tlat7", undef, undef, "utf8", undef ], "utf_lat8" => [ undef, undef, undef, "utf8", undef ], "utf_mlym" => [ undef, undef, undef, "utf8", undef ], "utf_mymr" => [ undef, undef, undef, "utf8", undef ], "utf_taml" => [ "tamil", undef, undef, "utf8", undef ], # console font still to do "utf_tfng" => [ undef, undef, undef, "utf8", undef ], "utf_tibt" => [ undef, undef, undef, "utf8", undef ], "utf_vi" => [ "tcvn8x16", undef, undef, "utf8", undef ], "utf_yo" => [ undef, undef, undef, "utf8", undef ], # default for utf-8 encodings "unicode" => [ "LatArCyrHeb-16", undef, undef, "utf8", undef ], ); #- for special cases not handled magically my %charset2kde_charset = ( gb2312 => 'gb2312.1980-0', gbk => 'gb2312.1980-0', jisx0208 => 'jisx0208.1983-0', ksc5601 => 'ksc5601.1987-0', Big5 => 'big5-0', cp1251 => 'microsoft-cp1251', utf8 => 'iso10646-1', tis620 => 'tis620-0', ); #- ------------------- sub l2console_font { my ($locale, $during_install) = @_; my $c = $charsets{l2charset($locale->{lang}) || return} or return; my ($name, $_sfm, $acm) = @$c; undef $acm if $locale->{utf8} && !$during_install; ($name, $acm); } sub get_kde_lang { my ($locale, $o_default) = @_; #- get it using #- echo C $(rpm -qp --qf "%{name}\n" /RPMS/kde4-l10n-* | sed 's/kde4-l10n-//') my @valid_kde_langs = qw(C ar be bg ca cs csb da de el en_GB eo es et eu fa fi fr fy ga gl hi hu is it ja kk km ko ku lt lv mk ml nb nds ne nl nn pa pl pt pt_BR ro ru se sl sr sv ta th tr uk wa zh_CN zh_TW); my %valid_kde_langs; @valid_kde_langs{@valid_kde_langs} = (); my $valid_lang = sub { my ($lang) = @_; #- fast & dirty solution to ensure bad entries do not happen my %fixlangs = (en => 'C', en_US => 'C', en_AU => 'en_GB', en_CA => 'en_GB', en_IE => 'en_GB', en_NZ => 'en_GB', pa_IN => 'pa', 'sr@Latn' => 'sr', ve => 'ven', zh_CN => 'zh_CN', zh_SG => 'zh_CN', zh_TW => 'zh_TW', zh_HK => 'zh_TW'); exists $fixlangs{$lang} ? $fixlangs{$lang} : exists $valid_kde_langs{$lang} ? $lang : exists $valid_kde_langs{locale_to_main_locale($lang)} ? locale_to_main_locale($lang) : ''; }; my $r; $r ||= $valid_lang->($locale->{lang}); $r ||= find { $valid_lang->($_) } split(':', getlocale_for_lang($locale->{lang}, $locale->{country})); $r || $o_default || 'C'; } sub charset2kde_charset { my ($charset, $o_default) = @_; my $iocharset = ($charsets{$charset} || [])->[3]; my @valid_kde_charsets = qw(big5-0 gb2312.1980-0 iso10646-1 iso8859-1 iso8859-4 iso8859-6 iso8859-8 iso8859-13 iso8859-14 iso8859-15 iso8859-2 iso8859-3 iso8859-5 iso8859-7 iso8859-9 koi8-r koi8-u ksc5601.1987-0 jisx0208.1983-0 microsoft-cp1251 tis620-0); my %valid_kde_charsets; @valid_kde_charsets{@valid_kde_charsets} = (); my $valid_charset = sub { my ($charset) = @_; #- fast & dirty solution to ensure bad entries do not happen exists $valid_kde_charsets{$charset} && $charset; }; my $r; $r ||= $valid_charset->($charset2kde_charset{$charset}); $r ||= $valid_charset->($charset2kde_charset{$iocharset}); $r ||= $valid_charset->($iocharset); $r || $o_default || 'iso10646-1'; } #- font+size for different charsets; the field [0] is the default, #- others are overrridens for fixed(1), toolbar(2), menu(3) and taskbar(4) my %charset2kde_font = ( 'C' => [ "Sans,10", "Monospace,10" ], 'iso-8859-1' => [ "Sans,10", "Monospace,10" ], 'iso-8859-2' => [ "Sans,10", "Monospace,10" ], 'iso-8859-7' => [ "DejaVu Sans,10", "FreeMono,10" ], 'iso-8859-9' => [ "Sans,10", "Monospace,10" ], 'iso-8859-13' => [ "Sans,10", "Monospace,10" ], 'iso-8859-15' => [ "Sans,10", "Monospace,10" ], 'jisx0208' => [ "UmePlus P Gothic,12", "UmePlus Gothic,12" ], 'ksc5601' => [ "Baekmuk Gulim,12" ], 'gb2312' => [ "Sans,10", "Monospace,10" ], 'Big5' => [ "Sans,10", "Monospace,10" ], 'tis620' => [ "Norasi,16", "Norasi,15" ], 'koi8-u' => [ "DejaVu Sans,10", "FreeMono,10" ], 'utf_ar' => [ "DejaVu Sans,11", "Courier New,13" ], 'utf_az' => [ "DejaVu Sans,10", "FreeMono,10" ], 'utf_he' => [ "DejaVu Sans,10", "FreeMono,10" ], #-'utf_iu' => [ "????,14", ], 'utf_vi' => [ "DejaVu Sans,12", "FreeMono,11", "DejaVu Sans,11" ], 'utf_yo' => [ "DejaVu Sans,12", "FreeMono,11", "DejaVu Sans,11" ], #- script based 'utf_armn' => [ "DejaVu Sans,11", "FreeMono,11" ], 'utf_cyr2' => [ "DejaVu Sans,10", "FreeMono,10" ], 'utf_beng' => [ "Mukti Narrow,13", "Mitra Mono,13", "Mukti Narrow,12" ], 'utf_deva' => [ "Raghindi,12", ], 'utf_ethi' => [ "GF Zemen Unicode,13" ], 'utf_guru' => [ "Lohit Punjab,14", ], #-'utf_khmr' => [ "????,14", ], 'utf_knda' => [ "Sampige,14", ], 'utf_lat1' => [ "Sans,10", "Monospace,10" ], 'utf_lat5' => [ "Sans,10", "Monospace,10" ], 'utf_lat7' => [ "Sans,10", "Monospace,10" ], 'utf_lat8' => [ "DejaVu Sans,10", "FreeMono,10" ], 'utf_mlym' => [ "malayalam,12", ], #-'utf_mymr' => [ "????,14", ], 'utf_taml' => [ "TSCu_Paranar,14", "Tsc_avarangalfxd,14", "TSCu_Paranar,13", ], 'utf_tfng' => [ "Hapax Berbère,12", ], 'utf_tibt' => [ "Tibetan Machine Uni,14", ], #- the following should be changed to better defaults when better fonts #- get available 'utf_geor' => [ "ClearlyU,13" ], 'utf_laoo' => [ "DejaVu Sans,11", "ClearlyU,13" ], 'default' => [ "DejaVu Sans,12", "FreeMono,11", "DejaVu Sans,11" ], ); sub charset2kde_font { my ($charset, $type) = @_; my $font = $charset2kde_font{$charset} || $charset2kde_font{default}; my $r = $font->[$type] || $font->[0]; #- the format is "font-name,size,-1,5,0,0,0,0,0,0" I have no idea of the #- meaning of that "5"... "$r,-1,5,0,0,0,0,0,0"; } # this define pango name fonts (like "NimbusSans L") depending # on the "charset" defined by language array. This allows to selecting # an appropriate font for each language for the installer only. my %charset2pango_font = ( 'utf_geor' => "Sans 14", 'utf_taml' => "TSCu_Paranar 14", 'jisx0208' => "Sans 14", 'utf_ar' => "Sans 15", 'tis620' => "Norasi 20", 'default' => "DejaVu Sans 12" ); sub charset2pango_font { my ($charset) = @_; $charset2pango_font{exists $charset2pango_font{$charset} ? $charset : 'default'}; } sub l2pango_font { my ($lang) = @_; my $charset = l2charset($lang) or log::l("no charset found for lang $lang!"), return; my $font = charset2pango_font($charset); log::l("lang:$lang charset:$charset font:$font consolefont:$charsets{$charset}[0]"); return $font; } sub set { my ($locale, $b_translate_for_console) = @_; put_in_hash(\%ENV, i18n_env($locale)); if (!$::isInstall) { bindtextdomain(); } else { $ENV{LC_NUMERIC} = 'C'; #- otherwise eval "1.5" returns 1 in fr_FR if ($b_translate_for_console && $locale->{lang} =~ /^(ko|ja|zh|th)/) { log::l("not translating in console"); $ENV{LANGUAGE} = 'C'; } load_mo(); } } sub langs { my ($l) = @_; $l->{all} ? list_langs() : grep { $l->{$_} } keys %$l; } sub langsLANGUAGE { my ($l, $o_c) = @_; uniq(map { split ':', getLANGUAGE($_, $o_c) } langs($l)); } sub utf8_should_be_needed { my ($_locale) = @_; 1; } sub pack_langs { my ($l) = @_; my $s = $l->{all} ? 'all' : join ':', uniq(map { getLANGUAGE($_) } langs($l)); $s; } sub system_locales_to_ourlocale { my ($locale_lang, $locale_country) = @_; my $locale = {}; my $h = analyse_locale_name($locale_lang); my $locale_lang_no_encoding = join('_', $h->{main}, if_($h->{country}, $h->{country})); $locale->{lang} = member($locale_lang_no_encoding, list_langs()) ? $locale_lang_no_encoding : #- special lang's such as en_US pt_BR $h->{main}; $locale->{lang} .= '@' . $h->{variant} if $h->{variant}; $locale->{country} = analyse_locale_name($locale_country)->{country}; $locale->{utf8} = $h->{charset} && $h->{charset} eq 'UTF-8'; #- safe fallbacks $locale->{lang} ||= 'en_US'; $locale->{country} ||= 'US'; $locale; } sub lang_to_ourlocale { my ($lang) = @_; my $locale = system_locales_to_ourlocale($lang); $locale->{utf8} ||= utf8_should_be_needed($locale); lang_changed($locale); $locale; } sub lang_changed { my ($locale) = @_; my $h = analyse_locale_name(l2locale($locale->{lang})); $locale->{country} = $h->{country} if $h->{country}; $locale->{IM} = get_default_im($locale->{lang}); } sub read { my ($b_user_only) = @_; my ($f1, $f2) = ("$::prefix$ENV{HOME}/.i18n", "$::prefix/etc/sysconfig/i18n"); my %h = getVarsFromSh($b_user_only && -e $f1 ? $f1 : $f2); my $locale = system_locales_to_ourlocale($h{LC_MESSAGES} || 'en_US', $h{LC_MONETARY} || 'en_US'); if (find { $h{$_} } @IM_i18n_fields) { my $current_IM = find { my $i = $IM_config{$_}; every { !defined $i->{$_} || $h{$_} eq $i->{$_} } ('GTK_IM_MODULE', 'XMODIFIERS', 'XIM_PROGRAM'); } keys %IM_config; $locale->{IM} = $current_IM if $current_IM; } $locale; } sub write_langs { my ($langs) = @_; my $s = pack_langs($langs); symlink "$::prefix/etc/rpm/macros", "/etc/rpm/macros" if $::prefix; require URPM; URPM::add_macro("_install_langs $s"); substInFile { s/%_install_langs.*//; $_ .= "%_install_langs $s\n" if eof && $s } "$::prefix/etc/rpm/macros"; } sub i18n_env { my ($locale) = @_; my $locale_lang = getlocale_for_lang($locale->{lang}, $locale->{country}, $locale->{utf8}); my $locale_country = getlocale_for_country($locale->{lang}, $locale->{country}, $locale->{utf8}); my $h = { XKB_IN_USE => '', (map { $_ => $locale_lang } qw(LANG LC_COLLATE LC_CTYPE LC_MESSAGES LC_TIME)), LANGUAGE => getLANGUAGE($locale->{lang}, $locale->{country}, $locale->{utf8}), (map { $_ => $locale_country } qw(LC_NUMERIC LC_MONETARY LC_ADDRESS LC_MEASUREMENT LC_NAME LC_PAPER LC_IDENTIFICATION LC_TELEPHONE)) }; log::l("i18n_env: lang:$locale->{lang} country:$locale->{country} locale|lang:$locale_lang locale|country:$locale_country LANGUAGE:$h->{LANGUAGE}"); $h; } sub write_and_install { my ($locale, $do_pkgs, $b_user_only, $b_dont_touch_kde_files) = @_; my @packages = IM2packages($locale); if (@packages && !$b_user_only) { log::explanations("Installing IM packages: ", join(', ', @packages)); $do_pkgs->ensure_are_installed(\@packages, 1); } &write($locale, $b_user_only, $b_dont_touch_kde_files); } sub write { my ($locale, $b_user_only, $b_dont_touch_kde_files) = @_; $locale && $locale->{lang} or return; my $h = i18n_env($locale); my ($name, $acm) = l2console_font($locale, 0); if ($name && !$b_user_only) { my $p = "$::prefix/usr/lib/kbd"; if ($name) { eval { log::explanations(qq(Set system font to "$name")); cp_af(glob_("$p/consolefonts/$name.*"), "$::prefix/etc/sysconfig/console/consolefonts"); add2hash $h, { SYSFONT => $name }; }; $@ and log::explanations("missing console font $name"); } if ($acm) { eval { log::explanations(qq(Set application-charset map (Unicode mapping table) to "$name")); cp_af(glob_("$p/consoletrans/$acm*"), "$::prefix/etc/sysconfig/console/consoletrans"); add2hash $h, { SYSFONTACM => $acm }; }; $@ and log::explanations("missing console acm file $acm"); } } add2hash($h, $IM_locale_specific_config{$locale->{lang}}); $h->{ENC} = $locale2ENC{$locale->{lang}}; $h->{ENC} = 'utf8' if $h->{ENC} && $locale->{utf8}; if ($locale->{IM}) { log::explanations(qq(Configuring "$locale->{IM}" IM)); foreach (@IM_i18n_fields) { $h->{$_} = $IM_config{$locale->{IM}}{$_}; } $h->{QT_IM_MODULE} ||= $h->{GTK_IM_MODULE}; if (ref $h->{XIM_PROGRAM}) { $h->{XIM_PROGRAM} = $h->{XIM_PROGRAM}{$locale->{lang}} || $h->{XIM_PROGRAM}{getlocale_for_country($locale->{lang}, $locale->{country})}; } } #- deactivate translations on console for most CJK, RTL and complex languages if (member($locale->{lang}, qw(ar bn fa he hi ja kn ko pa_IN ug ur yi zh_TW zh_CN))) { #- CONSOLE_NOT_LOCALIZED if defined to yes, disables translations on console #- it is needed for languages not supported by the linux console log::explanations(qq(Disabling translation on console since "$locale->{lang}" is not supported by the console)); add2hash($h, { CONSOLE_NOT_LOCALIZED => 'yes' }); } my $file = $b_user_only ? "$ENV{HOME}/.i18n" : '/etc/sysconfig/i18n'; log::explanations(qq(Setting l10n configuration in "$file")); setVarsInShMode($::prefix . $file, 0644, $h); configure_hal($locale) if !$b_user_only; run_program::rooted($::prefix, 'grub-gfxmenu', '--quiet', '--lang', $locale->{lang}) if !$b_user_only; my $charset = l2charset($locale->{lang}); my $qtglobals = $b_user_only ? "$ENV{HOME}/.qt/qtrc" : "$::prefix/etc/qtrc"; update_gnomekderc($qtglobals, General => ( font => charset2kde_font($charset, 0), )); eval { my $confdir = $::prefix . ($b_user_only ? "$ENV{HOME}/.kde" : do { my $kderc = $::prefix ? common::expand_symlinks_with_absolute_symlinks_in_prefix($::prefix, '/etc/kderc') : '/etc/kderc'; log::l("reading $kderc"); my %dir_defaults = read_gnomekderc($kderc, 'Directories-default'); first(split(',', $dir_defaults{prefixes})) || "/etc/kde" }) . '/share/config'; -d $confdir or die 'not configuring kde config files since it is not installed/used'; configure_kdeglobals($locale, $confdir); my %qt_xim = (zh => 'Over The Spot', ko => 'On The Spot', ja => 'On The Spot'); if ($b_user_only && (my $qt_xim = $qt_xim{locale_to_main_locale($locale->{lang})})) { log::explanations(qq(Setting XIM input style to "$qt_xim")); update_gnomekderc("$ENV{HOME}/.qt/qtrc", General => (XIMInputStyle => $qt_xim)); } if (!$b_user_only) { my $kde_charset = charset2kde_charset(l2charset($locale->{lang})); my $welcome = common::to_utf8(N("Welcome to %s", '%n')); log::explanations(qq(Configuring KDM/MdkKDM)); substInFile { s/^(GreetString)=.*/$1=$welcome/; s/^(Language)=.*/$1=$locale->{lang}/; if (!member($kde_charset, 'iso8859-1', 'iso8859-15')) { #- do not keep the default for those my $font_list = $charset2kde_font{l2charset($locale->{lang})} || $charset2kde_font{default}; my $font_small = $font_list->[0]; my $font_huge = $font_small; $font_huge =~ s/(.*?),\d+/$1,24/; s/^(StdFont)=.*/$1=$font_small,5,$kde_charset,50,0/; s/^(FailFont)=.*/$1=$font_small,5,$kde_charset,75,0/; s/^(GreetFont)=.*/$1=$font_huge,5,$kde_charset,50,0/; } } "$::prefix/etc/kde/kdm/kdmrc"; } } if !$b_dont_touch_kde_files; #- update alternatives for OpenOffice/BrOffice if present foreach my $name (grep { /^oobr_bootstraprc/ } all("$::prefix/var/lib/alternatives/")) { my $alternative = common::get_alternatives($name) or next; my $wanted = $locale->{lang} eq 'pt_BR' ? 'bootstraprc.bro' : 'bootstraprc.ooo';