Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Merge pull request #7017 from dscravag/nightly2

Nightly 2012-12-14
  • Loading branch information...
commit 16006ea0104f6c1518f27bb00e3713ca31b83c5d 2 parents 47990e8 + 7b6dc44
@dscravag dscravag authored
Showing with 3,386 additions and 766 deletions.
  1. +13 −0 apps/bluetooth/locales/bluetooth.fr.properties
  2. +13 −0 apps/bluetooth/locales/bluetooth.zh-TW.properties
  3. +6 −0 apps/bluetooth/locales/locales.ini
  4. +4 −2 apps/bluetooth/style/transfer.css
  5. +18 −16 apps/browser/locales/browser.fr.properties
  6. +18 −16 apps/browser/locales/browser.zh-TW.properties
  7. +1 −1  apps/calculator/style/calculator.css
  8. +9 −1 apps/calendar/locales/calendar.fr.properties
  9. +42 −0 apps/calendar/locales/calendar.zh-TW.properties
  10. +12 −4 apps/camera/locales/camera.fr.properties
  11. +11 −3 apps/camera/locales/camera.zh-TW.properties
  12. +9 −0 apps/clock/locales/alarms.zh-TW.properties
  13. +10 −7 apps/clock/locales/clock.fr.properties
  14. +11 −8 apps/clock/locales/clock.zh-TW.properties
  15. +2 −1  apps/clock/locales/locales.ini
  16. +2 −0  apps/communications/contacts/js/fb/fb_contact.js
  17. +27 −2 apps/communications/contacts/js/fb/fb_contact_utils.js
  18. +34 −18 apps/communications/contacts/locales/contacts.fr.properties
  19. +41 −6 apps/communications/contacts/locales/contacts.zh-TW.properties
  20. +90 −10 apps/communications/contacts/locales/fb/facebook.fr.properties
  21. +89 −10 apps/communications/contacts/locales/fb/facebook.zh-TW.properties
  22. +34 −7 apps/communications/dialer/locales/dialer.fr.properties
  23. +37 −3 apps/communications/dialer/locales/dialer.zh-TW.properties
  24. +180 −0 apps/communications/ftu/locales/ftu.fr.properties
  25. +133 −0 apps/communications/ftu/locales/ftu.zh-TW.properties
  26. +7 −1 apps/communications/ftu/locales/locales.ini
  27. +51 −18 apps/costcontrol/locales/costcontrol.fr.properties
  28. +50 −5 apps/costcontrol/locales/costcontrol.zh-TW.properties
  29. +72 −9 apps/email/locales/email.fr.properties
  30. +110 −14 apps/email/locales/email.zh-TW.properties
  31. +5 −3 apps/feedback/locales/feedback.fr.properties
  32. +5 −5 apps/feedback/locales/feedback.zh-TW.properties
  33. +0 −1  apps/fm/locales/fm.zh-TW.properties
  34. +4 −4 apps/gallery/index.html
  35. +70 −11 apps/gallery/js/gallery.js
  36. +27 −23 apps/gallery/locales/gallery.fr.properties
  37. +30 −23 apps/gallery/locales/gallery.zh-TW.properties
  38. +36 −37 apps/gallery/style/gallery.css
  39. +10 −2 apps/homescreen/locales/homescreen.fr.properties
  40. +34 −0 apps/homescreen/locales/homescreen.zh-TW.properties
  41. +2 −0  apps/homescreen/locales/locales.ini
  42. +1 −1  apps/music/locales/music.zh-TW.properties
  43. +4 −2 apps/settings/locales/locales.ini
  44. +13 −0 apps/settings/locales/notifications.zh-TW.properties
  45. +16 −0 apps/settings/locales/ringtones.zh-TW.properties
  46. +2 −0  apps/settings/locales/settings.en-US.properties
  47. +177 −82 apps/settings/locales/settings.fr.properties
  48. +215 −91 apps/settings/locales/settings.zh-TW.properties
  49. +2 −2 apps/sms/locales/sms.fr.properties
  50. +28 −18 apps/sms/locales/sms.zh-TW.properties
  51. +34 −26 apps/system/index.html
  52. +25 −0 apps/system/js/app_install_manager.js
  53. +8 −1 apps/system/js/update_manager.js
  54. +342 −0 apps/system/js/value_selector/spin_date_picker.js
  55. +25 −2 apps/system/js/value_selector/value_picker.js
  56. +14 −31 apps/system/js/value_selector/value_selector.js
  57. +96 −36 apps/system/js/window_manager.js
  58. +147 −19 apps/system/locales/system.fr.properties
  59. +158 −16 apps/system/locales/system.zh-TW.properties
  60. +3 −0  apps/system/style/system/system.css
  61. +249 −0 apps/system/style/value_selector/spin_date_picker.css
  62. +8 −4 apps/system/style/value_selector/value_selector.css
  63. +57 −9 apps/system/test/unit/app_install_manager_test.js
  64. +41 −0 apps/system/test/unit/mock_navigator_wake_lock.js
  65. +19 −16 apps/system/test/unit/update_manager_test.js
  66. +4 −0 apps/video/locales/video.fr.properties
  67. +5 −1 apps/video/locales/video.zh-TW.properties
  68. +16 −15 shared/js/l10n.js
  69. +1 −1  shared/js/visibility_monitor.js
  70. +0 −1  shared/locales/branding.ini
  71. +4 −0 shared/locales/branding/unofficial/branding.fr.properties
  72. +5 −0 shared/locales/branding/unofficial/branding.zh-TW.properties
  73. +0 −1  shared/locales/date.ini
  74. +82 −31 shared/locales/date/date.fr.properties
  75. +88 −37 shared/locales/date/date.zh-TW.properties
  76. +6 −0 shared/locales/permissions.ini
  77. +4 −4 shared/locales/permissions/permissions.fr.properties
  78. +39 −0 shared/locales/permissions/permissions.zh-TW.properties
  79. +6 −0 shared/locales/tz.ini
  80. +12 −0 shared/locales/tz/tz.fr.properties
  81. +14 −0 shared/locales/tz/tz.zh-TW.properties
  82. +3 −25 shared/style_unstable/progress_activity.css
  83. BIN  shared/style_unstable/progress_activity/images/ui/dark/default-small.png
  84. BIN  shared/style_unstable/progress_activity/images/ui/dark/default.png
  85. BIN  shared/style_unstable/progress_activity/images/ui/default-small.png
  86. BIN  shared/style_unstable/progress_activity/images/ui/default.png
  87. BIN  shared/style_unstable/progress_activity/images/ui/opposite-small.png
  88. BIN  shared/style_unstable/progress_activity/images/ui/opposite.png
  89. +2 −4 shared/style_unstable/progress_activity/index.html
  90. +0 −3  showcase_apps/tasks/locales/locales.ini
  91. +4 −4 showcase_apps/tasks/locales/tasks.fr.properties
  92. +13 −0 showcase_apps/tasks/locales/tasks.zh-TW.properties
  93. +12 −12 test_apps/geoloc/locales/geoloc.fr.properties
  94. +20 −0 test_apps/geoloc/locales/geoloc.zh-TW.properties
  95. +3 −0  test_apps/geoloc/locales/locales.ini
View
13 apps/bluetooth/locales/bluetooth.fr.properties
@@ -0,0 +1,13 @@
+bluetooth = Bluetooth
+confirmation = Confirmation
+bluetooth-status-description = Le Bluetooth est désactivé
+turn-bluetooth-on = Voulez-vous activer le Bluetooth ?
+cancel = Annuler
+turn-on = Activer
+error-transfer-title = Échec du transfert par Bluetooth
+error-transfer-settings = Échec du transfert du fichier par Bluetooth. Vérifiez que les paramètres du Bluetooth sont corrects.
+ok = OK
+choose-option = Choix de l’option
+no-devices-paired-title = Aucun appareil Bluetooth associé.
+no-devices-paired-settings = Voulez-vous associer un appareil maintenant ?
+pair-device = Associer appareil
View
13 apps/bluetooth/locales/bluetooth.zh-TW.properties
@@ -0,0 +1,13 @@
+bluetooth = 藍牙
+confirmation = 確認
+bluetooth-status-description = 藍牙已關閉
+turn-bluetooth-on = 您想要開啓藍牙嗎?
+cancel = 取消
+turn-on = 開啟
+error-transfer-title = 藍牙檔案傳輸失敗
+error-transfer-settings = 藍牙檔案傳輸失敗。請檢查藍牙設定是否正確。
+ok = 確定
+choose-option = 挑選一個選項
+no-devices-paired-title = 未與藍芽裝置配對。
+no-devices-paired-settings = 您現在想要與裝置配對嗎?
+pair-device = 與裝置配對
View
6 apps/bluetooth/locales/locales.ini
@@ -1 +1,7 @@
@import url(bluetooth.en-US.properties)
+
+[fr]
+@import url(bluetooth.fr.properties)
+
+[zh-TW]
+@import url(bluetooth.zh-TW.properties)
View
6 apps/bluetooth/style/transfer.css
@@ -108,7 +108,8 @@ button.affirmative.active {
color: #FFFFFF !important;
}
-#time-picker-popup {
+#time-picker-popup,
+#spin-date-picker-popup {
top: 0px;
padding: 0 0 7rem; /*remove the top padding*/
@@ -127,7 +128,8 @@ button.affirmative.active {
color: #fff;
}
-#time-picker-popup h3 {
+#time-picker-popup h3,
+#spin-date-picker-popup h3 {
font-family: 'Open Sans', Sans-serif;
font-weight: normal;
font-size: 1.6rem;
View
34 apps/browser/locales/browser.fr.properties
@@ -1,6 +1,11 @@
+# modal-dialog buttons
ok=OK
cancel=Annuler
-done=Fait
+yes=Oui
+no=Non
+save=Enregistrer
+dontsave=Ne pas enregistrer
+done=Fini
enter-search-or-address.placeholder=Recherche ou adresse
history=Historique
@@ -32,31 +37,28 @@ month-10=Novembre
month-11=Décembre
# Start Page
-firefox=Firefox
-firefox-start=Démarrage de Firefox
+browser={{browserBrandShortName}}
+browser-start=Démarrage de {{browserBrandShortName}}
top-sites=Les plus visités
start-browsing=Saisissez un terme à chercher ou une adresse web pour commencer la navigation.
# Settings
-firefox-settings=Paramètres
-about-firefox=À propos de Firefox
+browser-settings=Paramètres
+about-browser=À propos de {{browserBrandShortName}}
privacy-and-security=Vie privée et sécurité
-clear-history=Effacer l’historique
-confirm-clear-history=Effacer l’historique de navigation ?
-clear-private-data=Effacer les données personnelles
-confirm-clear-private-data=Effacer les données personnelles, y compris les cookies ?
+clear-browsing-history=Effacer l’historique de navigation
+confirm-clear-browsing-history=Effacer l’historique de navigation ?
+clear-cookies-and-stored-data=Effacer les cookies et les données stockées
+confirm-clear-cookies-and-stored-data=Effacer les cookies et d’autres données stockées par des sites sur cet appareil ?
# About Page
-faq-about=FAQ
support-about=Aide
-privacy-about=Politique de confidentialité
-privacy-about.href=http://mozilla.org/fr/m/privacy.html
-rights-about=Découvrez vos droits
-release-about=Notes de version
+support-about.href=http://support.mozilla.org/1/firefox-os/1.0/firefox-os/fr
+faq-about=FAQ
credits-about=Crédits
credits-about.href=http://mozilla.org/credits/
-license-about=Informations sur la licence
-trademark-about=Firefox et les logos Firefox sont des marques déposées de Mozilla Foundation
+faq-about.href=https://www.mozilla.org/fr/firefox/mobile/faq/?os=firefox-os
+trademark-about2={{browserBrandShortName}} et les logos {{browserBrandShortName}} sont des marques déposées de Mozilla Foundation.
# Bookmarks
bookmarks=Marque-pages
View
34 apps/browser/locales/browser.zh-TW.properties
@@ -1,5 +1,10 @@
+# modal-dialog buttons
ok=確定
cancel=取消
+yes=是
+no=否
+save=儲存
+dontsave=不儲存
done=完成
enter-search-or-address.placeholder=輸入要搜尋的資料或是網址
@@ -31,31 +36,28 @@ month-10=十一月
month-11=十二月
# Start Page
-firefox=Firefox
-firefox-start=Firefox 首頁
+browser={{browserBrandShortName}}
+browser-start={{browserBrandShortName}} 首頁
top-sites=最常瀏覽
start-browsing=輸入要搜尋的辭彙或網址以開始瀏覽。
# Settings
-firefox-settings=設定
-about-firefox=關於 Firefox
+browser-settings=設定
+about-browser=關於 {{browserBrandShortName}}
privacy-and-security=隱私與安全性
-clear-history=清除瀏覽記錄
-confirm-clear-history=清除瀏覽歷史?
-clear-private-data=清除隱私資訊
-confirm-clear-private-data=要清除包含 cookie 等個人隱私資料
+clear-browsing-history=清除瀏覽歷史
+confirm-clear-browsing-history=清除瀏覽歷史?
+clear-cookies-and-stored-data=清除 Cookie 與儲存的資料
+confirm-clear-cookies-and-stored-data=是否要清除此裝置上儲存的 Cookie 與其他由網站所儲存的資料
# About Page
-faq-about=常見問題集
support-about=技術支援
-privacy-about=隱私權保護政策
-privacy-about.href=http://mozilla.org/zh-TW/m/privacy.html
-rights-about=了解您的權利
-release-about=新鮮事
+support-about.href=http://support.mozilla.org/1/firefox-os/1.0/firefox-os/zh-TW
+faq-about=常見問題集
+faq-about.href=https://www.mozilla.org/en-US/firefox/mobile/faq/?os=firefox-os
credits-about=感謝
credits-about.href=http://mozilla.org/credits/
-license-about=授權資訊
-trademark-about=Firefox 字樣與 Firefox 標誌為 Mozilla 基金會之註冊商標。
+trademark-about2={{browserBrandShortName} 與 {{browserBrandShortName}} 標誌是 Mozilla 基金會的商標。
# Bookmarks
bookmarks=書籤
@@ -64,7 +66,7 @@ unbookmark=自書籤移除
edit-bookmark=編輯書籤
page-title=頁面標題
address=網址
-add-to-home-screen=新增至裝置主畫面
+add-to-home-screen=新增至主畫面
# HTTP Authentication dialog
username=使用者名稱
View
2  apps/calculator/style/calculator.css
@@ -6,7 +6,7 @@ body, html {
font-family: MozTT, sans-serif;
font-weight: normal;
font-size: 10px;
- background: url("images/background.png") no-repeat 0 -20px;
+ background: #1d2125 url("images/background.png") no-repeat 0 -20px;
}
.row {
View
10 apps/calendar/locales/calendar.fr.properties
@@ -4,7 +4,7 @@ save=Enregistrer
hide=Masquer
cancel=Annuler
confirm=Confirmer
-done=Fait
+done=Fini
# time view selector
show-today=Aujourd’hui
@@ -35,6 +35,7 @@ advanced-settings-personalization=Personnalisation
field-user.placeholder=Utilisateur
field-password.placeholder=Mot de passe
field-full-url.placeholder=Adresse URL
+modify-account-setting-up=Veuillez patienter pendant la configuration de votre compte
# presets
preset-caldav=CalDav
@@ -77,3 +78,10 @@ alarm-started={{title}} débutera dans {{distance}}
# 24 vs 12 see http://www.cplusplus.com/reference/clibrary/ctime/strftime/
hour-format=%Hh
+
+#errors
+error-start-after-end=La date de fin doit être postérieure à la date de début
+error-unauthenticated=Mauvais nom d’utilisateur et/ou mot de passe
+error-no-url=Aucune connexion. Vérifiez votre Wi-Fi et réessayez.
+error-internal-server-error=Erreur du serveur. Vérifiez votre nom d’utilisateur et réessayez.
+error-default=Une erreur s’est produite. Réessayez plus tard.
View
42 apps/calendar/locales/calendar.zh-TW.properties
@@ -1,3 +1,4 @@
+# generic
back=上一頁
save=儲存
hide=隱藏
@@ -5,47 +6,88 @@ cancel=取消
confirm=確認
done=完成
+# time view selector
+show-today=今天
+show-month-view=月
+show-week-view=週
+show-day-view=日
+
+# settings
settings-show=設定
settings-hide=隱藏選項
+# add records
add-account=新增帳號
new-event=新增事件
add-event-header=事件
+# account
account-header=帳號
account-list-header=帳號
+
+# advanced settings
settings-header=行事曆
advanced-settings=行事曆選項
advanced-settings-header=行事曆選項
advanced-settings-personalization=個人化
+# create account
field-user.placeholder=使用者名稱
field-password.placeholder=密碼
field-full-url.placeholder=網址
+modify-account-setting-up=請稍待您的帳號設定完成
+
+# presets
preset-caldav=CalDav
preset-yahoo=Yahoo!
preset-google=Google
preset-local=離線行事曆
+
+# note this does not need to be localized
+# it is highly unlikely we will ship with this value.
+preset-mozilla=Mozilla Zimbra
calendar-local=離線行事曆
+# create event
+
event-title.placeholder=標題
event-location.placeholder=在哪裡?
event-description.placeholder=註解
+event-is-allday=全日活動?
event-start-date.placeholder=開始日期
event-end-date.placeholder=結束日期
event-start-time.placeholder=開始時間
event-end-time.placeholder=結束時間
event-delete=刪除事件
+# remove account
+
remove-account-data=移除本機資料
remove-account-dialog=移除帳號
remove-account-dialog-details=移除此帳號也將會移除您本機上相關的行事曆與活動。
+# sync
+
sync-frequency=同步行事曆
sync-frequency-manual.textContent=手動
sync-frequency-15min.textContent=每 15 分鐘
sync-frequency-30min.textContent=每 30 分鐘
sync-frequency-hourly.textContent=每小時
+# alarms
+
+alarm-starting={{title}} 開始於 {{distance}} 前
+alarm-started={{title}} 將在 {{distance}} 後開始
+
+# 24 vs 12 see http://www.cplusplus.com/reference/clibrary/ctime/strftime/
+hour-format=%p %I 點
+
+#errors
+error-start-after-end=結束日期必須接續在開始日期之後
+error-unauthenticated=登入失敗,請檢查帳號密碼
+error-no-url=無法連線。請檢查你的 Wi-Fi 連線並再試一次。
+error-internal-server-error=伺服器錯誤。請確認帳號密碼是否正確並再試一次。
+error-default=發生錯誤,請稍後再試一次。
+
View
16 apps/camera/locales/camera.fr.properties
@@ -1,11 +1,19 @@
-nospace-title = Espace libre sur la carte mémoire insuffisant
-nospace-text = Essayez de libérer de l’espace en supprimant des médias.
+nospace2-title = Espace libre sur la carte mémoire insuffisant
+nospace2-text = Essayez de libérer de l’espace en supprimant des médias.
error-saving-title = Photo non sauvegardée
-error-saving-text = Une erreur a empêché l’application Appareil photo d’enregistrer la photo.
+error-saving-text = Une erreur a empêché l’application Photo de sauvegarder la photo.
+
+error-recording-title = Vidéo non enregistrée
+error-recording-text = Une erreur a empêché l’application Photo d’enregistrer la vidéo.
nocard-title = Aucune carte mémoire trouvée
nocard-text = Insérez une carte mémoire pour prendre des photos.
-pluggedin-title = L’application Appareil photo ne peut pas être utilisée tant que le téléphone est branché
+pluggedin-title = L’application Photo ne peut pas être utilisée tant que le téléphone est branché
pluggedin-text = Débranchez le téléphone pour afficher les photos.
+
+size-limit-reached = Vous n’avez pas assez d’espace sur votre carte SD.
+
+delete-photo? = Supprimer la photo ?
+delete-video? = Supprimer la vidéo ?
View
14 apps/camera/locales/camera.zh-TW.properties
@@ -1,12 +1,20 @@
-nospace-title = 記憶卡的空間不足
-nospace-text = 刪除舊的應用程式與媒體檔案以釋放可用空間
+nospace2-title = 記憶卡的空間不足
+nospace2-text = 刪除媒體檔案以釋放可用空間
error-saving-title = 相片未儲存
error-saving-text = 發生錯誤,相機無法儲存相片。
-nocard-title = 未插入記憶卡
+error-recording-title = 影片未紀錄
+error-recording-text = 有錯誤發生使照相機無法錄製影片。
+
+nocard-title = 找不到記憶卡
nocard-text = 插入記憶卡以拍照。
pluggedin-title = 連接到電腦時無法使用相機
pluggedin-text = 拔線以檢視照片。
+size-limit-reached = 您已用盡 SD 卡上的空間。
+
+delete-photo? = 刪除相片?
+delete-video? = 刪除影片?
+
View
9 apps/clock/locales/alarms.zh-TW.properties
@@ -0,0 +1,9 @@
+ac_classic_clock_alarm_opus = Classic Buzz
+ac_classic_clock_alarm_prog_opus = Classic Pulse Progressive
+ac_classic_clock_radio_opus = Classic Pulse
+ac_normal_gem_echoes_opus = Gem Echoes
+ac_soft_smooth_strings_opus = Smooth Strings
+ac_soft_humming_waves_opus = Shimmering Waves
+ac_normal_ringing_strings_opus = Ringing Strings
+ac_soft_into_the_void_opus = Into the Void
+
View
17 apps/clock/locales/clock.fr.properties
@@ -3,11 +3,6 @@ start = Démarrer
stop = Arrêter
cancel = Annuler
-# Localization note: most locales probably want to use 0/1 here instead of OFF/ON;
-# these strings should be dropped when the switch is replaced by the generic (shared) one.
-off = 0
-on = 1
-
hour = Heure
minute = Minute
enable = Activer
@@ -24,7 +19,7 @@ snooze = Reporter
repeat = Répéter
close = Fermer
save = Enregistrer
-done = Fait
+done = Fini
default = Défaut
color = Couleur
@@ -44,15 +39,23 @@ countdown-moreThanAnHour = L’alarme est réglée pour dans {{hours}} {{minutes
nMinutes={[ plural(n) ]}
nMinutes[zero] = moins d’une minute
nMinutes[one] = une minute
+nMinutes[two] = {{n}} minutes
+nMinutes[few] = {{n}} minutes
+nMinutes[many] = {{n}} minutes
nMinutes[other] = {{n}} minutes
nRemainHours={[ plural(n) ]}
nRemainHours[zero] =
nRemainHours[one] = <strong>{{n}} heure</strong>
+nRemainHours[two] = <strong>{{n}} heures</strong>
+nRemainHours[few] = <strong>{{n}} heures</strong>
+nRemainHours[many] = <strong>{{n}} heures</strong>
nRemainHours[other] = <strong>{{n}} heures</strong>
nRemainMinutes={[ plural(n) ]}
nRemainMinutes[zero] =
nRemainMinutes[one] = et <strong>{{n}} minute</strong>
+nRemainMinutes[two] = et <strong>{{n}} minutes</strong>
+nRemainMinutes[few] = et <strong>{{n}} minutes</strong>
+nRemainMinutes[many] = et <strong>{{n}} minutes</strong>
nRemainMinutes[other] = et <strong>{{n}} minutes</strong>
-
View
19 apps/clock/locales/clock.zh-TW.properties
@@ -3,11 +3,6 @@ start = 開始
stop = 停止
cancel = 取消
-# Localization note: most locales probably want to use 0/1 here instead of OFF/ON;
-# these strings should be dropped when the switch is replaced by the generic (shared) one.
-off = 關閉
-on = 開啟
-
hour = 時
minute = 分
enable = 啟用
@@ -21,7 +16,7 @@ editAlarm = 編輯鬧鐘
delete = 刪除
snooze = 貪睡
-repeat = 重複
+repeat = 重複於
close = 關閉
save = 儲存
done = 完成
@@ -36,7 +31,7 @@ weekends = 周末
never = 永不
# see http://www.cplusplus.com/reference/clibrary/ctime/strftime/
-dateFormat = %B %e 日 %A
+dateFormat = %b %e 日 %A
countdown-lessThanAnHour = 鬧鐘將在 <strong>{{minute}}</strong> 後啟動。
countdown-moreThanAnHour = 鬧鐘將在 {{hours}} {{minutes}} 後啟動。
@@ -44,16 +39,24 @@ countdown-moreThanAnHour = 鬧鐘將在 {{hours}} {{minutes}} 後啟動。
nMinutes={[ plural(n) ]}
nMinutes[zero] = 不到一分鐘
nMinutes[one] = 一分鐘
+nMinutes[two] = {{n}} 分鐘
+nMinutes[few] = {{n}} 分鐘
+nMinutes[many] = {{n}} 分鐘
nMinutes[other] = {{n}} 分鐘
nRemainHours={[ plural(n) ]}
nRemainHours[zero] =
nRemainHours[one] = <strong>{{n}} 小時</strong>
+nRemainHours[two] = <strong>{{n}} 小時</strong>
+nRemainHours[few] = <strong>{{n}} 小時</strong>
+nRemainHours[many] = <strong>{{n}} 小時</strong>
nRemainHours[other] = <strong>{{n}} 小時</strong>
nRemainMinutes={[ plural(n) ]}
nRemainMinutes[zero] =
nRemainMinutes[one] = <strong>{{n}} 分鐘</strong>
+nRemainMinutes[two] = <strong>{{n}} 分鐘</strong>
+nRemainMinutes[few] = <strong>{{n}} 分鐘</strong>
+nRemainMinutes[many] = <strong>{{n}} 分鐘</strong>
nRemainMinutes[other] = <strong>{{n}} 分鐘</strong>
-
View
3  apps/clock/locales/locales.ini
@@ -1,5 +1,5 @@
-@import url(clock.en-US.properties)
@import url(alarms.en-US.properties)
+@import url(clock.en-US.properties)
[ar]
@import url(clock.ar.properties)
@@ -8,4 +8,5 @@
@import url(clock.fr.properties)
[zh-TW]
+@import url(alarms.zh-TW.properties)
@import url(clock.zh-TW.properties)
View
2  apps/communications/contacts/js/fb/fb_contact.js
@@ -347,6 +347,8 @@ fb.Contact = function(deviceContact, cid) {
dcontact[field] = fbdata[field];
});
+ // To support the case in which the contact does not have a local name
+ fb.mergeNames(dcontact, fbdata);
}
// Gets the data
View
29 apps/communications/contacts/js/fb/fb_contact_utils.js
@@ -231,9 +231,35 @@ fb.mergeContact = function(devContact, fbContact) {
});
}
+ // It is needed to merge names just in case the contact has no local name
+ fb.mergeNames(devContact, fbContact);
+
return devContact;
};
+fb.mergeNames = function(devContact, fbContact) {
+ var namesChanged = false;
+ var nameFields = ['givenName', 'familyName'];
+ nameFields.forEach(function(anameField) {
+ // If the device contact does not have name fields setted
+ // we use the Facebook ones
+ var fieldValue = devContact[anameField];
+ var fbValue = fbContact[anameField];
+ if ((!Array.isArray(fieldValue) || fieldValue.length === 0) &&
+ Array.isArray(fbValue) && fbValue.length > 0) {
+ namesChanged = true;
+ devContact[anameField] = (fieldValue && fieldValue[0]) || [];
+ devContact[anameField].push(fbValue[0]);
+ }
+ });
+
+ if (namesChanged) {
+ var givenName = devContact.givenName[0] || '';
+ var familyName = devContact.familyName[0] || '';
+ devContact.name = [givenName + ' ' + familyName];
+ }
+};
+
fb.getContactByNumber = function(number, onsuccess, onerror) {
var req = fb.contacts.getByPhone(number);
@@ -246,8 +272,7 @@ fb.getContactByNumber = function(number, onsuccess, onerror) {
// Only will be executed in the case of not loading fb.utils previously
// i.e. dialer and call log FB integration
-var fb = window.fb || {};
-fb.utils = window.fb.utils || {};
+fb.utils = this.fb.utils || {};
// Returns the mozContact associated to a UID in FB
fb.utils.getMozContactByUid = function(uid, onsuccess, onerror) {
View
52 apps/communications/contacts/locales/contacts.fr.properties
@@ -3,7 +3,7 @@ back = Retour
call = Appeler
edit = Modifier
cancel = Annuler
-done = Fait
+done = Fini
ok = OK
update = Mettre à jour
@@ -50,12 +50,12 @@ addFavorite = Ajouter aux favoris
removeFavorite = Supprimer des favoris
# Field labels
-label = Étiquette
+label = Type de numéro
mobile = Portable
-home = Maison
-work = Travail
+home = Domicile
+work = Bureau
personal = Personnel
-faxHome = Fax maison
+faxHome = Fax domicile
faxOffice = Fax bureau
faxOther = Autre fax
another = Autre
@@ -90,18 +90,32 @@ simContacts-importing = Import des contacts de la SIM…
simContacts-reading = Lecture de la SIM…
simContacts-storing = Stockage dans la SIM…
simContacts-error = Impossible d’importer les contacts de la SIM
-simContacts-imported = {{n}} contacts importés
+simContacts-imported3 = {[ plural(n) ]}
+simContacts-imported3[zero] = Aucun contact détecté sur la SIM à importer
+simContacts-imported3[one] = Un contact importé
+simContacts-imported3[two] = {{n}} contacts importés
+simContacts-imported3[few] = {{n}} contacts importés
+simContacts-imported3[many] = {{n}} contacts importés
+simContacts-imported3[other] = {{n}} contacts importés
# Social networks
-social-network = Réseaux sociaux
-social-link = Lier le contact
-social-unlink = Délier le contact
-facebook-import = Importer des amis Facebook
-show-profile = Afficher le profil Facebook
-msg-send = Message
-wall-post = Statut
-facebook = Facebook
-facebook-stats = {{imported}}/{{total}} amis importés
+social-network = Réseaux sociaux
+social-link = Ajouter le contact
+social-unlink = Retirer le contact
+social-unlink-confirm-title = Voulez-vous retirer cet ami ?
+social-unlink-confirm-accept = Retirer
+facebook-import = Importer des amis Facebook
+show-fb-profile = Afficher le profil Facebook
+msg-send = Message
+wall-post = Statut
+facebook = Facebook
+facebook-import-msg = {[ plural(imported) ]}
+facebook-import-msg[zero] = Aucun ami importé (sur {{total}})
+facebook-import-msg[one] = Un ami importé (sur {{total}})
+facebook-import-msg[two] = {{imported}}/{{total}} amis importés
+facebook-import-msg[few] = {{imported}}/{{total}} amis importés
+facebook-import-msg[many] = {{imported}}/{{total}} amis importés
+facebook-import-msg[other] = {{imported}}/{{total}} amis importés
# value selector
select_mobile = Choisir le portable
@@ -110,13 +124,15 @@ select_email = Choisir le courriel
# Settings related
contactsOrderBy = Trier par nom
importSim = Importer depuis la SIM
-importFb = Importer depuis Facebook
+importFb2 = Activer Facebook
+fbUpdateFriends = Mettre à jour les amis importés
cleaningFbData = Supprimer les données Facebook
loggingOutFb = Se déconnecter de Facebook
cleanFbConfirmMsg = Supprimer toutes les données Facebook ?
+renewPwdMsg = Votre mot de passe a changé sur Facebook. Veuillez le mettre à jour.
# No contacts
create-new = Créer un nouveau contact
import-now = Importer vos contacts depuis la SIM ou Facebook
-no-contacts = pas de contacts
-start-adding = commencer à les ajouter maintenant
+no-contacts = Pas de contacts
+start-adding = Commencer à les ajouter maintenant
View
47 apps/communications/contacts/locales/contacts.zh-TW.properties
@@ -78,6 +78,7 @@ legendTitleMain = 主要資訊
legendPhones = 電話號碼
legendEmail = 電子郵件地址
legendAddress = 住址
+settings = 設定
# search related
search-contact.placeholder = 搜尋
@@ -88,17 +89,51 @@ simContacts-import = 匯入 SIM 卡中的聯絡人
simContacts-importing = 正在匯入 SIM 卡中的聯絡人…
simContacts-reading = 正在自 SIM 卡讀取…
simContacts-storing = 正在儲存 SIM 卡聯絡人…
+simContacts-error = 無法自 SIM 卡中匯入連絡人
+simContacts-imported3 = {[ plural(n) ]}
+simContacts-imported3[zero] = 未於 SIM 卡上找到連絡人來匯入
+simContacts-imported3[one] = 已匯入 1 位聯絡人
+simContacts-imported3[two] = 已匯入 {{n}} 位連絡人
+simContacts-imported3[few] = 已匯入 {{n}} 位連絡人
+simContacts-imported3[many] = 已匯入 {{n}} 位連絡人
+simContacts-imported3[other] = 已匯入 {{n}} 位連絡人
# Social networks
-social-network = 社群網路
-social-link = 連結聯絡人
-social-unlink = 解除連結聯絡人
-facebook-import = 匯入 Facebook 上的朋友
-show-profile = 顯示個人資料
-facebook = Facebook
+social-network = 社群網路
+social-link = 連結聯絡人
+social-unlink = 解除連結聯絡人
+social-unlink-confirm-title = 您是否想要取消您朋友的連結?
+social-unlink-confirm-accept = 解除連結
+facebook-import = 匯入 Facebook 上的朋友
+show-fb-profile = 檢視 Facebook 個人資訊
+msg-send = 訊息
+wall-post = 動態時報貼文
+facebook = Facebook
+facebook-import-msg = {[ plural(imported) ]}
+facebook-import-msg[zero] = 未匯入朋友 (全部有 {{total}} 位)
+facebook-import-msg[one] = 已匯入一位朋友 (全部有 {{total}} 位)
+facebook-import-msg[two] = 已匯入 {{imported}}/{{total}} 位好友
+facebook-import-msg[few] = 已匯入 {{imported}}/{{total}} 位好友
+facebook-import-msg[many] = 已匯入 {{imported}}/{{total}} 位好友
+facebook-import-msg[other] = 已匯入 {{imported}}/{{total}} 位好友
# value selector
select_mobile = 選擇行動電話號碼
select_email = 選擇電子郵件地址
+# Settings related
+contactsOrderBy = 依照姓氏排序
+importSim = 自 SIM 卡匯入
+importFb2 = 啟用 Facebook
+fbUpdateFriends = 更新匯入的朋友
+cleaningFbData = 移除 Facebook 資料
+loggingOutFb = 自 Facebook 登出
+cleanFbConfirmMsg = 移除所有 Facebook 資料?
+renewPwdMsg = 您的 Facebook 密碼已更動。請更新。
+
+# No contacts
+create-new = 建立新連絡人
+import-now = 自您的 SIM 卡或 Facebook 帳號匯入連絡人
+no-contacts = 無連絡人
+start-adding = 開始新增連絡人吧
View
100 apps/communications/contacts/locales/fb/facebook.fr.properties
@@ -1,10 +1,90 @@
-close = Fermer
-import = Importer
-fbFriends = Amis Facebook
-selectAll = Tout sélectionner
-viewAll = Afficher tous les amis Facebook
-friendsWait1 = Veuillez patienter, nous nous connectons afin de récupérer votre liste d’amis
-friendsWait2 = Ceci peut prendre quelques minutes
-linkSelection = Choisir une recommandation
-friendsFound = {{numFriends}} amis à importer trouvés
-facebook = Facebook
+
+close = Fermer
+import = Importer
+update = Mettre à jour
+fbFriends = Amis Facebook
+selectAll = Tout sélectionner
+deselectAll = Tout désélectionner
+viewAll = Afficher tous les amis Facebook
+viewRecommend = Afficher uniquement les recommandations
+linkProposal = {[ plural(numFriends) ]}
+linkProposal[zero] = Aucun ami correspondant. Affichage de la liste entière
+linkProposal[one] = Choisir cette recommandation
+linkProposal[two] = Choisir une recommandation
+linkProposal[few] = Choisir une recommandation
+linkProposal[many] = Choisir une recommandation
+linkProposal[other] = Choisir une recommandation
+fbFriendsFound = {[ plural(numFriends) ]}
+fbFriendsFound[zero] = Tous vos amis ont été importés
+fbFriendsFound[one] = Un ami à importer trouvé
+fbFriendsFound[two] = {{numFriends}} amis à importer trouvés
+fbFriendsFound[few] = {{numFriends}} amis à importer trouvés
+fbFriendsFound[many] = {{numFriends}} amis à importer trouvés
+fbFriendsFound[other] = {{numFriends}} amis à importer trouvés
+facebook = Facebook
+
+# search related
+search-contact.placeholder = Rechercher
+noResults = Aucun contact trouvé
+done-search = Fini
+
+# Progress
+progressFB3ImportTitle = Import des amis dans Contacts
+progressFB3Import = {[ plural(current) ]}
+progressFB3Import[zero] = En attente…
+progressFB3Import[one] = {{current}}/{{total}} ami importé
+progressFB3Import[two] = {{current}}/{{total}} amis importés
+progressFB3Import[few] = {{current}}/{{total}} amis importés
+progressFB3Import[many] = {{current}}/{{total}} amis importés
+progressFB3Import[other] = {{current}}/{{total}} amis importés
+
+progressFB3UpdateTitle = Mise à jour des amis dans Contacts
+progressFB3Update = {[ plural(current) ]}
+progressFB3Update[zero] = En attente…
+progressFB3Update[one] = {{current}}/{{total}} ami mis à jour
+progressFB3Update[two] = {{current}}/{{total}} amis mis à jour
+progressFB3Update[few] = {{current}}/{{total}} amis mis à jour
+progressFB3Update[many] = {{current}}/{{total}} amis mis à jour
+progressFB3Update[other] = {{current}}/{{total}} amis mis à jour
+
+# Message
+message2 = Cela peut prendre quelques minutes
+messageLinking = Veuillez patienter, nous sommes en train d’ajouter vos amis à vos contacts.
+
+# Errors
+error1 = Erreur {{from}}
+error2 = Voulez-vous réessayer ?
+errorProposal = calcul des propositions
+errorFriends = récupération des amis
+errorLinking = ajout des contacts
+
+# Timeouts
+timeout1 = Temps d’attente dépassé {{from}}
+timeout2 = Voulez-vous réessayer ?
+timeoutProposal = calcul des propositions
+timeoutFriends = récupération des amis
+timeoutLinking = ajout des contacts
+
+# Wait
+wait1 = Veuillez patienter
+wait2 = Cela peut prendre quelques minutes
+waitProposal = Veuillez patienter, nous calculons une proposition.
+waitFriends = Veuillez patienter, nous nous connectons pour obtenir votre liste d’amis.
+
+curtainCancel = Annuler
+curtainRetry = Réessayer
+
+# Status
+friendsUpdated = {[ plural(numFriends) ]}
+friendsUpdated[zero] = Aucun ami mis à jour
+friendsUpdated[one] = Un ami mis à jour
+friendsUpdated[two] = {{numFriends}} amis mis à jour
+friendsUpdated[few] = {{numFriends}} amis mis à jour
+friendsUpdated[many] = {{numFriends}} amis mis à jour
+friendsUpdated[other] = {{numFriends}} amis mis à jour
+
+# Notification relogging is needed
+notificationLogin = Votre session Facebook n’est pas valide. Veuillez vous connecter
+
+# Error sync
+syncError = Une erreur s’est produite lors de la synchronisation des données de vos amis
View
99 apps/communications/contacts/locales/fb/facebook.zh-TW.properties
@@ -1,11 +1,90 @@
-close = 關閉
-import = 匯入
-fbFriends = Facebook 好友
-selectAll = 全選
-viewAll = 檢視所有的 Facebook 好友
-friendsWait1 = 請稍待。我們正在連線取得您的好友清單
-friendsWait2 = 這可能要花一點時間
-linkSelection = 選擇建議的好友
-friendsFound = 找到 {{numFriends}} 個可以匯入的好友
-facebook = Facebook
+close = 關閉
+import = 匯入
+update = 更新
+fbFriends = Facebook 好友
+selectAll = 全選
+deselectAll = 全部不選
+viewAll = 檢視所有的 Facebook 好友
+viewRecommend = 僅檢視推薦項目
+linkProposal = {[ plural(numFriends) ]}
+linkProposal[zero] = 沒有符合的朋友。改顯示全部
+linkProposal[one] = 選取建議項目
+linkProposal[two] = 選擇建議的好友
+linkProposal[few] = 選擇建議的好友
+linkProposal[many] = 選擇建議的好友
+linkProposal[other] = 選擇建議的好友
+fbFriendsFound = {[ plural(numFriends) ]}
+fbFriendsFound[zero] = 已匯入您所有的好友
+fbFriendsFound[one] = 找到一個可匯入的好友
+fbFriendsFound[two] = 找到 {{numFriends}} 個可以匯入的好友
+fbFriendsFound[few] = 找到 {{numFriends}} 個可以匯入的好友
+fbFriendsFound[many] = 找到 {{numFriends}} 個可以匯入的好友
+fbFriendsFound[other] = 找到 {{numFriends}} 個可以匯入的好友
+facebook = Facebook
+
+# search related
+search-contact.placeholder = 搜尋
+noResults = 找不到聯絡人
+done-search = 完成
+
+# Progress
+progressFB3ImportTitle = 正在將好友匯入至通訊錄
+progressFB3Import = {[ plural(current) ]}
+progressFB3Import[zero] = 請稍候…
+progressFB3Import[one] = 已匯入 {{current}}/{{total}} 位朋友
+progressFB3Import[two] = 已匯入 {{current}}/{{total}} 位朋友
+progressFB3Import[few] = 已匯入 {{current}}/{{total}} 位朋友
+progressFB3Import[many] = 已匯入 {{current}}/{{total}} 位朋友
+progressFB3Import[other] = 已匯入 {{current}}/{{total}} 位朋友
+
+progressFB3UpdateTitle = 正在更新通訊錄中的好友
+progressFB3Update = {[ plural(current) ]}
+progressFB3Update[zero] = 請稍候…
+progressFB3Update[one] = 已更新 {{current}}/{{total}} 位朋友
+progressFB3Update[two] = 已更新 {{current}}/{{total}} 位朋友
+progressFB3Update[few] = 已更新 {{current}}/{{total}} 位朋友
+progressFB3Update[many] = 已更新 {{current}}/{{total}} 位朋友
+progressFB3Update[other] = 已更新 {{current}}/{{total}} 位朋友
+
+# Message
+message2 = 這可能要花一點時間
+messageLinking = 請稍候。我們正為您連結朋友與其他聯絡人。
+
+# Errors
+error1 = 錯誤 {{from}}
+error2 = 再試一次?
+errorProposal = 正在計算請求
+errorFriends = 正在擷取朋友
+errorLinking = 正在連結聯絡人
+
+# Timeouts
+timeout1 = 超過時限 {{from}}
+timeout2 = 再試一次?
+timeoutProposal = 正在計算請求
+timeoutFriends = 正在擷取朋友
+timeoutLinking = 正在連結聯絡人
+
+# Wait
+wait1 = 請稍候
+wait2 = 這可能要花一點時間
+waitProposal = 請稍候。我們正在計算請求。
+waitFriends = 請稍候,我們正在連線取得您的朋友清單。
+
+curtainCancel = 取消
+curtainRetry = 重試
+
+# Status
+friendsUpdated = {[ plural(numFriends) ]}
+friendsUpdated[zero] = 未更新好友
+friendsUpdated[one] = 已更新一位朋友
+friendsUpdated[two] = 已更新 {{numFriends}} 位朋友
+friendsUpdated[few] = 已更新 {{numFriends}} 位朋友
+friendsUpdated[many] = 已更新 {{numFriends}} 位朋友
+friendsUpdated[other] = 已更新 {{numFriends}} 位朋友
+
+# Notification relogging is needed
+notificationLogin = 您的 Facebook 作業階段無效。請重新登入。
+
+# Error sync
+syncError = 同步您朋友的資料時發生錯誤。
View
41 apps/communications/dialer/locales/dialer.fr.properties
@@ -1,13 +1,26 @@
addNewNumber=Ajouter un nouveau numéro
addToExistingContact=Ajouter à un contact existant
all=Tous
-callAirplaneModeBody=Afin de passer un appel, désactivez le mode avion.
+callAirplaneModeMessage=Afin de passer un appel vous devez désactiver le mode avion dans les paramètres.
callAirplaneModeBtnOk=OK
callAirplaneModeTitle=Mode avion activé
-callLog=Historique
-calling=Appel
+callLog=Journal d’appels
+connecting=Appel
camera-a11y-button.aria-label=Raccrocher
cancel=Annuler
+cf-async=Asynchrone : {{ async }}\n
+cf-data=Données : {{ data }}\n
+cf-error=Une erreur s’est produite lors de la récupération de l’état ​​du renvoi d’appels.
+## LOCALIZATION NOTE cf-async, cf-data, cf-fax, cf-packet, cf-pad, cf-sms, cf-sync and cf-voice are the service the call forwarding is activate/inactive for.
+## LOCALIZATION NOTE Its variables might be a phone number or cf-inactive.
+cf-fax=FAX : {{ fax }}\n
+cf-inactive=Inactif
+cf-packet=Paquets : {{ packet }}\n
+cf-pad=PAD : {{ pad }}\n
+cf-sms=SMS : {{ sms }}\n
+cf-status=État du renvoi d’appels\n
+cf-sync=Synchrone : {{ sync }}\n
+cf-voice=Voix : {{ voice }}\n
confirm-deletion=Effacer les appels sélectionnés ?
createNewContact=Créer un nouveau contact
delete=Supprimer
@@ -28,13 +41,16 @@ ignore=Ignorer l’appel
incoming=Entrant
missed=Manqués
missedCall=Appel manqué
+mmi-error=Une erreur s’est produite lors de l’envoi du message
+mmi-session-expired=Session expirée
+mmi-successfully-sent=Message envoyé avec succès
no-logs-msg-1=Aucun appel enregistré
no-logs-msg-2=Débuter la communication
reply=Répondre
selectAll=Tout sélectionner
send=Envoyer
today=Aujourd’hui
-unknown=Inconnu
+unknown=Numéro inconnu
unlock-a11y-button.aria-label=Répondre
yesterday=Hier
USSD=USSD
@@ -42,6 +58,17 @@ sending=Envoi en cours…
ussd-services=Services {{ operator }}
type-your-response.placeholder=Saisissez votre réponse…
clear-all-text=Effacer tout le texte
-message-successfully-sent=MESSAGE ENVOYÉ AVEC SUCCÈS
-ussd-server-error=UNE ERREUR S’EST PRODUITE DURANT LA COMMUNICATION, VEUILLEZ RÉESSAYER PLUS TARD
-lineContactName={{ name }}… ou {{ n }} autre(s)
+## LOCALIZATION NOTE 'call' is an action verb
+call=Appeler
+
+## LOCALIZATION NOTE: contactNameWithOthers is displayed for missed calls when the number is associated with more than one contact. {{ name }} is the name of the first contact.
+## LOCALIZATION NOTE: case `zero` is never used, no need to translate it.
+contactNameWithOthers={[ plural(n) ]}
+contactNameWithOthers[zero]={{ name }}…
+contactNameWithOthers[one]={{ name }}… ou un autre
+contactNameWithOthers[two]={{ name }}… ou {{ n }} autres
+contactNameWithOthers[few]={{ name }}… ou {{ n }} autres
+contactNameWithOthers[many]={{ name }}… ou {{ n }} autres
+contactNameWithOthers[other]={{ name }}… ou {{ n }} autres
+
+settings=Paramètres
View
40 apps/communications/dialer/locales/dialer.zh-TW.properties
@@ -1,13 +1,26 @@
addNewNumber=新增號碼
addToExistingContact=新增到現有聯絡人資料
all=全部
-callAirplaneModeBody=若需要打電話,請先關閉飛航模式
+callAirplaneModeMessage=若要撥打電話,您需要在設定畫面停用飛航模式
callAirplaneModeBtnOk=確定
callAirplaneModeTitle=飛航模式已開啟
callLog=通話紀錄
-calling=撥號中
+connecting=連線中
camera-a11y-button.aria-label=已掛斷
cancel=取消
+## LOCALIZATION NOTE cf-async, cf-data, cf-fax, cf-packet, cf-pad, cf-sms, cf-sync and cf-voice are the service the call forwarding is activate/inactive for.
+## LOCALIZATION NOTE Its variables might be a phone number or cf-inactive.
+cf-async=非同步: {{ async }}\n
+cf-data=資料:{{ data }}\n
+cf-error=取得通話轉接狀態時發生錯誤
+cf-fax=傳真: {{ fax }}\n
+cf-inactive=停用
+cf-packet=封包: {{ packet }}\n
+cf-pad=PAD: {{ pad }}\n
+cf-sms=簡訊:{{ sms }}\n
+cf-status=通話轉接狀態\n
+cf-sync=同步: {{ sync }}\n
+cf-voice=語音:{{ voice }}\n
confirm-deletion=清除所選的來電?
createNewContact=建立新聯絡人
delete=刪除
@@ -28,14 +41,35 @@ ignore=忽略通話
incoming=內送
missed=未接
missedCall=未接來電
+mmi-error=傳送訊息時發生錯誤
+mmi-session-expired=Session 已過期
+mmi-successfully-sent=訊息已成功送出
no-logs-msg-1=未紀錄來電
no-logs-msg-2=立刻開始通訊
reply=回覆
selectAll=全選
send=傳送
today=今天
-unknown=未知
+unknown=未知號碼
unlock-a11y-button.aria-label=接聽
yesterday=昨天
+USSD=USSD
+sending=傳送中…
+ussd-services={{ operator }} 服務
+type-your-response.placeholder=輸入您的回應…
+clear-all-text=清除所有文字
+## LOCALIZATION NOTE 'call' is an action verb
+call=撥號
+## LOCALIZATION NOTE: contactNameWithOthers is displayed for missed calls when the number is associated with more than one contact. {{ name }} is the name of the first contact.
+## LOCALIZATION NOTE: case `zero` is never used, no need to translate it.
+contactNameWithOthers={[ plural(n) ]}
+contactNameWithOthers[zero]={{ name }}…
+contactNameWithOthers[one]={{ name }}… 或另一個人
+contactNameWithOthers[two]={{ name }}… 或其他 {{ n }} 個人
+contactNameWithOthers[few]={{ name }}… 或其他 {{ n }} 個人
+contactNameWithOthers[many]={{ name }}… 或其他 {{ n }} 個人
+contactNameWithOthers[other]={{ name }}… 或其他 {{ n }} 個人
+
+settings=設定
View
180 apps/communications/ftu/locales/ftu.fr.properties
@@ -0,0 +1,180 @@
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# PIN Code
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+pincode=Code PIN
+type_pin=Saisissez votre code PIN
+done=Fini
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Language
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+language=Langue
+english=Anglais
+dvorak=Anglais (Dvorak)
+spanish=Espagnol
+portuguese=Portugais du Brésil
+french=Français
+italian=Italien
+arabic=Arabe
+greek=Grec
+hebrew=Hébreu
+jp-kanji=Japonais
+jp-kanji-desc=Kanji
+traditionalChinese=Chinois traditionnel
+traditionalChinese-desc=Zhuyin
+simplifiedChinese=Chinois simplifié
+simplifiedChinese-desc=Pinyin
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# 3g
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+3g = Données mobiles
+dataConnection = Activer la connexion de données
+dataConnectionInfo = Activer la connexion de données mobiles maintenant vous permettra de configurer votre téléphone sans connexion Wi-Fi. Vous pourrez également l’activer plus tard dans l’application Paramètres. Assurez-vous de disposer d’un forfait de données auprès de votre opérateur afin d’éviter d’éventuels frais supplémentaires.
+caution = Avertissement
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Wifi
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+wifi=Wi-Fi
+shortStatus-connecting = Connexion…
+shortStatus-associated = Obtention d’une adresse IP…
+shortStatus-connected = Connecté
+shortStatus-connectingfailed = Échec de connexion
+shortStatus-disconnected = Hors ligne
+securedBy=Sécurité : {{capabilities}}
+security = Sécurité
+securityNone = Aucune
+securityOpen = Ouvert
+identity=Nom d’utilisateur
+identityInput.placeholder=Nom d’utilisateur
+password=Mot de passe
+passwordInput.placeholder=Mot de passe
+refresh = Rafraîchir
+noWifiFound = Aucun réseau trouvé
+join = Rejoindre
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Date & Time
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+dateAndTime = Date et heure
+setTimeAutomatically = Réglage automatique
+timezoneMessage = Fuseau horaire
+dateMessage = Date
+timeMessage = Heure
+timeZone = Fuseau horaire
+change = Modifier
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Import contacts
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+simContacts-import = Importer les contacts de la SIM
+simContacts-importing = Import des contacts de la SIM…
+simContacts-reading = Lecture de la SIM…
+simContacts-storing = Stockage dans la SIM…
+simContacts-error = Impossible d’importer les contacts de la SIM
+simContacts-imported3 = {[ plural(n) ]}
+simContacts-imported3[zero] = Aucun contact détecté sur la SIM à importer
+simContacts-imported3[one] = Un contact importé
+simContacts-imported3[two] = {{n}} contacts importés
+simContacts-imported3[few] = {{n}} contacts importés
+simContacts-imported3[many] = {{n}} contacts importés
+simContacts-imported3[other] = {{n}} contacts importés
+
+importContacts = Importer des contacts
+importSim = Importer depuis la SIM
+importFb = Importer depuis Facebook
+fb-checking = … vérification
+facebook-stats = {{imported}}/{{total}} amis importés
+notImportedYet = Pas encore importé
+otherAccount = Autres comptes
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# About your rights
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+about-your-rights-part-0 = {{brandShortName}} est un logiciel libre et ouvert, réalisé par une communauté de milliers de contributeurs dans le monde. Voici ce que vous devriez savoir :
+#TODO:about-your-rights-part-1 = {{brandShortName}} is made available to you under the terms of several open source licenses including the Mozilla Public License. A device running {{brandShortName}} may also contain proprietary software from third parties. Any code provided under open licenses give you the right to modify the source code and distribute your modified versions as long as you comply with their terms.
+about-your-rights-part-2 = Il ne vous est cédé aucun droit ou licence sur les marques déposées de la Fondation Mozilla ou de tiers, y compris et sans limitation, sur le nom et le logo de {{brandShortName}}.
+about-your-rights-part-3 = Certaines fonctionnalités de {{brandShortName}}, comme le rapporteur de plantages, vous permettent de fournir un retour à Mozilla. En choisissant d’envoyer ces informations, vous donnez à Mozilla la permission d’utiliser ce retour pour améliorer ses produits, de le publier sur ses sites web et de le distribuer.
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Sharing Performance Data
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+sharing-performance-data = Envoi des données de performances
+telemetry-allows = La télémétrie vous permet d’envoyer à Mozilla des informations détaillées concernant les performances, le matériel, l’utilisation et les personnalisations de votre appareil {{brandShortName}}. Nous utilisons ces informations pour améliorer nos produits, les rendre plus rapides et plus adaptés.
+learn-more-at = Plus d’informations sur
+external-telemetry.title = Télémétrie
+learn-about-information = Apprenez-en davantage sur la façon dont Mozilla gère vos informations en visitant
+external-privacy.title= Confidentialité
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# OS privacy
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+welcomeBrowser = Bienvenue dans {{brandShortName}}, le système d’exploitation libre et ouvert de Mozilla. Notre mission est de promouvoir l’ouverture, l’innovation et de faire en sorte que la puissance du Web reste entre vos mains.
+learnHow = Apprenez-en davantage sur la façon dont Mozilla gère vos informations dans notre
+privacyPolicy = politique de confidentialité
+aboutBrowser = À propos de {{brandShortName}}
+aboutYourPrivacy2 = Votre vie privée
+mozillaCommunity2 = En utilisant {{brandShortName}}, vous rejoignez une communauté modiale qui œuvre à un avenir meilleur pour le Web. Si vous désirez en apprendre davantage sur la communauté Mozilla, nos autres produits et les évènements proches de chez vous, saisissez votre adresse électronique ci-dessous.
+collaborate2 = Je souhaite aider à rendre {{brandShortName}} plus rapide et plus facile d’utilisation en partageant des informations concernant les performances de mon téléphone.
+learnMore = En apprendre plus.
+emailAddress = Adresse électronique
+browserPrivacyChoices = Préférences de confidentialité de {{brandShortName}}
+privacy-b2g={{brandShortName}}
+privacy-b2g.title={{brandShortName}}
+privacy-marketplace=Marketplace
+# please don't translate the brand name
+privacy-marketplace.title={{privacy-marketplace}}
+privacy-e-me=everything.me
+# please don't translate the brand name
+privacy-e-me.title={{privacy-e-me}}
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Navigation bar
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+back=retour
+next=suivant
+join=rejoindre
+skip=Passer
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Welcome OS
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+thatsIt = Et voilà !
+startYourPhone = Débutez la visite guidée de votre téléphone !
+joinTutorial = Suivons ensemble un rapide tutoriel pour découvrir votre nouveau téléphone.
+enjoyYourPhone = Vous êtes prêt à profiter de votre nouveau téléphone.
+optionsAvailable = Vous pouvez changer la langue, la date/l’heure et la connexion Wi-Fi dans les paramètres.
+letsGo = C’est parti
+startTour = Débuter la visite guidée
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Tutorial
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+step1 = Retrouvez toutes les applications en faisant glisser de gauche à droite.
+step2 = Un appui long sur l’icône d’une application vous permet d’organiser et de supprimer des applications.
+step3 = Faites glisser vos applications courantes dans la barre d’application pour un accès rapide.
+step4 = Faire glisser vers le bas la barre de status permet d’accéder aux notifications et aux utilitaires.
+step5 = Le panneau des utilitaires vous donne un accès rapide aux notifications.
+#TODO:step6 = See your accounts credit, phone and data use.
+step7 = Accédez rapidement aux paramètres.
+step8 = Basculez rapidement entre vos différentes tâches en effectuant un appui long sur le bouton Accueil.
+step9 = Faites glisser à gauche et à droite pour naviguer, touchez pour changer d’application.
+step10 = Faites glisser une application vers le haut pour la fermer.
+
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+# Offline Error Dialog
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+offline-dialog-title=Vous devez être connecté à Internet pour afficher la page.
+offline-dialog-text=Veuillez revenir en arrière et vous connecter à Internet. Vous pouvez également afficher cette page plus tard depuis l’application Paramètres ou en saisissant {{url}} dans n’importe quel navigateur web.
+OK=OK
View
133 apps/communications/ftu/locales/ftu.zh-TW.properties
@@ -0,0 +1,133 @@
+# Offline Error Dialog
+#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#=#
+
+pincode=PIN 碼
+type_pin=輸入您的 PIN 碼
+done=完成
+
+language=語言
+english=英文
+dvorak=英文 (Dvorak)
+spanish=西班牙文
+portuguese=巴西葡萄牙文
+french=法文
+italian=義大利文
+arabic=阿拉伯文
+greek=希臘文
+hebrew=希伯來文
+jp-kanji=日文
+jp-kanji-desc=漢字
+traditionalChinese=正體中文
+traditionalChinese-desc=注音
+simplifiedChinese=簡體中文
+simplifiedChinese-desc=拼音
+
+3g = 行動數據
+dataConnection = 啟用數據連線
+dataConnectionInfo = 現在啟用數據連線將讓您可以在沒有 Wi-Fi 連線的情況下設定手機。您也可以稍候再到設定畫面中啟用。請記得確定您的電信商
+caution = 警告
+
+wifi=Wi-Fi
+shortStatus-connecting = 連線中…
+shortStatus-associated = 正在取得 IP 地址…
+shortStatus-connected = 已連線
+shortStatus-connectingfailed = 連線失敗
+shortStatus-disconnected = 離線
+securedBy=使用 {{capabilities}} 加密
+
+security = 安全性
+securityNone = 無
+securityOpen = 開放
+identity=使用者
+identityInput.placeholder=使用者
+password=密碼
+passwordInput.placeholder=密碼
+refresh = 更新
+noWifiFound = 找不到網路
+join=加入
+
+dateAndTime = 日期與時間
+setTimeAutomatically = 自動設定
+timezoneMessage = 時區
+dateMessage = 日期
+timeMessage = 時間
+timeZone = 時區
+change = 變更
+
+simContacts-import = 匯入 SIM 卡中的聯絡人
+simContacts-importing = 正在匯入 SIM 卡中的聯絡人…
+simContacts-reading = 正在自 SIM 卡讀取…
+simContacts-storing = 正在儲存 SIM 卡聯絡人…
+simContacts-error = 無法自 SIM 卡中匯入連絡人
+simContacts-imported3 = {[ plural(n) ]}
+simContacts-imported3[zero] = 未於 SIM 卡上找到連絡人來匯入
+simContacts-imported3[one] = 已匯入 1 位聯絡人
+simContacts-imported3[two] = 已匯入 {{n}} 位連絡人
+simContacts-imported3[few] = 已匯入 {{n}} 位連絡人
+simContacts-imported3[many] = 已匯入 {{n}} 位連絡人
+simContacts-imported3[other] = 已匯入 {{n}} 位連絡人
+importContacts = 匯入聯絡人
+importSim = 自 SIM 卡匯入
+importFb = 自 Facebook 匯入
+fb-checking = … 檢查中
+facebook-stats = 已匯入 {{imported}}/{{total}} 位好友
+notImportedYet = 尚未匯入
+otherAccount = 其他帳號
+
+about-your-rights-part-0={{brandShortName}} 是一套自由且開放原始碼的軟體,由來自世界各地數千位成員組成的社群所打造。有一些您應該知道的事:
+about-your-rights-part-1={{brandShortName}} 是基於 Mozilla 公眾授權條款中的條件所提供給您的。這表示您可以使用、複製、或散布 {{brandShortName}} 給其他人。歡迎您自行修改 {{brandShortName}} 的原始碼以滿足您的需求;Mozilla 公眾授權條款也同時賦予您散佈您所修改的版本的權利。
+about-your-rights-part-2=您並未被授權使用 Mozilla 基金會或任何相關部門的商標,包含但不限於 {{brandShortName}} 的暫用名稱或暫用圖示。您可以在這裡找到更多關於商標的資訊。
+about-your-rights-part-3={{brandShortName}} 當中的一些功能,像是程式錯誤回報員,將會讓您可以選擇是否要送出回饋給 Mozilla。在送出回饋時,您必須授權 Mozilla 使用您所送出的回饋內容以改善其產品、發布回饋內容於其網站,並散佈這些使用者回饋。
+
+sharing-performance-data = 分享效能資料
+telemetry-allows = Telemetry 讓您可以傳送您 {{brandShortName}} 的裝置中關於效能、硬體配備、使用與自訂方式等詳細資訊給 Mozilla。我們將會使用此資訊來幫助改善產品,讓產品變得更好、效能更快。
+learn-more-at = 了解更多於
+external-telemetry.title = Telemetry
+learn-about-information = 了解 Mozilla 如何處理您的資訊,於
+external-privacy.title= 隱私權保護政策
+
+welcomeBrowser = 歡迎使用 {{brandShortName}},一套來自 Mozilla,自由且開放原始碼的作業系統。我們的使命是透過將網路的威力保存於您的雙手之間,來推廣開放、創新、與機會。
+learnHow = 於
+privacyPolicy = 隱私權保護政策
+aboutBrowser = 關於 {{brandShortName}}
+aboutYourPrivacy2 = 您的隱私權
+mozillaCommunity2 = 當您使用 {{brandShortName}} 時,您就已經成為全球社群的一員,幫助我們打造網路更光明的未來。若您想要了解更多關於 Mozilla 社群的資訊、Mozilla 其他的產品、或是在您附近所舉辦的活動,請在下面輸入您的電子郵件地址。
+collaborate2 = 我想要分享手機的效能資訊來幫助 {{brandShortName}} 變得更快、更好用。
+learnMore = 了解更多資訊。
+emailAddress = 電子郵件地址
+browserPrivacyChoices = {{brandShortName}} 隱私選項
+privacy-b2g={{brandShortName}}
+privacy-b2g.title={{brandShortName}}
+privacy-marketplace=商城
+# please don't translate the brand name
+privacy-marketplace.title={{privacy-marketplace}}
+privacy-e-me=everything.me
+# please don't translate the brand name
+privacy-e-me.title={{privacy-e-me}}
+
+back=上一步
+next=下一步
+skip=略過
+thatsIt = 就這麼簡單!
+startYourPhone = 開始您的手機導覽!
+joinTutorial = 和我們一起參加您新手機的快速教學。
+enjoyYourPhone = 一切就緒,盡情享受您的新手機吧!
+optionsAvailable = 您可以在「設定」中更改語言,日期/時間,以及 Wi-Fi 連線。
+letsGo = 出發
+startTour = 開始導覽
+
+step1 = 從左向右滑過手指來尋找應用程式。
+step2 = 按住應用程式圖示可讓您整理、刪除應用程式。
+step3 = 將您常用的程式拖曳至快速啟動列便可快速存取。
+step4 = 將狀態列往下滑可顯示通知與小工具。
+step5 = 公用程式匣讓您可快速存取通知。
+step6 = 查看您的帳號可用餘額、手機與數據使用情況。
+step7 = 快速存取設定。
+step8 = 按住首頁按鈕可以快速切換工作。
+step9 = 從左向右滑動手指可以瀏覽,點按可以切換應用程式。
+step10 = 將應用程式滑開可把它關閉。
+offline-dialog-title=您必須連線到網際網路才能檢視此頁面。
+offline-dialog-text=請回到上一頁並連線到網際網路。您也可以稍後再到手機選項,或是在瀏覽器中輸入 {{url}} 來檢視此頁面。
+OK=確定
+
+
View
8 apps/communications/ftu/locales/locales.ini
@@ -1 +1,7 @@
-@import url(ftu.en-US.properties)
+@import url(ftu.en-US.properties)
+
+[fr]
+@import url(ftu.fr.properties)
+
+[zh-TW]
+@import url(ftu.zh-TW.properties)
View
69 apps/costcontrol/locales/costcontrol.fr.properties
@@ -1,22 +1,23 @@
# cost control
# Note: the space between "Cost" and "Control" is non-break space in Unicode.
# Note: "Cost Control" is the widget name and should not be translated
-topup-confirmation-title = Cost Control
-topup-confirmation-message = Code de recharge confirmé.
+topup-confirmation-title = Contrôle des coûts
+topup-confirmation-message = Code de recharge confirmé
topup-incorrectcode-title = Contrôle des coûts
-topup-incorrectcode-message = Code de recharge invalide. Veuillez le ressaisir.
+topup-incorrectcode-message2 = Code saisi incorrect. Veuillez réessayer.
updating = Mise à jour
yesterday = Hier
today = Aujourd’hui
never = Jamais
-magnitude = {{value}} {{unit}}
-
# In the HTML
balance = Solde
-balance-error-message = Erreur de mise à jour du solde, réessayez manuellement.
-on-roaming-message = Itinérance — mise à jour automatique du solde inactif. Des surcoûts peuvent s’appliquer.
+on-roaming-message = Itinérance — mise à jour automatique du solde inactive. Des surcoûts peuvent s’appliquer.
+balance-error-message = Erreur de mise à jour du solde. Réessayez manuellement.
+airplane-mode-error-message = Mode avion : mise à jour du solde et rechargement désactivés.
+disable-airplane-mode = Voulez-vous désactiver le mode avion pour mettre à jour ou recharger ?
+no-coverage-error-message = Aucune couverture : mise à jour du solde et rechargement désactivés.
top-up = Code de recharge
enter-top-up-code = Saisissez le code de recharge
@@ -25,9 +26,9 @@ wait-for-confirmation = Vous allez recevoir un message de confirmation
incorrect-code = Le dernier code saisi était invalide. Veuillez réessayer.
topup-error = Désolé, impossible de recharger pour le moment.
application-error-title = Service inaccessible
-application-error-message = Prenez contact avec un représentant de la société.
+application-error-message = Prenez contact avec un représentant de la société
service-unavailable-title = Service inaccessible
-service-unavailable-message = Aucune mise à jour ni recharge n’est actuellement possible. Merci de réessayer.
+service-unavailable-message = Aucune mise à jour ni recharge n’est actuellement possible. Veuillez réessayer plus tard.
data-usage = Données consommées
update-button = Mise à jour
@@ -35,8 +36,9 @@ topup-button = Recharge
topup-ussd-button = Recharger la carte et payer
ok = OK
-top-up-in-progress = Rechargement en cours.
-on-topup-not-confirmed-title = Rechargement non confirmé.
+top-up-in-progress = Rechargement en cours
+top-up-timed-out = Le rechargement met trop de temps, actualisez votre solde ou rechargez à nouveau.
+on-topup-not-confirmed-title = Rechargement non confirmé
on-topup-not-confirmed-message = Essayez de mettre à jour votre solde ou de recharger.
send = envoyer
plantype-setup-title = Mon compte Internet/téléphone est de type
@@ -45,10 +47,9 @@ postpaid = Paiement selon consommation
phoneactivity = Appels téléphoniques
short-date-format = %e %b
telephony = Téléphonie
-sms-sent = SMS envoyé
-call-made = Appel passé
+sms-sent = SMS envoyés
+call-made = Appels passés
settings = Paramètres
-limit = Limite
low-balance-alert = Alerte, solde faible
low-balance-explanation = Me prévenir quand mon solde est sous le seuil
phone-and-internet-data-report = Rapport de consommation Internet/téléphone
@@ -80,7 +81,7 @@ sunday-abbr = Dim
billing-cycle-ends = Fin de la période de suivi
tracking-will-reset = Le suivi repartira à zéro depuis cette date
yes = Oui
-done = Terminé
+done = Fini
confirmation = Confirmation
reset-confirmation-warning = Toutes les données courantes seront supprimées. Voulez-vous vraiment tout remettre à zéro ?
reset = Remettre à zéro
@@ -88,8 +89,40 @@ not-set = Non défini
used = Utilisé
limit-passed = Limite dépassée
limit = Limite
+data-limit-header = Limite d’utilisation des données
data-limit-alert = Alerte d’utilisation des données
data-limit-value = Me prévenir lorsque j’ai utilisé
-data-limit-dialog-title = Saisissez une limite d’utilisation des données mobiles
-data-limit-dialog-explanation = La vitesse de connexion est réduite au-delà de la limite. Elle sera utilisée comme référence pour vérifier l’utilisation réelle des données mobiles.
-3g-data-usage = Utilisation des données 3G
+data-limit-dialog-title2 = Saisissez un niveau d’alerte pour les données mobiles
+data-limit-dialog-explanation2 = La vitesse de connexion est réduite au-delà de la limite. Vérifiez auprès de votre fournisseur de service pour définir un niveau d’alerte approprié.
+3g-data-usage = Données 3G consommées
+3g-usage = 3G consommée
+wifi-usage = Wi-Fi consommé
+mobile-usage = Utilisation mobile
+select-plan-type = Sélectionnez votre type de forfait
+im-prepaid = Prépayé
+#TODO:im-prepaid-controle = I’m Pre-paid / Controle
+im-postpaid = Abonnement
+set-balance-reminders = Définir les alertes de solde
+set-internet-report = Définir le rapport et les alertes Internet
+set-internet-reminders = Définir les alertes Internet
+set-a-data-use-reminder = Définir une alerte pour l’utilisation des données
+set-data-report-and-reminder = Définir le rapport et l’alerte pour les données
+set-internet-data-report = Définir le rapport des données Internet
+reset-report = Réinitialiser le rapport
+reset-tracking = Réinitialiser le suivi
+next = Suivant
+back = Retour
+lets-go = C’est parti !
+alert = Alerte
+alert-limit = Niveau d’alerte
+fte-welcome-title = Bienvenue
+fte-welcome-message = Enregistrez l’activité de votre téléphone et des données.
+new-sim-inserted = Nouvelle SIM insérée
+new-sim-inserted-carrier = Nouvelle SIM {{carrier}} insérée
+new-sim-inserted-all-available = Configurer le rapport du téléphone et des données
+new-sim-inserted-only-data-available = Rapport du téléphone indisponible, configurer le rapport des données
+#TODO:data-limit-notification-title = {{limit}} data usage
+#TODO:data-limit-notification-text = mobile data usage is at level set
+low-balance-notification-title = Solde faible
+low-balance-notification-text = {{remaining}} de crédit téléphonique restant
+zero-balance-message = Solde épuisé, aucun crédit téléphonique restant.
View
55 apps/costcontrol/locales/costcontrol.zh-TW.properties
@@ -4,17 +4,22 @@
topup-confirmation-title = 成本控制
topup-confirmation-message = 儲值成功。
topup-incorrectcode-title = 成本控制
-topup-incorrectcode-message = 輸入了不正確的儲值代碼,請再試一次
+topup-incorrectcode-message2 = 輸入的代碼不正確。請重試
updating = 更新中
yesterday = 昨天
today = 今天
never = 永不
+magnitude = {{value}} {{unit}}
+
# In the HTML
balance = 餘額
on-roaming-message = 漫遊中: 已關閉自動餘額更新。您更新可用餘額時可能會被收取附加費用。
balance-error-message = 餘額更新錯誤,請手動再試一次。
+airplane-mode-error-message = 飛航模式:餘額更新與儲值功能已關閉。
+disable-airplane-mode = 您是否想要停用飛航模式以更新或儲值餘額?
+no-coverage-error-message = 無網路覆蓋:餘額更新或儲值功能已關閉。
top-up = 儲值
enter-top-up-code = 輸入儲值代碼
@@ -24,7 +29,7 @@ incorrect-code = 上次輸入的代碼不正確,請重新輸入。
topup-error = 抱歉,目前暫時無法儲值。
application-error-title = 無法使用服務
-application-error-message = 請聯絡您的公司代表。
+application-error-message = 請聯絡您的公司客服人員
service-unavailable-title = 無法使用服務
service-unavailable-message = 目前無法儲值也無法更新餘額資訊,請稍候並再試一次。
@@ -34,8 +39,9 @@ topup-button = 使用代碼儲值
topup-ussd-button = 儲值並付費
ok = 確定
-top-up-in-progress = 儲值中。
-on-topup-not-confirmed-title = 儲值未確認。
+top-up-in-progress = 儲值中
+top-up-timed-out = 您未在時限內完成儲值,請再次更新餘額或重新儲值。
+on-topup-not-confirmed-title = 儲值未確認
on-topup-not-confirmed-message = 請更新您的餘額資訊,或再儲值一次。
send = 傳送
plantype-setup-title = 我的通話與網際網路費率為
@@ -47,7 +53,6 @@ telephony = 通話
sms-sent = 已傳送的簡訊
call-made = 已撥打的電話
settings = 設定
-limit = 限制
low-balance-alert = 餘額不足警示
low-balance-explanation = 低於多少時警告我
phone-and-internet-data-report = 電話與網路數據報告
@@ -83,4 +88,44 @@ done = 完成
confirmation = 確認
reset-confirmation-warning = 所有目前的資料將會被刪除,您確定要重設嗎?
reset = 重設
+not-set = 未設定
+used = 已用
+limit-passed = 已超過限制
+limit = 限制
+data-limit-header = 數據用量限制
+data-limit-alert = 數據連線使用警示
+data-limit-value = 通知我,當使用超過
+data-limit-dialog-title2 = 輸入行動數據限制警示
+data-limit-dialog-explanation2 = 網路使用量超過限制後連線速度將會下降。請洽詢您的電信業者以設定合適的警示標準。
+3g-data-usage = 3G 數據使用量
+3g-usage = 3G 用量
+wifi-usage = Wi-Fi 用量
+mobile-usage = 行動用量
+select-plan-type = 選取您的方案類型
+im-prepaid = 我是預付
+im-prepaid-controle = 我是預付 / Controle
+im-postpaid = 我是後付
+set-balance-reminders = 設定餘額提醒
+set-internet-report = 設定網際網路報告與提醒
+set-internet-reminders = 設定網際網路提醒
+set-a-data-use-reminder = 設定數據使用提醒
+set-data-report-and-reminder = 設定數據報告與提醒
+set-internet-data-report = 設定網際網路數據報告
+reset-report = 重設報告
+next = 下一頁
+back = 上一頁
+lets-go = 出發!
+alert = 警示
+alert-limit = 警示限制
+fte-welcome-title = 歡迎
+fte-welcome-message = 開始追蹤您的手機與數據活動。
+new-sim-inserted = 已插入新的 SIM 卡
+new-sim-inserted-carrier = 已插入新的 {{carrier}} SIM 卡
+new-sim-inserted-all-available = 設置手機與數據報告
+new-sim-inserted-only-data-available = 手機報告無法使用,設置數據報告
+data-limit-notification-title = {{limit}} 數據用量
+data-limit-notification-text = 行動數據用量已達設定等級
+low-balance-notification-title = 餘額低
+low-balance-notification-text = 剩餘 {{remaining}} 通話額度
+zero-balance-message = 餘額已歸零,無剩餘通話額度。
View
81 apps/email/locales/email.fr.properties
@@ -21,9 +21,11 @@ setup-completed-label=C’est fini !
setup-add-another-account=Ajouter un autre compte
setup-show-mail=Continuer vers les messages
-setup-error-bad-user-or-pass=Nom d’utilisateur ou mot de passe invalide
+setup-error-bad-user-or-pass=Nom d’utilisateur ou mot de passe incorrect
setup-error-not-authorized=Le serveur répond que vous n’êtes pas autorisé à créer un compte
setup-error-unknown=Une erreur inconnue s’est produite
+setup-error-needs-app-pass=Vous devez utiliser un mot de passe spécifique à l’application pour l’authentification forte de vos comptes Gmail
+setup-error-imap-disabled=Vous devez activer IMAP pour votre compte Gmail
setup-manual-config=Configurer le compte manuellement
@@ -42,15 +44,24 @@ setup-manual-port-placeholder=Numéro de port
setup-manual-username-placeholder=Nom d’utilisateur
setup-bad-password-header=Mauvais mot de passe
-setup-bad-password=Impossible de se connecter sur le serveur. Peut-être le mot de passe est-il invalide ?
-setup-fix-password=Réessayer avec un nouveau mot de passe
+setup-bad-password=Impossible de s’identifier sur le serveur. Peut-être le mot de passe est-il incorrect ?
+setup-fix-password=Réessayer avec un mot de passe différent
+setup-gmail-twofactor-header=Authentification forte activée
+setup-gmail-twofactor-message=Vous devez saisir ci-dessous un mot de passe spécifique à l’application.
+setup-gmail-twofactor-fix=Utiliser le mot de passe de l’application
+setup-gmail-imap-header=IMAP désactivé
+setup-gmail-imap-message=Vous devez activer IMAP sur votre compte Gmail
+setup-gmail-imap-retry=Réessayer
settings-main-header=Paramètres message
settings-close=Fermer
-settings-done=Fait
+settings-done=Fini
settings-account-section=Comptes
settings-account-add=Ajouter un compte
settings-account-delete=Supprimer le compte
+settings-account-delete-prompt=Voulez-vous vraiment supprimer votre compte de messagerie {{account}} ? Vous devrez télécharger à nouveau vos messages si vous re-créez ce compte.
+settings-account-delete-cancel=Annuler
+settings-account-delete-confirm=Supprimer
settings-about-section=À propos
settings-general-section=Paramères généraux
@@ -78,16 +89,16 @@ settings-hostname=Nom d’hôte
settings-port=Port
settings-username=Nom d’utilisateur
settings-password=Mot de passe
+settings-new-password=Nouveau mot de passe
settings-save=Enregistrer
-settings-password-empty=Le mot de passe ne peut être vide !
+settings-password-empty=Le champ mot de passe ne peut être vide
+settings-synchronize-auto=Automatiquement
settings-synchronize-one-day=Un jour
settings-synchronize-three-days=Trois jours
settings-synchronize-one-week=Une semaine
settings-synchronize-two-weeks=Deux semaines
settings-synchronize-one-month=Un mois
-settings-synchronize-three-months=Trois mois
-settings-synchronize-six-months=Six mois
settings-synchronize-all=Tous les messages
accounts-header=Comptes
@@ -107,6 +118,16 @@ compose-to=À
compose-cc=Cc
compose-bcc=Cci
compose-subject=Sujet
+compose-discard-message=Effacer le message ?
+compose-discard-confirm=Effacer
+compose-sending-message=Envoi du message
+compose-send-message-failed=Échec de l’envoi du message
+
+dialog-button-ok=OK
+
+attachment-size-kib={{kilobytes}}Ko
+
+message-attachment-view.textContent=Afficher
message-edit-menu-star=Favoris
message-edit-menu-unstar=Non favoris
@@ -124,14 +145,16 @@ message-multiedit-header[few] = {{ n }} sélectionnés
message-multiedit-header[many] = {{ n }} sélectionnés
message-multiedit-header[other] = {{ n }} sélectionnés
+browse-to-url-prompt = Ouvrir l’URL ? : {{ url }}
+
message-search-from=De
message-search-to
-message-search-subject=Objet
+message-search-subject=Sujet
message-search-body=Corps
message-search-all=Tout
message-search-input.placeholder=Rechercher dans les messages
-message-search-cancel-accessible=annuler la recherche
+message-search-cancel-accessible=Annuler la recherche
message-download-images={[ plural(n) ]}
message-download-images[one] = Ce message contient une image. Cliquez pour la télécharger.
@@ -153,16 +176,24 @@ message-multiedit-delete-confirm[other] = Supprimer {{ n }} messages ?
messages-syncing=Chargement des messages
messages-sync-more=Charger plus de messages depuis le serveur
messages-folder-empty=Pas de message dans ce dossier
+messages-search-empty=Aucune correspondance dans les messages du cache local
messages-folder-select=Choisir un dossier
message-contact-menu-view=Voir le contact
message-contact-menu-reply=Répondre
folder-list-header=Dossiers
+account-last-synced-label=Dernière synchronisation :
+account-never-synced=Jamais
reply-quoting-wrote={name} a écrit
forward-original-message=Message d’origine
+# L10n note: These are the labels we use when displaying the envelope info for a
+# message that is forwarded inline. While automatic recovery of this
+# information by clients is made difficult by these strings regularly being
+# localized, we attempt to remain consistent with apps such as Thunderbird for
+# at least English.
forward-header-subject=Sujet
forward-header-date=Date
forward-header-from=De
@@ -170,25 +201,57 @@ forward-header-reply-to=Répondre à
forward-header-to=Pour
forward-header-cc=CC
+# Localized folder names for IMAP servers. Because the IMAP standard did not
+# originally specify a way to express meta-data about folders, folders may be
+# named in English to express their purpose. Then e-mail clients (or webmail
+# interfaces) localize these values. We do this too, following in the
+# footsteps of Thunderbird.
+folder-inbox=Courrier entrant
+folder-sent=Envoyés
+folder-drafts=Brouillons
+folder-trash=Corbeille
+folder-queue=Messages en attente
+folder-junk=Indésirables
+folder-archives=Archives
+
toaster-undo=Annuler
toaster-retry=Réessayer
toaster-message-star={[ plural(n) ]}
toaster-message-star[one]=Un message marqué comme suivi
+toaster-message-star[two]={{ n }} messages marqués comme suivis
+toaster-message-star[few]={{ n }} messages marqués comme suivis
+toaster-message-star[many]={{ n }} messages marqués comme suivis
toaster-message-star[other]={{ n }} messages marqués comme suivis
toaster-message-unstar={[ plural(n) ]}
toaster-message-unstar[one]=Un message marqué comme non suivi
+toaster-message-unstar[two]={{ n }} messages marqués comme non suivis
+toaster-message-unstar[few]={{ n }} messages marqués comme non suivis
+toaster-message-unstar[many]={{ n }} messages marqués comme non suivis
toaster-message-unstar[other]={{ n }} messages marqués comme non suivis
toaster-message-read={[ plural(n) ]}
toaster-message-read[one]=Un message marqué comme lu
+toaster-message-read[two]={{ n }} messages marqués comme lus
+toaster-message-read[few]={{ n }} messages marqués comme lus
+toaster-message-read[many]={{ n }} messages marqués comme lus
toaster-message-read[other]={{ n }} messages marqués comme lus
toaster-message-unread={[ plural(n) ]}
toaster-message-unread[one]=Un message marqué comme non lu
+toaster-message-unread[two]={{ n }} messages marqués comme non lus
+toaster-message-unread[few]={{ n }} messages marqués comme non lus
+toaster-message-unread[many]={{ n }} messages marqués comme non lus
toaster-message-unread[other]={{ n }} messages marqués comme non lus
toaster-message-move={[ plural(n) ]}
toaster-message-move[one]=Un message déplacé
+toaster-message-move[two]={{ n }} messages déplacés
+toaster-message-move[few]={{ n }} messages déplacés
+toaster-message-move[many]={{ n }} messages déplacés
toaster-message-move[other]={{ n }} messages déplacés
toaster-message-delete={[ plural(n) ]}
toaster-message-delete[one]=Un message supprimé
+toaster-message-delete[two]={{ n }} messages supprimés
+toaster-message-delete[few]={{ n }} messages supprimés
+toaster-message-delete[many]={{ n }} messages supprimés
toaster-message-delete[other]={{ n }} messages supprimés
+toaster-retryable-syncfailed=Impossible de se connecter au serveur
form-clear-input=Effacer le texte
View
124 apps/email/locales/email.zh-TW.properties
@@ -10,20 +10,48 @@ setup-gmail-account=Gmail 帳號
setup-other-email=其他電子郵件帳號
setup-info-name-placeholder=姓名
-setup-info-email-placeholder=Email 位址
+setup-info-email-placeholder=電子郵件地址
setup-info-password-placeholder=密碼
setup-info-next=下一步
-setup-progress-wait=請稍候,我將為您設定帳號
+setup-progress-wait=請稍待您的帳號設定完成
setup-completed-header=郵件帳號設定
setup-completed-label=已完成!
setup-add-another-account=新增其他帳號
setup-show-mail=繼續到郵件程式
+setup-error-bad-user-or-pass=無效的使用者名稱或密碼
+setup-error-not-authorized=伺服器回應您未被授權建立帳號
+setup-error-unknown=發生未知錯誤
+setup-error-needs-app-pass=您必須為啟用兩步驟驗證的 Gmail 帳號使用應用程式專用密碼
+setup-error-imap-disabled=您必須啟用您 Gmail 帳號的 IMAP 服務。
+
+setup-manual-config=手動設定帳號
+
+setup-manual-config-header=手動設定
+setup-manual-account-type=帳號類型
+setup-manual-imap-header=IMAP 選項
+setup-manual-smtp-header=SMTP 選項
+setup-manual-activesync-header=ActiveSync 選項
+setup-manual-next=下一步
+
+setup-manual-socket=Socket 類型
+setup-manual-socket-ssl=SSL
+
+setup-manual-hostname-placeholder=主機名稱
+setup-manual-port-placeholder=Port 號碼
+setup-manual-username-placeholder=使用者名稱
+
setup-bad-password-header=密碼錯誤!
setup-bad-password=我們無法登入至伺服器。也許您的密碼錯了?
setup-fix-password=輸入新密碼並重試
+setup-gmail-twofactor-header=已啟用雙因素驗證
+setup-gmail-twofactor-message=您必須在下面輸入應用程式密碼。
+setup-gmail-twofactor-fix=使用者應用程式密碼
+setup-gmail-imap-header=IMAP 已停用
+setup-gmail-imap-message=您必須啟用您 Gmail 帳號的 IMAP 服務
+setup-gmail-imap-retry=重試
settings-main-header=郵件設定
settings-close=關閉
@@ -31,6 +59,9 @@ settings-done=完成
settings-account-section=帳號
settings-account-add=新增帳號
settings-account-delete=刪除帳號
+settings-account-delete-prompt=您確定要刪除您的 {{account}} 信箱帳號嗎?如果這樣做的話,當您重新建立這個帳號時必須重新下載郵件。
+settings-account-delete-cancel=取消
+settings-account-delete-confirm=刪除
settings-about-section=關於
settings-general-section=一般設定
@@ -39,33 +70,35 @@ settings-show-images=總是顯示圖片
settings-download-attachments=下載附件
settings-notify-mail=新郵件通知
-settings-check-three=3 分鐘
-settings-check-five=5 分鐘
-settings-check-ten=10 分鐘
-settings-check-fifteen=15 分鐘
-settings-check-manually=手動
+settings-check-3min=3 分鐘
+settings-check-5min=5 分鐘
+settings-check-10min=10 分鐘
+settings-check-15min=15 分鐘
+settings-check-30min=30 分鐘
+settings-check-60min=60 分鐘
+settings-check-manual=手動
settings-default-account=預設帳號
settings-account-type=帳號類型
settings-account-credentials=憑證
settings-account-synchronize=同步
-settings-activesync-label=ActiveSync 設定
-settings-imap-label=IMAP 設定
-settings-smtp-label=SMTP 設定
+settings-activesync-label=ActiveSync 選項
+settings-imap-label=IMAP 選項
+settings-smtp-label=SMTP 選項
settings-hostname=主機名稱
settings-port=埠
settings-username=使用者名稱
settings-password=密碼
+settings-new-password=新密碼
settings-save=儲存
-settings-password-empty=密碼不應該是空白的!
+settings-password-empty=密碼欄位不應該空白
+settings-synchronize-auto=自動
settings-synchronize-one-day=1 天
settings-synchronize-three-days=3 天
settings-synchronize-one-week=1 週
settings-synchronize-two-weeks=2 週
settings-synchronize-one-month=1 個月
-settings-synchronize-three-months=3 個月
-settings-synchronize-six-months=6 個月
settings-synchronize-all=所有訊息
accounts-header=帳號
@@ -85,6 +118,16 @@ compose-to=到
compose-cc=副本
compose-bcc=密件副本
compose-subject=主旨
+compose-discard-message=捨棄電子郵件?
+compose-discard-confirm=捨棄
+compose-sending-message=正在寄出電子郵件
+compose-send-message-failed=郵件寄送失敗
+
+dialog-button-ok=確定
+
+attachment-size-kib={{kilobytes}}K
+
+message-attachment-view.textContent=檢視
message-edit-menu-star=打上星號
message-edit-menu-unstar=取消星號
@@ -102,6 +145,8 @@ message-multiedit-header[few] = 已選擇 {{ n }} 封
message-multiedit-header[many] = 已選擇 {{ n }} 封
message-multiedit-header[other] = 已選擇 {{ n }} 封
+browse-to-url-prompt = 瀏覽網址:{{ url }} ?
+
message-download-images={[ plural(n) ]}
message-download-images[one] = 此郵件包含一張圖片。點一下以下載。
message-download-images[two] = 此郵件包含 {{ n }} 張圖片。點一下以下載。
@@ -119,45 +164,96 @@ message-multiedit-delete-confirm[few] = 刪除 {{ n }} 電子郵件訊息?
message-multiedit-delete-confirm[many] = 刪除 {{ n }} 電子郵件訊息?
message-multiedit-delete-confirm[other] = 刪除 {{ n }} 電子郵件訊息?
+message-search-from=從
+message-search-to=到
+message-search-subject=主旨
+message-search-body=內文
+message-search-all=全部
+
+message-search-input.placeholder=搜尋郵件
+message-search-cancel-accessible=取消搜尋
+
messages-syncing=正在載入訊息
messages-sync-more=從伺服器載入更多訊息
messages-folder-empty=此資料夾中沒有郵件
+messages-search-empty=無法在本機快取訊息中找到
messages-folder-select=選擇資料夾
message-contact-menu-view=檢視聯絡人
message-contact-menu-reply=回覆
folder-list-header=資料夾
+account-last-synced-label=上次同步:
+account-never-synced=從未
reply-quoting-wrote={name} 提道
forward-original-message=原始訊息
+# L10n note: These are the labels we use when displaying the envelope info for a
+# message that is forwarded inline. While automatic recovery of this
+# information by clients is made difficult by these strings regularly being
+# localized, we attempt to remain consistent with apps such as Thunderbird for
+# at least English.
forward-header-subject=主旨
forward-header-date=日期
forward-header-from=寄件者
+# This really wants to have the dash in it for consistency with Thunderbird
forward-header-reply-to=回函位址
forward-header-to=收件者
-forward-header-cc=副本 (CC)
+forward-header-cc=副本
+
+# Localized folder names for IMAP servers. Because the IMAP standard did not
+# originally specify a way to express meta-data about folders, folders may be
+# named in English to express their purpose. Then e-mail clients (or webmail
+# interfaces) localize these values. We do this too, following in the
+# footsteps of Thunderbird.
+folder-inbox=收件匣
+folder-sent=寄件備份
+folder-drafts=草稿
+folder-trash=垃圾桶
+folder-queue=未寄出
+folder-junk=垃圾郵件
+folder-archives=備存
toaster-undo=復原
toaster-retry=重試
toaster-message-star={[ plural(n) ]}
toaster-message-star[one]=已為一封訊息加上標示
+toaster-message-star[two]=已為 {{ n }} 封訊息加上標示
+toaster-message-star[few]=已為 {{ n }} 封訊息加上標示
+toaster-message-star[many]=已為 {{ n }} 封訊息加上標示
toaster-message-star[other]=已為 {{ n }} 封訊息加上標示
toaster-message-unstar={[ plural(n) ]}
toaster-message-unstar[one]=已為一封訊息移除標示
+toaster-message-unstar[two]=已為 {{ n }} 封訊息移除標示
+toaster-message-unstar[few]=已為 {{ n }} 封訊息移除標示
+toaster-message-unstar[many]=已為 {{ n }} 封訊息移除標示
toaster-message-unstar[other]=已為 {{ n }} 封訊息移除標示
toaster-message-read={[ plural(n) ]}
toaster-message-read[one]=已將一封訊息標為已讀
+toaster-message-read[two]=已將 {{ n }} 封訊息標為已讀
+toaster-message-read[few]=已將 {{ n }} 封訊息標為已讀
+toaster-message-read[many]=已將 {{ n }} 封訊息標為已讀
toaster-message-read[other]=已將 {{ n }} 封訊息標為已讀
toaster-message-unread={[ plural(n) ]}
toaster-message-unread[one]=已將一封訊息標為未讀
+toaster-message-unread[two]=已將 {{ n }} 封訊息標為未讀
+toaster-message-unread[few]=已將 {{ n }} 封訊息標為未讀
+toaster-message-unread[many]=已將 {{ n }} 封訊息標為未讀
toaster-message-unread[other]=已將 {{ n }} 封訊息標為未讀
toaster-message-move={[ plural(n) ]}
toaster-message-move[one]=已移動一封訊息
+toaster-message-move[two]=已移動 {{ n }} 封訊息
+toaster-message-move[few]=已移動 {{ n }} 封訊息
+toaster-message-move[many]=已移動 {{ n }} 封訊息
toaster-message-move[other]=已移動 {{ n }} 封訊息
toaster-message-delete={[ plural(n) ]}
toaster-message-delete[one]=已刪除一封訊息
+toaster-message-delete[two]=已刪除 {{ n }} 封訊息
+toaster-message-delete[few]=已刪除 {{ n }} 封訊息
+toaster-message-delete[many]=已刪除 {{ n }} 封訊息
toaster-message-delete[other]=已刪除 {{ n }} 封訊息
+toaster-retryable-syncfailed=無法連接伺服器
+form-clear-input=移除文字
View
8 apps/feedback/locales/feedback.fr.properties
@@ -1,7 +1,9 @@
input-what-happen.placeholder = Qu’est-ce qui fonctionne ? Ne fonctionne pas ?
-input-asset-label = Contact
-input-asset.placeholder = Étiquette, adresse électronique ou numéro de téléphone
+input-contact-label = Contact
+input-contact.placeholder = Courriel (optionnel)
-feedback = Retour
+feedback = Mon avis
done = Envoyer
+
+no-internet = Votre avis ne peut pas être envoyé pour l’instant. Veuillez réessayer une fois connecté à un réseau Wi-Fi ou à un réseau de données mobiles.
View
10 apps/feedback/locales/feedback.zh-TW.properties
@@ -1,10 +1,10 @@
input-what-happen.placeholder = 什麼東西正常?什麼東西不正常?
-feedback-url.action = http://b2gtestdrivers.allizom.org/comments
-input-asset-label = 連絡資訊
-input-asset.placeholder = 標籤、電子郵件或手機號碼
+input-contact-label = 連絡資訊
+input-contact.placeholder = 電子郵件地址(選填)
feedback = 意見回饋
-reset = 重設
-done = 完成
+done = 送出
+
+no-internet = 現在無法傳送您的回饋,當您連接到數據或無線網路時請再試一次。
View
1  apps/fm/locales/fm.zh-TW.properties
@@ -1,4 +1,3 @@
noAntenna = 插入耳機
noAntennaMsg = FM 收音機需要插入的耳機才能接收廣播訊號。
-
View
8 apps/gallery/index.html
@@ -26,10 +26,6 @@
</head>
<body class="hidden" role="application">
- <!-- This element gets inserted into the different view elements -->
- <!-- It gets styled differently depending on what its parent is -->
- <ul id="thumbnails"></ul> <!-- Thumbnails inserted here -->
-
<section role="region" id="thumbnail-list-view" class="hidden">
<footer id="thumbnails-bottom">
<a id="thumbnails-camera-button" class="button"></a>
@@ -163,6 +159,10 @@ <h1 id="edit-title" data-l10n-id="edit"></h1>
</footer>
</section>
+ <!-- This element gets positioned over different view elements -->
+ <!-- It gets styled differently depending on what it is over -->
+ <ul id="thumbnails"></ul> <!-- Thumbnails inserted here -->
+
<!-- A thin indeterminate progress bar to indicate scanning -->
<!-- set class to "throb" to make it go, or hidden" to make it stop -->
<div id="progress" class="hidden">
View
81 apps/gallery/js/gallery.js
@@ -515,12 +515,73 @@ function binarysearch(array, element, comparator, from, to) {
return binarysearch(array, element, comparator, mid + 1, to);
}
+// Fullscreen mode is flaky. When we enter and leave it we get a resize event
+// because of the new window size. But sometimes we get an extra resize event
+// with the window sized to 0. If this happens, then our list of thumbnails
+// gets sized to 0 and loses its scroll position.
+// See https://bugzilla.mozilla.org/show_bug.cgi?id=820571
+//
+// This self-executing function is here to workaround that issue.
+// In addition, it ensures that when we leave full screen mode, the
+// thumbnail for whatever image we were just viewing is visible on the
+// screen. (That is something that we cannot do in setView() because
+// it has to happen after the resize event arrives, and that is
+// asynchronous and does not occur until after setView() has
+// returned.)
+(function fullscreenWorkaround() {
+ var savedScrollTop, leavingFullScreenMode = false;
+
+ document.addEventListener('mozfullscreenchange', function() {