From: Mike Hommey
Date: Tue, 28 Jul 2020 22:23:16 +0000 (+0100)
Subject: Import firefox-esr_68.11.0esr.orig-l10n-th.tar.bz2
X-Git-Tag: archive/raspbian/68.11.0esr-1_deb10u1+rpi1^2~32^85
X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=1dc93bcc1ad98085ca25b901352db20931d66dfc;p=firefox-esr.git
Import firefox-esr_68.11.0esr.orig-l10n-th.tar.bz2
[dgit import orig firefox-esr_68.11.0esr.orig-l10n-th.tar.bz2]
---
1dc93bcc1ad98085ca25b901352db20931d66dfc
diff --git a/browser/branding/official/brand.dtd b/browser/branding/official/brand.dtd
new file mode 100644
index 00000000000..843d685be19
--- /dev/null
+++ b/browser/branding/official/brand.dtd
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
diff --git a/browser/branding/official/brand.ftl b/browser/branding/official/brand.ftl
new file mode 100644
index 00000000000..5e338b51ac8
--- /dev/null
+++ b/browser/branding/official/brand.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Firefox Brand
+##
+## Firefox must be treated as a brand, and kept in English.
+## It cannot be:
+## - Declined to adapt to grammatical case.
+## - Transliterated.
+## - Translated.
+##
+## Reference: https://www.mozilla.org/styleguide/communications/translation/
+
+-brand-shorter-name = Firefox
+-brand-short-name = Firefox
+-brand-full-name = Mozilla Firefox
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Nightly, Beta, etc.).
+-brand-product-name = Firefox
+-vendor-short-name = Mozilla
+trademarkInfo = Firefox à¹à¸¥à¸°à¹à¸¥à¹à¸à¹ Firefox à¹à¸à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸²à¸£à¸à¹à¸²à¸à¸à¸à¸¡à¸¹à¸¥à¸à¸´à¸à¸´ Mozilla
diff --git a/browser/branding/official/brand.properties b/browser/branding/official/brand.properties
new file mode 100644
index 00000000000..568f227d4ce
--- /dev/null
+++ b/browser/branding/official/brand.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+brandShorterName=Firefox
+brandShortName=Firefox
+brandFullName=Mozilla Firefox
+# LOCALIZATION NOTE(brandProductName):
+# This brand name can be used in messages where the product name needs to
+# remain unchanged across different versions (Nightly, Beta, etc.).
+brandProductName=Firefox
+vendorShortName=Mozilla
+
+syncBrandShortName=Sync
diff --git a/browser/browser/aboutCertError.ftl b/browser/browser/aboutCertError.ftl
new file mode 100644
index 00000000000..5bcd2e51fad
--- /dev/null
+++ b/browser/browser/aboutCertError.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-intro = { $hostname } à¹à¸à¹à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸à¸´à¸à¸à¸
+cert-error-trust-unknown-issuer-intro = à¸à¸²à¸à¸¡à¸µà¹à¸à¸£à¸à¸²à¸à¸à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸µà¹à¸à¸°à¹à¸¥à¸µà¸¢à¸à¹à¸à¸à¹à¸à¸à¹à¹à¸¥à¸°à¸à¸¸à¸à¹à¸¡à¹à¸à¸§à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+# Variables:
+# $hostname (String) - Hostname of the website with cert error.
+cert-error-trust-unknown-issuer = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸´à¸ªà¸¹à¸à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸£à¸°à¸à¸³à¸à¸±à¸§à¸à¸à¸à¸à¸±à¸§à¹à¸à¸à¸à¹à¸²à¸à¹à¸à¸£à¸±à¸à¸£à¸à¸ { -brand-short-name } à¹à¸¡à¹à¹à¸à¸·à¹à¸à¸à¸·à¸ { $hostname } à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸¡à¹à¸à¸£à¸²à¸à¸à¸¹à¹à¸à¸à¸à¹à¸à¸£à¸±à¸à¸£à¸à¸, à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸¹à¸à¸¥à¸à¸à¸·à¹à¸à¸à¹à¸§à¸¢à¸à¸à¹à¸à¸, หรืà¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¹à¸¡à¹à¸ªà¹à¸à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸£à¸°à¸à¸±à¸à¸à¸¥à¸²à¸à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+cert-error-trust-cert-invalid = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¹à¸¡à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸£à¸²à¸°à¸à¸à¸à¹à¸«à¹à¹à¸à¸¢à¸à¸¹à¹à¸à¸à¸à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸
+cert-error-trust-untrusted-issuer = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¹à¸¡à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸£à¸²à¸°à¸à¸à¸à¹à¸«à¹à¹à¸à¸¢à¸à¸¹à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸à¸·à¸
+cert-error-trust-signature-algorithm-disabled = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¹à¸¡à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸£à¸²à¸°à¹à¸à¹à¸à¸£à¸±à¸à¹à¸à¸¢à¹à¸à¹à¸à¸±à¸¥à¸à¸à¸£à¸´à¸à¸¶à¸¡à¸¥à¸²à¸¢à¹à¸à¹à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัย
+cert-error-trust-expired-issuer = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¹à¸¡à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸£à¸²à¸°à¸à¸¹à¹à¹à¸«à¹à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸«à¸¡à¸à¸à¸²à¸¢à¸¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¹à¸¥à¹à¸§
+cert-error-trust-self-signed = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸à¸à¹à¸¡à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸£à¸²à¸°à¹à¸à¹à¸à¸à¸²à¸£à¸à¸à¸à¹à¸à¸£à¸±à¸à¸£à¸à¸à¹à¸à¸¢à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸
+cert-error-untrusted-default = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸¡à¸²à¸à¸²à¸à¹à¸«à¸¥à¹à¸à¸à¸µà¹à¹à¸¡à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸·à¸
+# Variables:
+# $error (String) - NSS error code string that specifies type of cert error. e.g. unknown issuer, invalid cert, etc.
+cert-error-code-prefix-link = รหัสà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸: { $error }
diff --git a/browser/browser/aboutConfig.ftl b/browser/browser/aboutConfig.ftl
new file mode 100644
index 00000000000..2b83f1944d5
--- /dev/null
+++ b/browser/browser/aboutConfig.ftl
@@ -0,0 +1,38 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# An old map warning, see https://en.wikipedia.org/wiki/Here_be_dragons
+about-config-warning-title = ระวัà¸à¸¡à¸±à¸à¸à¸£!
+about-config-warning-text = à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸±à¹à¸à¸ªà¸¹à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¹à¸à¹à¸ªà¸à¸µà¸¢à¸£à¸ าภà¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย à¹à¸¥à¸°à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¸à¸à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹ à¸à¸¸à¸à¸à¸§à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¸à¸²à¸°à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸°à¹à¸£à¸à¸¢à¸¹à¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+about-config-warning-checkbox = à¹à¸à¹à¹à¸à¸£à¸à¸à¸§à¸à¸à¸±à¸à¸à¸µà¸à¸à¸µ!
+about-config-warning-button = à¸à¸±à¸à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸
+about-config-title = about:config
+about-config2-title = à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸±à¹à¸à¸ªà¸¹à¸
+about-config-search-input =
+ .placeholder = à¸à¹à¸à¸«à¸²
+about-config-show-all = à¹à¸ªà¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+about-config-pref-add = à¹à¸à¸´à¹à¸¡
+about-config-pref-toggle = à¹à¸à¸´à¸/à¸à¸´à¸
+about-config-pref-edit = à¹à¸à¹à¹à¸
+about-config-pref-save = à¸à¸±à¸à¸à¸¶à¸
+about-config-pref-reset = à¸à¸¥à¸±à¸à¸à¹à¸²à¹à¸à¸´à¸¡
+about-config-pref-delete = ลà¸
+
+## Labels for the type selection radio buttons shown when adding preferences.
+
+about-config-pref-add-type-boolean = à¸à¹à¸²à¸à¸£à¸£à¸à¸°
+about-config-pref-add-type-number = à¸à¸±à¸§à¹à¸¥à¸
+about-config-pref-add-type-string = สà¸à¸£à¸´à¸
+
+## Preferences with a non-default value are differentiated visually, and at the
+## same time the state is made accessible to screen readers using an aria-label
+## that won't be visible or copied to the clipboard.
+##
+## Variables:
+## $value (String): The full value of the preference.
+
+about-config-pref-accessible-value-default =
+ .aria-label = { $value } (à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸)
+about-config-pref-accessible-value-custom =
+ .aria-label = { $value } (à¸à¸³à¸«à¸à¸à¹à¸à¸)
diff --git a/browser/browser/aboutDialog.ftl b/browser/browser/aboutDialog.ftl
new file mode 100644
index 00000000000..9b004965958
--- /dev/null
+++ b/browser/browser/aboutDialog.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+aboutDialog-title =
+ .title = à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸ { -brand-full-name }
+releaseNotes-link = มีà¸à¸°à¹à¸£à¹à¸«à¸¡à¹
+update-checkForUpdatesButton =
+ .label = à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+ .accesskey = à¸
+update-updateButton =
+ .label = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¸à¸±à¸à¹à¸à¸ { -brand-shorter-name }
+ .accesskey = ร
+update-checkingForUpdates = à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸â¦
+update-downloading =
à¸à¸³à¸¥à¸±à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸ â
+update-applying = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸â¦
+update-failed = à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+update-failed-main = à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§ à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+update-adminDisabled = à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸¢à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸
+update-noUpdatesFound = { -brand-short-name } à¹à¸à¹à¸à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸à¹à¸¥à¹à¸§
+update-otherInstanceHandlingUpdates = { -brand-short-name } à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¸à¸±à¸à¹à¸à¸à¹à¸à¸¢à¸à¸´à¸à¸ªà¹à¸à¸à¸à¹à¸à¸·à¹à¸
+update-manual = มีà¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸µà¹
+update-unsupported = à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸£à¸°à¸à¸à¸à¸µà¹à¹à¸à¹
+update-restarting = à¸à¸³à¸¥à¸±à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹â¦
+channel-description = à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+warningDesc-version = { -brand-short-name } à¹à¸à¹à¸à¸£à¸¸à¹à¸à¸à¸à¸¥à¸à¸à¹à¸¥à¸°à¸à¸²à¸à¹à¸¡à¹à¹à¸ªà¸à¸µà¸¢à¸£
+community-exp = à¸à¸·à¸ à¸à¸µà¹à¸à¸³à¸à¸²à¸à¸£à¹à¸§à¸¡à¸à¸±à¸à¹à¸à¸·à¹à¸à¸à¸³à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸´à¸à¸à¸§à¹à¸²à¸ à¹à¸à¹à¸à¸à¸à¸à¸ªà¸²à¸à¸²à¸£à¸à¸° à¹à¸¥à¸°à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸¸à¸à¸à¸
+community-2 = { -brand-short-name } à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸à¸à¹à¸à¸à¹à¸à¸¢ à¸à¸¶à¹à¸à¹à¸à¹à¸ à¸à¸µà¹à¸à¸³à¸à¸²à¸à¸£à¹à¸§à¸¡à¸à¸±à¸à¹à¸à¸·à¹à¸à¸à¸³à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸´à¸à¸à¸§à¹à¸²à¸ à¹à¸à¹à¸à¸à¸à¸à¸ªà¸²à¸à¸²à¸£à¸à¸° à¹à¸¥à¸°à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸¸à¸à¸à¸
+helpus = à¸à¹à¸à¸à¸à¸²à¸£à¸à¸µà¹à¸à¸°à¸à¹à¸§à¸¢? หรืà¸
+bottomLinks-license = à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¸±à¸à¸à¸²à¸à¸à¸¸à¸à¸²à¸
+bottomLinks-rights = สิà¸à¸à¸´à¸à¸¹à¹à¹à¸à¹
+bottomLinks-privacy = à¸à¹à¸¢à¸à¸²à¸¢à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+aboutDialog-architecture-sixtyFourBit = 64 à¸à¸´à¸
+aboutDialog-architecture-thirtyTwoBit = 32 à¸à¸´à¸
+# Example of resulting string: 66.0.1 (64-bit)
+# Variables:
+# $version (String): version of Firefox, e.g. 66.0.1
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version = { $version } ({ $bits } à¸à¸´à¸)
+# Example of resulting string: 66.0a1 (2019-01-16) (64-bit)
+# Variables:
+# $version (String): version of Firefox for Nightly builds, e.g. 66.0a1
+# $isodate (String): date in ISO format, e.g. 2019-01-16
+# $bits (Number): bits of the architecture (32 or 64)
+aboutDialog-version-nightly = { $version } ({ $isodate }) ({ $bits } à¸à¸´à¸)
diff --git a/browser/browser/aboutPolicies.ftl b/browser/browser/aboutPolicies.ftl
new file mode 100644
index 00000000000..d97a3b88f4d
--- /dev/null
+++ b/browser/browser/aboutPolicies.ftl
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-policies-title = à¸à¹à¸¢à¸à¸²à¸¢à¸à¸à¸à¹à¸à¸£
+# 'Active' is used to describe the policies that are currently active
+active-policies-tab = à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹
+errors-tab = à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸
+documentation-tab = à¹à¸à¸à¸ªà¸²à¸£à¸à¸£à¸°à¸à¸à¸
+no-specified-policies-message = à¸à¸£à¸´à¸à¸²à¸£à¸à¹à¸¢à¸à¸²à¸¢à¸à¸à¸à¹à¸à¸£à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸à¹à¹à¸¡à¹à¹à¸à¹à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¹à¸¢à¸à¸²à¸¢à¹à¸ à¹
+inactive-message = à¸à¸£à¸´à¸à¸²à¸£à¸à¹à¸¢à¸à¸²à¸¢à¸à¸à¸à¹à¸à¸£à¹à¸¡à¹à¹à¸à¹à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹
+policy-name = à¸à¸·à¹à¸à¸à¹à¸¢à¸à¸²à¸¢
+policy-value = à¸à¹à¸²à¸à¹à¸¢à¸à¸²à¸¢
+policy-errors = à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¹à¸¢à¸à¸²à¸¢
diff --git a/browser/browser/aboutPrivateBrowsing.ftl b/browser/browser/aboutPrivateBrowsing.ftl
new file mode 100644
index 00000000000..1f3dbaa4102
--- /dev/null
+++ b/browser/browser/aboutPrivateBrowsing.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+about-private-browsing-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸ à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+about-private-browsing-info-visited = หà¸à¹à¸²à¸à¸µà¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸¥à¹à¸§
+privatebrowsingpage-open-private-window-label = à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+ .accesskey = ส
+about-private-browsing-info-notsaved = à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§ { -brand-short-name } à¹à¸¡à¹à¸à¸±à¸à¸à¸¶à¸:
+about-private-browsing-search-placeholder = à¸à¹à¸à¸«à¸²à¹à¸§à¹à¸
+about-private-browsing-info-bookmarks = à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+about-private-browsing-info-title = à¸à¸¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+about-private-browsing-info-searches = à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+about-private-browsing-info-downloads = à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+private-browsing-title = à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+about-private-browsing-info-saved = { -brand-short-name } à¸à¸°à¸à¸±à¸à¸à¸¶à¸:
+about-private-browsing-info-myths = à¸à¸³à¸à¸²à¸à¸à¸±à¹à¸§à¹à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+about-private-browsing-info-clipboard = à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸à¸±à¸à¸¥à¸à¸
+about-private-browsing-info-temporary-files = à¹à¸à¸¥à¹à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+about-private-browsing-info-cookies = à¸à¸¸à¸à¸à¸µà¹
+tracking-protection-start-tour = à¸à¸¹à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸³à¸à¸²à¸
+about-private-browsing-note = à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¡à¹à¹à¸à¹à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸à¸´à¸£à¸à¸²à¸¡à¸à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸ à¸à¸²à¸¢à¸à¹à¸²à¸à¸«à¸£à¸·à¸à¸à¸¹à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¸¢à¸±à¸à¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸²à¸à¸§à¹à¸²à¸à¸¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¸«à¸à¹à¸²à¹à¸à¸à¹à¸²à¸
+about-private-browsing =
+ .title = à¸à¹à¸à¸«à¸²à¹à¸§à¹à¸
+about-private-browsing-not-private = à¸à¸à¸°à¸à¸µà¹à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+content-blocking-title = à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+content-blocking-description = à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¹à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸ªà¸±à¸à¹à¸à¸à¸à¸´à¸à¸à¸£à¸£à¸¡à¸à¸à¸à¸à¸¸à¸à¸à¸±à¹à¸§à¸à¸±à¹à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸ à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§ { -brand-short-name } Content Blocking à¸à¸°à¸à¸¥à¹à¸à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸³à¸à¸§à¸à¸¡à¸²à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸£à¸§à¸à¸£à¸§à¸¡à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸¤à¸à¸´à¸à¸£à¸£à¸¡à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸à¸à¸à¸¸à¸
+about-private-browsing-info-description = { -brand-short-name } à¸à¸°à¸¥à¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¹à¸à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸±à¹à¸à¸«à¸¡à¸ à¹à¸¡à¹à¸§à¹à¸²à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸°à¹à¸¡à¹à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸à¸´à¸à¸à¸±à¸à¸à¸±à¸§à¸à¸à¸à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸«à¸£à¸·à¸à¸à¸¹à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸ à¹à¸à¹à¸à¸°à¸à¸³à¹à¸«à¹à¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸à¸à¸à¹à¸¥à¸à¹à¸à¸²à¸à¸à¸¹à¹à¸à¸·à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¹à¸à¸£à¸·à¹à¸à¸à¸à¸µà¹à¸à¹à¸²à¸¢à¸à¸¶à¹à¸
diff --git a/browser/browser/aboutRestartRequired.ftl b/browser/browser/aboutRestartRequired.ftl
new file mode 100644
index 00000000000..f3da6481209
--- /dev/null
+++ b/browser/browser/aboutRestartRequired.ftl
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+restart-required-title = à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹
+restart-required-header = à¸à¸à¸à¸ ัย à¹à¸£à¸²à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸³à¸ªà¸´à¹à¸à¹à¸¥à¹à¸ ๠à¸à¸µà¸à¹à¸à¸µà¸¢à¸à¸«à¸à¸¶à¹à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+restart-required-intro = à¹à¸£à¸²à¹à¸à¸´à¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸«à¸¥à¸±à¸ à¸à¸¥à¸´à¸ à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+restart-required-intro-brand = { -brand-short-name } à¹à¸à¸´à¹à¸à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸«à¸¥à¸±à¸ à¸à¸¥à¸´à¸ à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸«à¹à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+restart-required-description = à¹à¸£à¸²à¸à¸°à¸à¸¹à¹à¸à¸·à¸à¸«à¸à¹à¸² หà¸à¹à¸²à¸à¹à¸²à¸ à¹à¸¥à¸°à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸¥à¸±à¸à¸à¸²à¸à¸à¸±à¹à¸ à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸¸à¸à¸à¸¥à¸±à¸à¸¡à¸²à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¹à¸à¹à¸à¸¢à¹à¸²à¸à¸£à¸§à¸à¹à¸£à¹à¸§
+restart-button-label = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹
diff --git a/browser/browser/aboutRobots.ftl b/browser/browser/aboutRobots.ftl
new file mode 100644
index 00000000000..d42c866ea76
--- /dev/null
+++ b/browser/browser/aboutRobots.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used in the about:robots page, which ties in with the
+### robots theme used in the Firefox 3 Beta 2/3 first run pages.
+### They're just meant to be fun and whimsical, with references to some geeky
+### but well-known robots in movies and books. Be creative with translations!
+
+# Nonsense line from the movie "The Day The Earth Stood Still". No translation needed.
+page-title = à¸à¸à¸£à¹à¸! à¸à¸¥à¸²à¸à¸¹ à¸à¸²à¸£à¸²à¸à¸² à¸à¸´à¸à¹à¸!
+# Movie: Logan's Run... Box (cyborg): "Welcome Humans! I am ready for you."
+error-title-text = ยิà¸à¸à¸µà¸à¹à¸à¸à¸£à¸±à¸ มà¸à¸¸à¸©à¸¢à¹à¹à¸¥à¸!
+# Movie: The Day The Earth Stood Still. Spoken by Klaatu.
+error-short-desc-text = à¹à¸£à¸²à¸¡à¸²à¹à¸¢à¸µà¹à¸¢à¸¡à¹à¸¢à¸µà¸¢à¸à¸à¹à¸²à¸à¸à¹à¸§à¸¢à¸ªà¸±à¸à¸à¸´à¹à¸¥à¸°à¹à¸¡à¸à¸£à¸µ!
+# Various books by Isaac Asimov. http://en.wikipedia.org/wiki/Three_Laws_of_Robotics
+error-long-desc1 = หุà¹à¸à¸¢à¸à¸à¹à¸¡à¸´à¸à¸²à¸à¸à¸£à¸°à¸à¸³à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¹à¸à¸¡à¸à¸¸à¸©à¸¢à¹ หรืà¸à¸à¸´à¹à¸à¹à¸à¸¢à¸à¸¥à¹à¸à¸¢à¹à¸«à¹à¸¡à¸à¸¸à¸©à¸¢à¹à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¹à¸à¹
+# Movie: Blade Runner. Batty: "I've seen things you people wouldnât believe..."
+error-long-desc2 = หุà¹à¸à¸¢à¸à¸à¹à¸¡à¸à¸à¹à¸«à¹à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸§à¸à¸à¹à¸²à¸à¸à¸²à¸à¸à¸°à¹à¸¡à¹à¹à¸à¸·à¹à¸
+# Book: Hitchhikerâs Guide To The Galaxy. What the Sirius Cybernetics Corporation calls robots.
+error-long-desc3 = หุà¹à¸à¸¢à¸à¸à¹à¹à¸à¹à¸à¸ªà¸«à¸²à¸¢à¸à¸¥à¸²à¸ªà¸à¸´à¸à¸à¸¹à¹à¸ªà¸à¸¸à¸à¸ªà¸à¸²à¸
+# TV: Futurama. Bender's first line is "Bite my shiny metal ass."
+error-long-desc4 = หุà¹à¸à¸¢à¸à¸à¹à¸¡à¸µà¸à¸±à¹à¸à¸à¹à¸²à¸¢à¹à¸à¹à¸à¹à¸¥à¸«à¸°à¸¡à¸±à¸à¸§à¸²à¸§à¹à¸à¸£à¸à¸à¸¢à¹à¸²à¸à¸±à¸à¹à¸¥à¹à¸
+# TV: Battlestar Galactica (2004 series). From the opening text.
+error-trailer-desc-text = à¹à¸¥à¸°à¸à¸§à¸à¹à¸à¸²à¸à¹à¸¡à¸µà¹à¸à¸à¸à¸²à¸£
+# Book: Hitchhiker's Guide To The Galaxy. Arthur presses a button and it warns him.
+error-try-again = ลà¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+ .label2 = à¹à¸à¸£à¸à¸à¸¢à¹à¸²à¸à¸à¸à¸¸à¹à¸¡à¸à¸µà¹à¸à¸µà¸
diff --git a/browser/browser/aboutSessionRestore.ftl b/browser/browser/aboutSessionRestore.ftl
new file mode 100644
index 00000000000..5cc3d7f9921
--- /dev/null
+++ b/browser/browser/aboutSessionRestore.ftl
@@ -0,0 +1,40 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+restore-page-tab-title = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸§à¸²à¸£à¸°
+# The title is intended to be apologetic and disarming, expressing dismay
+# and regret that we are unable to restore the session for the user
+restore-page-error-title = à¸à¸à¸à¸ ัย à¹à¸£à¸²à¸¡à¸µà¸à¸±à¸à¸«à¸²à¹à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¹à¸²à¸à¹à¸²à¸ ๠à¸à¸à¸à¸à¸¸à¸à¸à¸¥à¸±à¸à¸¡à¸²
+restore-page-problem-desc = à¹à¸£à¸²à¸¡à¸µà¸à¸±à¸à¸«à¸²à¹à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸§à¸²à¸£à¸°à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¸à¸£à¸±à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸à¸à¸à¸à¸à¸¸à¸ à¹à¸«à¹à¹à¸¥à¸·à¸à¸ à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸§à¸²à¸£à¸° à¹à¸à¸·à¹à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+restore-page-try-this = ยัà¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸§à¸²à¸£à¸°à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸±à¹à¸à¸«à¸£à¸·à¸? à¸à¸²à¸à¸à¸£à¸±à¹à¸à¸à¸²à¸à¸¡à¸µà¸à¸²à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸³à¸¥à¸±à¸à¸à¹à¸à¹à¸«à¹à¹à¸à¸´à¸à¸à¸±à¸à¸«à¸² à¸à¸¹à¹à¸à¹à¸à¸à¹à¸à¸à¸«à¸à¹à¸², à¹à¸à¸²à¹à¸à¸£à¸·à¹à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸à¸à¸à¸²à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸·à¸ à¹à¸¥à¹à¸§à¸¥à¸à¸à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸«à¸¡à¹
+restore-page-hide-tabs = à¸à¹à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸à¸«à¸à¹à¸²
+restore-page-show-tabs = à¸à¸¹à¹à¸à¹à¸à¸à¹à¸à¸à¸«à¸à¹à¸²
+# When tabs are distributed across multiple windows, this message is used as a
+# header above the group of tabs for each window.
+#
+# Variables:
+# $windowNumber: Progressive number associated to each window
+restore-page-window-label = หà¸à¹à¸²à¸à¹à¸²à¸ { $windowNumber }
+restore-page-restore-header =
+ .label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸
+restore-page-list-header =
+ .label = หà¸à¹à¸²à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¹à¸
+restore-page-try-again-button =
+ .label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸§à¸²à¸£à¸°
+ .accesskey = ร
+restore-page-close-button =
+ .label = à¹à¸£à¸´à¹à¸¡à¸§à¸²à¸£à¸°à¹à¸«à¸¡à¹
+ .accesskey = ม
+
+## The following strings are used in about:welcomeback
+
+welcome-back-tab-title = สำà¹à¸£à¹à¸!
+welcome-back-page-title = สำà¹à¸£à¹à¸!
+welcome-back-page-info = { -brand-short-name } à¸à¸£à¹à¸à¸¡à¸à¸µà¹à¸à¸°à¹à¸£à¸´à¹à¸¡
+welcome-back-restore-button =
+ .label = à¹à¸à¸à¸±à¸à¹à¸¥à¸¢!
+ .accesskey = à¸
+welcome-back-restore-all-label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+welcome-back-restore-some-label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¸à¸²à¸°à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£
+welcome-back-page-info-link = สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸¥à¸°à¸à¸²à¸£à¸à¸£à¸±à¸à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸à¹à¸¥à¸°à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸ หาà¸à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸à¸à¸à¸¸à¸ à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¹
diff --git a/browser/browser/aboutTabCrashed.ftl b/browser/browser/aboutTabCrashed.ftl
new file mode 100644
index 00000000000..975b2e5375c
--- /dev/null
+++ b/browser/browser/aboutTabCrashed.ftl
@@ -0,0 +1,24 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+crashed-title = à¸à¸±à¸§à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¹à¸à¹à¸
+crashed-close-tab-button = à¸à¸´à¸à¹à¸à¹à¸
+crashed-restore-tab-button = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¸à¸µà¹
+crashed-restore-all-button = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸±à¸à¸à¹à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+crashed-header = à¸à¹à¸²à¸ à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸´à¹à¸à¸à¸±à¸à¸à¹à¸à¸
+crashed-offer-help = à¹à¸£à¸²à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸§à¸¢à¹à¸à¹!
+crashed-single-offer-help-message = à¹à¸¥à¸·à¸à¸ { crashed-restore-tab-button } à¹à¸à¸·à¹à¸à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+crashed-multiple-offer-help-message = à¹à¸¥à¸·à¸à¸ { crashed-restore-tab-button } หรืภ{ crashed-restore-all-button } à¹à¸à¸·à¹à¸à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+crashed-request-help = à¸à¸¸à¸à¸à¸°à¸à¹à¸§à¸¢à¹à¸£à¸²à¹à¸à¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+crashed-request-help-message = รายà¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¹à¸§à¸¢à¹à¸£à¸²à¸§à¸´à¸à¸´à¸à¸à¸±à¸¢à¸à¸±à¸à¸«à¸²à¹à¸¥à¸°à¸à¸³ { -brand-short-name } à¹à¸«à¹à¸à¸µà¸à¸¶à¹à¸
+crashed-request-report-title = รายà¸à¸²à¸à¹à¸à¹à¸à¸à¸µà¹
+crashed-send-report = สà¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸à¸·à¹à¸à¹à¸«à¹à¹à¸£à¸²à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¹
+crashed-comment =
+ .placeholder = à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡ (à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸à¸à¸°à¸à¸£à¸²à¸à¸à¸à¹à¸à¸ªà¸²à¸à¸²à¸£à¸à¸°)
+crashed-include-URL = รวม URL à¸à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸¡à¸·à¹à¸ { -brand-short-name } à¸à¸±à¸à¸à¹à¸à¸
+crashed-email-placeholder = à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸¡à¸¥à¸à¸à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸µà¹
+crashed-email-me = สà¹à¸à¸à¸µà¹à¸¡à¸¥à¸«à¸²à¸à¸±à¸à¹à¸¡à¸·à¹à¸à¸¡à¸µà¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+crashed-report-sent = สà¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¹à¸¥à¹à¸§; à¸à¸à¸à¸à¸¸à¸à¸à¸µà¹à¸à¹à¸§à¸¢à¸à¸³ { -brand-short-name } à¹à¸«à¹à¸à¸µà¸à¸¶à¹à¸!
+crashed-request-auto-submit-title = รายà¸à¸²à¸à¹à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸«à¸¥à¸±à¸
+crashed-auto-submit-checkbox = à¸à¸±à¸à¹à¸à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¹à¸à¸·à¹à¸à¹à¸«à¹à¸ªà¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¹à¸¡à¸·à¹à¸ { -brand-short-name } à¸à¸±à¸à¸à¹à¸à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
diff --git a/browser/browser/appMenuNotifications.ftl b/browser/browser/appMenuNotifications.ftl
new file mode 100644
index 00000000000..61d6daeab37
--- /dev/null
+++ b/browser/browser/appMenuNotifications.ftl
@@ -0,0 +1,49 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+appmenu-update-available =
+ .label = มีà¸à¸²à¸£à¸à¸±à¸à¹à¸à¸ { -brand-shorter-name } à¹à¸«à¸¡à¹
+ .buttonlabel = à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+ .buttonaccesskey = à¸
+ .secondarybuttonlabel = à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+ .secondarybuttonaccesskey = ม
+appmenu-update-available-message = à¸à¸±à¸à¹à¸à¸ { -brand-shorter-name } à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸§à¸²à¸¡à¹à¸£à¹à¸§à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸¥à¹à¸²à¸ªà¸¸à¸
+appmenu-update-manual =
+ .label = à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¹à¸à¸ { -brand-shorter-name } à¹à¸à¹à¸à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+ .buttonlabel = à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸ { -brand-shorter-name }
+ .buttonaccesskey = à¸
+ .secondarybuttonlabel = à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+ .secondarybuttonaccesskey = ม
+appmenu-update-manual-message = à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸ªà¸³à¹à¸à¸²à¹à¸«à¸¡à¹à¸à¸à¸ { -brand-shorter-name } à¹à¸¥à¸°à¹à¸£à¸²à¸à¸°à¸à¹à¸§à¸¢à¸à¸¸à¸à¸à¸´à¸à¸à¸±à¹à¸
+appmenu-update-whats-new =
+ .value = à¸à¸¹à¸§à¹à¸²à¸¡à¸µà¸à¸°à¹à¸£à¹à¸«à¸¡à¹
+appmenu-update-unsupported =
+ .label = { -brand-shorter-name } à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¹à¸à¸à¹à¸à¹à¸à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+ .buttonlabel = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+ .buttonaccesskey = ร
+ .secondarybuttonlabel = à¸à¸´à¸
+ .secondarybuttonaccesskey = à¸
+appmenu-update-unsupported-message = à¹à¸à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸ { -brand-shorter-name } รุà¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+appmenu-update-restart =
+ .label = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¸à¸±à¸à¹à¸à¸ { -brand-shorter-name }
+ .buttonlabel = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸¥à¸°à¹à¸£à¸µà¸¢à¸à¸à¸·à¸
+ .buttonaccesskey = ร
+ .secondarybuttonlabel = à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+ .secondarybuttonaccesskey = ม
+appmenu-update-restart-message = หลัà¸à¸à¸²à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¸à¸¢à¹à¸²à¸à¸£à¸§à¸à¹à¸£à¹à¸§ { -brand-shorter-name } à¸à¸°à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¹à¸à¹à¸«à¸¡à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+appmenu-addon-private-browsing-installed =
+ .buttonlabel = à¸à¸à¸¥à¸ à¹à¸à¹à¸²à¹à¸à¹à¸¥à¹à¸§
+ .buttonaccesskey = à¸
+appmenu-addon-post-install-message = à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸à¸à¸à¸¸à¸à¹à¸à¸¢à¸à¸¥à¸´à¸ à¹à¸ à¹à¸¡à¸à¸¹
+appmenu-addon-post-install-incognito-checkbox =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸µà¹à¸à¸³à¸à¸²à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+ .accesskey = à¸
+appmenu-addon-private-browsing =
+ .label = à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸±à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+ .buttonlabel = à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+ .buttonaccesskey = à¸
+ .secondarybuttonlabel = à¸à¸à¸¥à¸ à¹à¸à¹à¸²à¹à¸à¹à¸¥à¹à¸§
+ .secondarybuttonaccesskey = à¸
+appmenu-addon-private-browsing-message = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸«à¸¡à¹à¹à¸ ๠à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸¢à¸±à¸ { -brand-shorter-name } à¸à¸°à¹à¸¡à¹à¸à¸³à¸à¸²à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¹à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²
+appmenu-addon-private-browsing-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
diff --git a/browser/browser/branding/brandings.ftl b/browser/browser/branding/brandings.ftl
new file mode 100644
index 00000000000..2f30eb28f8e
--- /dev/null
+++ b/browser/browser/branding/brandings.ftl
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+## The following feature names must be treated as a brand, and kept in English.
+## They cannot be:
+## - Declined to adapt to grammatical case.
+## - Transliterated.
+## - Translated.
+
+-facebook-container-brand-name = Facebook Container
+-lockwise-brand-name = Firefox Lockwise
+-monitor-brand-name = Firefox Monitor
+-pocket-brand-name = Pocket
+-send-brand-name = Firefox Send
diff --git a/browser/browser/branding/sync-brand.ftl b/browser/browser/branding/sync-brand.ftl
new file mode 100644
index 00000000000..a6e6c7c696c
--- /dev/null
+++ b/browser/browser/branding/sync-brand.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+-sync-brand-short-name = Sync
+# âSyncâ can be localized, âFirefoxâ must be treated as a brand,
+# and kept in English.
+-sync-brand-name = Firefox Sync
+# âAccountâ can be localized, âFirefoxâ must be treated as a brand,
+# and kept in English.
+-fxaccount-brand-name = à¸à¸±à¸à¸à¸µ Firefox
diff --git a/browser/browser/customizeMode.ftl b/browser/browser/customizeMode.ftl
new file mode 100644
index 00000000000..3752ab72c9b
--- /dev/null
+++ b/browser/browser/customizeMode.ftl
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+customize-mode-restore-defaults =
+ .label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+customize-mode-menu-and-toolbars-header = ลาà¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¸£à¸à¸à¸à¸à¸à¸¸à¸à¸¥à¸à¹à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸«à¸£à¸·à¸à¹à¸¡à¸à¸¹à¸¥à¹à¸
+customize-mode-overflow-list-title = à¹à¸¡à¸à¸¹à¸¥à¹à¸
+customize-mode-uidensity =
+ .label = à¸à¸§à¸²à¸¡à¸«à¸à¸²à¹à¸à¹à¸
+customize-mode-done =
+ .label = à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸
+customize-mode-lwthemes-menu-manage =
+ .label = à¸à¸±à¸à¸à¸²à¸£
+ .accesskey = à¸
+customize-mode-toolbars =
+ .label = à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸
+customize-mode-titlebar =
+ .label = à¹à¸à¸à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸
+customize-mode-uidensity-menu-touch =
+ .label = สัมà¸à¸±à¸ª
+ .accesskey = ส
+ .tooltiptext = สัมà¸à¸±à¸ª
+customize-mode-uidensity-auto-touch-mode-checkbox =
+ .label = à¹à¸à¹à¸à¸²à¸£à¸ªà¸±à¸¡à¸à¸±à¸ªà¸ªà¸³à¸«à¸£à¸±à¸à¹à¸«à¸¡à¸à¹à¸à¹à¸à¹à¸¥à¹à¸
+customize-mode-extra-drag-space =
+ .label = à¸à¸·à¹à¸à¸à¸µà¹à¸¥à¸²à¸
+customize-mode-lwthemes =
+ .label = à¸à¸¸à¸à¸à¸à¹à¸à¹à¸
+customize-mode-overflow-list-description = ลาà¸à¹à¸¥à¹à¸§à¸à¸¥à¹à¸à¸¢à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸§à¹à¹à¸à¸¥à¹à¹à¸à¸·à¹à¸à¸¡à¹à¸à¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸à¸à¸à¸¸à¸â¦
+customize-mode-uidensity-menu-normal =
+ .label = à¸à¸à¸à¸´
+ .accesskey = à¸
+ .tooltiptext = à¸à¸à¸à¸´
+customize-mode-uidensity-menu-compact =
+ .label = à¸à¸°à¸à¸±à¸à¸£à¸±à¸
+ .accesskey = à¸
+ .tooltiptext = à¸à¸°à¸à¸±à¸à¸£à¸±à¸
+customize-mode-lwthemes-menu-get-more =
+ .label = รัà¸à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+ .accesskey = ร
+customize-mode-undo-cmd =
+ .label = à¹à¸¥à¸´à¸à¸à¸³
+customize-mode-lwthemes-my-themes =
+ .value = à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸à¸à¸à¸±à¸
diff --git a/browser/browser/newInstallPage.ftl b/browser/browser/newInstallPage.ftl
new file mode 100644
index 00000000000..a036ced5ad2
--- /dev/null
+++ b/browser/browser/newInstallPage.ftl
@@ -0,0 +1,28 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### For this feature, "installation" is used to mean "this discrete download of
+### Firefox" and "version" is used to mean "the specific revision number of a
+### given Firefox channel". These terms are not synonymous.
+
+title = à¸à¹à¸²à¸§à¸ªà¸³à¸à¸±à¸
+heading = à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸±à¸à¹à¸à¸£à¹à¸à¸¥à¹ { -brand-short-name } à¸à¸à¸à¸à¸¸à¸
+changed-title = à¸à¸°à¹à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸à¹à¸²à¸
+changed-desc-profiles = à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ { -brand-short-name } à¸à¸µà¹à¸¡à¸µà¹à¸à¸£à¹à¸à¸¥à¹à¹à¸«à¸¡à¹ à¹à¸à¸£à¹à¸à¸¥à¹à¸à¸·à¸à¸à¸¸à¸à¸à¸à¸à¹à¸à¸¥à¹à¸à¸µà¹ Firefox à¸à¸±à¸à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥ à¹à¸à¹à¸ à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸² รหัสà¸à¹à¸²à¸ à¹à¸¥à¸°à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸à¸à¸à¸¹à¹à¹à¸à¹
+changed-desc-dedicated = à¹à¸à¸·à¹à¸à¹à¸«à¹à¸ªà¸¥à¸±à¸à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ Firefox (รวมà¸à¸¶à¸ Firefox, Firefox ESR, Firefox Beta, Firefox Developer Edition à¹à¸¥à¸° Firefox Nightly) à¹à¸à¹à¸à¹à¸²à¸¢à¸à¸¶à¹à¸ à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸µà¹à¸¡à¸µà¹à¸à¸£à¹à¸à¸¥à¹à¹à¸à¸à¸²à¸° à¸à¸¶à¹à¸à¸à¸°à¹à¸¡à¹à¹à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸¸à¸à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹à¸à¸±à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ Firefox à¸à¸·à¹à¸ ๠à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+lost = à¸à¸¸à¸à¸à¸°à¹à¸¡à¹à¸ªà¸¹à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸±à¸§à¸«à¸£à¸·à¸à¸à¸²à¸£à¸à¸£à¸±à¸à¹à¸à¹à¸à¹à¸ ๠หาà¸à¸à¸¸à¸à¸à¸±à¸à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸¢à¸±à¸ Firefox à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¹à¸à¸£à¸·à¹à¸à¸à¸à¸µà¹à¹à¸¥à¹à¸§ à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸«à¸¥à¹à¸²à¸à¸±à¹à¸à¸à¸°à¸¢à¸±à¸à¸à¸à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸²à¸à¹à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ Firefox à¸à¸·à¹à¸
+options-title = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸à¸à¸à¸±à¸à¸à¸·à¸à¸à¸°à¹à¸£
+options-do-nothing = หาà¸à¸à¸¸à¸à¹à¸¡à¹à¸à¸±à¸à¸ªà¸´à¸à¹à¸ à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸£à¹à¸à¸¥à¹à¸à¸à¸à¸à¸¸à¸à¹à¸ { -brand-short-name } à¸à¸°à¹à¸à¸à¸à¹à¸²à¸à¸à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸à¸à¸à¸·à¹à¸à¸à¸à¸ Firefox
+options-use-sync = หาà¸à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸«à¹à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¹à¸à¸£à¹à¸à¸¥à¹à¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¸·à¸à¸à¸à¸±à¸à¹à¸à¸à¸¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ Firefox à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹ { -fxaccount-brand-name } à¹à¸à¸·à¹à¸à¸à¸µà¹à¸à¸°à¸à¸³à¹à¸«à¹à¸¡à¸±à¸à¸ªà¸à¸à¸à¸¥à¹à¸à¸à¸à¸±à¸à¹à¸à¹
+resources = à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£:
+support-link = à¹à¸à¹à¸à¸²à¸à¸à¸±à¸§à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸£à¹à¸à¸¥à¹ - à¸à¸à¸à¸§à¸²à¸¡à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸
+sync-header = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸²à¸«à¸£à¸·à¸à¸ªà¸£à¹à¸²à¸ { -fxaccount-brand-name }
+sync-label = à¸à¹à¸à¸à¸à¸µà¹à¸¡à¸¥à¸à¸à¸à¸à¸¸à¸
+sync-input =
+ .placeholder = à¸à¸µà¹à¸¡à¸¥
+sync-button = à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+sync-terms = à¹à¸à¸·à¹à¸à¸à¸°à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸ à¸à¸¸à¸à¸à¹à¸à¸à¸¢à¸à¸¡à¸£à¸±à¸ à¸à¹à¸à¸à¸à¸¥à¸à¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¸£à¸´à¸à¸²à¸£ à¹à¸¥à¸° à¹à¸¥à¸° à¸à¹à¸à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+sync-first = à¹à¸à¹à¸à¸²à¸ { -sync-brand-name } à¹à¸à¹à¸à¸à¸£à¸±à¹à¸à¹à¸£à¸? à¸à¸¸à¸à¸à¸²à¸à¸à¹à¸à¸à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¹à¸à¸à¸¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ Firefox à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸
+sync-learn = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
diff --git a/browser/browser/newtab/asrouter.ftl b/browser/browser/newtab/asrouter.ftl
new file mode 100644
index 00000000000..45490e594af
--- /dev/null
+++ b/browser/browser/newtab/asrouter.ftl
@@ -0,0 +1,62 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+cfr-doorhanger-extension-heading = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸µà¹à¹à¸à¸°à¸à¸³
+cfr-doorhanger-pintab-heading = ลà¸à¸à¸à¸µà¹: à¸à¸±à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸
+cfr-doorhanger-extension-sumo-link =
+ .tooltiptext = à¸à¸³à¹à¸¡à¸à¸±à¸à¸à¸¶à¸à¹à¸«à¹à¸à¸ªà¸´à¹à¸à¸à¸µà¹
+cfr-doorhanger-extension-cancel-button = à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+ .accesskey = ม
+cfr-doorhanger-extension-ok-button = à¹à¸à¸´à¹à¸¡à¸à¸à¸à¸à¸µà¹
+ .accesskey = à¸
+cfr-doorhanger-pintab-ok-button = à¸à¸±à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸à¸à¸µà¹
+ .accesskey = P
+cfr-doorhanger-extension-manage-settings-button = à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸³à¹à¸à¸°à¸à¸³
+ .accesskey = à¸
+cfr-doorhanger-extension-never-show-recommendation = à¹à¸¡à¹à¸à¹à¸à¸à¹à¸ªà¸à¸à¸à¸³à¹à¸à¸°à¸à¸³à¸à¸µà¹à¹à¸«à¹à¸à¸±à¸
+ .accesskey = ส
+cfr-doorhanger-extension-learn-more-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# This string is used on a new line below the add-on name
+# Variables:
+# $name (String) - Add-on author name
+cfr-doorhanger-extension-author = à¹à¸à¸¢ { $name }
+# This is a notification displayed in the address bar.
+# When clicked it opens a panel with a message for the user.
+cfr-doorhanger-extension-notification = à¸à¸³à¹à¸à¸°à¸à¸³
+
+## Add-on statistics
+## These strings are used to display the total number of
+## users and rating for an add-on. They are shown next to each other.
+
+# Variables:
+# $total (Number) - The rating of the add-on from 1 to 5
+cfr-doorhanger-extension-rating =
+ .tooltiptext =
+ { $total ->
+ *[other] { $total } à¸à¸²à¸§
+ }
+# Variables:
+# $total (Number) - The total number of users using the add-on
+cfr-doorhanger-extension-total-users =
+ { $total ->
+ *[other] { $total } à¸à¸¹à¹à¹à¸à¹
+ }
+cfr-doorhanger-pintab-description = à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸§à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¸à¹à¸à¸¢à¹à¸à¹à¸à¸¢à¹à¸²à¸à¸à¹à¸²à¸¢à¸à¸²à¸¢ à¹à¸à¸´à¸à¹à¸§à¹à¸à¹à¸§à¹à¹à¸à¹à¸à¹à¸à¸à¸¥à¸à¸à¹à¸§à¸¥à¸² (à¹à¸¡à¹à¸§à¹à¸²à¸à¸¸à¸à¸à¸°à¹à¸à¸´à¸à¸à¸´à¸à¹à¸«à¸¡à¹à¸à¹à¸à¸²à¸¡)
+
+## These messages are steps on how to use the feature and are shown together.
+
+cfr-doorhanger-pintab-step1 = à¸à¸¥à¸´à¸à¸à¸§à¸² à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸°à¸à¸±à¸
+cfr-doorhanger-pintab-step2 = à¹à¸¥à¸·à¸à¸ à¸à¸±à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸ à¸à¸²à¸à¹à¸¡à¸à¸¹
+cfr-doorhanger-pintab-step3 = หาà¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸ à¸à¸¸à¸à¸à¸°à¹à¸à¹à¹à¸«à¹à¸à¸à¸¸à¸à¸ªà¸µà¸à¹à¸²à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸±à¸
+cfr-doorhanger-pintab-animation-pause = หยุà¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+cfr-doorhanger-pintab-animation-resume = à¸à¸³à¸à¹à¸
+
+## Firefox Accounts Message
+
+cfr-doorhanger-bookmark-fxa-header = à¸à¸´à¸à¸à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸¸à¸à¸à¸µà¹
+cfr-doorhanger-bookmark-fxa-body = à¹à¸¢à¸µà¹à¸¢à¸¡à¸¡à¸²à¸! à¸à¸à¸à¸à¸µà¹à¸à¸¢à¹à¸²à¸à¸à¸à¹à¸à¹à¸à¸¢à¹à¸¡à¹à¸¡à¸µà¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸¡à¸·à¸à¸à¸·à¸à¸à¸à¸à¸à¸¸à¸ à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸±à¸ { -fxaccount-brand-name }
+cfr-doorhanger-bookmark-fxa-link-text = à¸à¸´à¸à¸à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸¸à¸à¸à¸à¸à¸à¸µà¹â¦
+cfr-doorhanger-bookmark-fxa-close-btn-tooltip =
+ .aria-label = à¸à¸¸à¹à¸¡à¸à¸´à¸
+ .title = à¸à¸´à¸
diff --git a/browser/browser/newtab/onboarding.ftl b/browser/browser/newtab/onboarding.ftl
new file mode 100644
index 00000000000..71c2d754638
--- /dev/null
+++ b/browser/browser/newtab/onboarding.ftl
@@ -0,0 +1,132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## UI strings for the simplified onboarding modal
+
+
+### UI strings for the simplified onboarding modal / about:welcome
+### Various strings use a non-breaking space to avoid a single dangling /
+### widowed word, so test on various window sizes if you also want this.
+
+
+## These button action text can be split onto multiple lines, so use explicit
+## newlines in translations to control where the line break appears (e.g., to
+## avoid breaking quoted text).
+
+onboarding-button-label-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+onboarding-button-label-try-now = ลà¸à¸à¹à¸¥à¸¢à¸à¸à¸à¸à¸µà¹
+onboarding-button-label-get-started = à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¹à¸à¸²à¸
+
+## Welcome modal dialog strings
+
+onboarding-welcome-header = ยิà¸à¸à¸µà¸à¹à¸à¸à¸£à¸±à¸à¸ªà¸¹à¹ { -brand-short-name }
+onboarding-welcome-body = à¸à¸¸à¸à¸¡à¸µà¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸¥à¹à¸§
à¸à¸¡à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸·à¹à¸à¸à¸µà¹à¹à¸«à¸¥à¸·à¸à¸à¸à¸ { -brand-product-name }
+onboarding-welcome-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸£à¸°à¹à¸¢à¸à¸à¹
+onboarding-join-form-header = à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ { -brand-product-name }
+onboarding-join-form-body = à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸¡à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¹à¸à¸²à¸
+onboarding-join-form-email =
+ .placeholder = à¸à¹à¸à¸à¸à¸µà¹à¸¡à¸¥
+onboarding-join-form-email-error = à¸à¹à¸à¸à¸à¸²à¸£à¸à¸µà¹à¸¡à¸¥à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+onboarding-join-form-legal = à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¸·à¸à¸§à¹à¸²à¸à¸¸à¸à¸¢à¸à¸¡à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸à¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¸£à¸´à¸à¸²à¸£à¹à¸¥à¸°à¸à¹à¸à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+onboarding-join-form-continue = à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+onboarding-start-browsing-button-label = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+
+## These are individual benefit messages shown with an image, title and
+## description.
+
+onboarding-benefit-products-title = à¸à¸¥à¸´à¸à¸ ัà¸à¸à¹à¸à¸µà¹à¸¡à¸µà¸à¸£à¸°à¹à¸¢à¸à¸à¹
+onboarding-benefit-products-text = à¸à¸³à¸ªà¸´à¹à¸à¸à¹à¸²à¸ ๠à¹à¸«à¹à¸ªà¸³à¹à¸£à¹à¸à¸à¹à¸§à¸¢à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸¡à¸²à¸à¸¡à¸²à¸¢à¸à¸µà¹à¹à¸à¸²à¸£à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸¸à¸
+onboarding-benefit-knowledge-title = à¸à¸§à¸²à¸¡à¸£à¸¹à¹à¹à¸à¸´à¸à¸à¸à¸´à¸à¸±à¸à¸´
+onboarding-benefit-knowledge-text = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸à¸¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸£à¸¹à¹à¹à¸à¸·à¹à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸¢à¹à¸²à¸à¸à¸²à¸à¸à¸¥à¸²à¸à¹à¸¥à¸°à¸à¸¥à¸à¸à¸ ัยยิà¹à¸à¸à¸¶à¹à¸
+onboarding-benefit-privacy-title = à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸µà¹à¹à¸à¹à¸à¸£à¸´à¸
+# "Personal Data Promise" is a concept that should be translated consistently
+# across the product. It refers to a concept shown elsewhere to the user: "The
+# Firefox Personal Data Promise is the way we honor your data in everything we
+# make and do. We take less data. We keep it safe. And we make sure that we are
+# transparent about how we use it."
+onboarding-benefit-privacy-text = à¸à¸¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¹à¸£à¸²à¸à¸³à¹à¸à¸²à¸£à¸à¸à¹à¸à¸à¸³à¸¡à¸±à¹à¸à¸ªà¸±à¸à¸à¸²à¸à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¸à¸à¸à¹à¸£à¸²: à¹à¸à¹à¸à¹à¸«à¹à¸à¹à¸à¸¢ รัà¸à¸©à¸²à¹à¸«à¹à¸à¸¥à¸à¸à¸ ัย à¹à¸¡à¹à¸¡à¸µà¸à¸§à¸²à¸¡à¸¥à¸±à¸
+
+## These strings belong to the individual onboarding messages.
+
+
+## Each message has a title and a description of what the browser feature is.
+## Each message also has an associated button for the user to try the feature.
+## The string for the button is found above, in the UI strings section
+
+onboarding-private-browsing-title = à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+onboarding-private-browsing-text = à¹à¸£à¸µà¸¢à¸à¸à¸¹à¸à¹à¸§à¸¢à¸à¸±à¸§à¸à¸¸à¸à¹à¸à¸ à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸£à¹à¸à¸¡à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸à¸à¹à¸¥à¸à¹à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¹à¸à¹à¸§à¹à¸à¸à¹à¸²à¸ à¹
+onboarding-screenshots-title = ภาà¸à¸«à¸à¹à¸²à¸à¸
+onboarding-screenshots-text = à¸à¸±à¸ à¸à¸±à¸à¸à¸¶à¸ à¹à¸¥à¸°à¹à¸à¹à¸à¸à¸±à¸à¸ าà¸à¸«à¸à¹à¸²à¸à¸ - à¹à¸à¸¢à¹à¸¡à¹à¸à¹à¸à¸à¸à¸à¸à¸à¸²à¸ { -brand-short-name } à¸à¸±à¸à¸ าà¸à¹à¸à¹à¸à¸à¸£à¸´à¹à¸§à¸à¸«à¸£à¸·à¸à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸²à¸¡à¸à¸µà¹à¸à¸¸à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹ à¸à¸²à¸à¸à¸±à¹à¸à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¢à¸±à¸à¹à¸§à¹à¸à¹à¸à¸·à¹à¸à¸à¸§à¸²à¸¡à¸à¹à¸²à¸¢à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¥à¸°à¹à¸à¹à¸à¸à¸±à¸
+onboarding-addons-title = สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+onboarding-addons-text = à¹à¸à¸´à¹à¸¡à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¸à¸µà¹à¸à¸³à¹à¸«à¹ { -brand-short-name } à¸à¸³à¸à¸²à¸à¹à¸à¹à¸¡à¸²à¸à¸à¸¶à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸¸à¸ à¹à¸à¸£à¸µà¸¢à¸à¹à¸à¸µà¸¢à¸à¸£à¸²à¸à¸² à¸à¸£à¸§à¸à¸ªà¸à¸à¸ªà¸ าà¸à¸à¸²à¸à¸²à¸¨ หรืà¸à¹à¸ªà¸à¸à¸à¸¸à¸à¸¥à¸´à¸à¸ าà¸à¸à¸à¸à¸à¸¸à¸à¸à¹à¸§à¸¢à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸
+onboarding-ghostery-title = Ghostery
+onboarding-ghostery-text = à¸à¹à¸à¸à¹à¸§à¹à¸à¹à¸à¹à¹à¸£à¹à¸§ à¸à¸¥à¸²à¸ à¹à¸¥à¸°à¸à¸¥à¸à¸à¸ ัยà¸à¸¶à¹à¸à¸à¹à¸§à¸¢à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢ à¹à¸à¹à¸ Ghostery à¸à¸¶à¹à¸à¹à¸«à¹à¸à¸¸à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸©à¸à¸²à¸à¸µà¹à¸à¹à¸²à¸£à¸³à¸à¸²à¸
+# Note: "Sync" in this case is a generic verb, as in "to synchronize"
+onboarding-fxa-title = à¸à¸´à¸à¸à¹
+onboarding-fxa-text = ลà¸à¸à¸°à¹à¸à¸µà¸¢à¸ { -fxaccount-brand-name } à¹à¸¥à¸°à¸à¸´à¸à¸à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², รหัสà¸à¹à¸²à¸ à¹à¸¥à¸°à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹ { -brand-short-name }
+onboarding-tracking-protection-title = à¸à¸§à¸à¸à¸¸à¸¡à¸§à¸´à¸à¸µà¸à¸µà¹à¸à¸¸à¸à¸à¸¹à¸à¸à¸´à¸à¸à¸²à¸¡
+onboarding-tracking-protection-text = à¹à¸¡à¹à¸à¸à¸à¹à¸«à¹à¹à¸à¸©à¸à¸²à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¹à¸à¸à¸¥à¸à¸à¹à¸§à¸¥à¸²à¸à¸±à¹à¸à¸«à¸£à¸·à¸? { -brand-short-name } à¸à¹à¸§à¸¢à¹à¸«à¹à¸à¸¸à¸à¸à¸§à¸à¸à¸¸à¸¡à¸§à¸´à¸à¸µà¸à¸µà¹à¸à¸¹à¹à¹à¸à¸©à¸à¸²à¸à¸´à¸à¸à¸²à¸¡à¸à¸´à¸à¸à¸£à¸£à¸¡à¸à¸à¸à¸à¸¸à¸à¸à¸à¸à¹à¸¥à¸à¹
+# "Update" is a verb, as in "Update the existing settings", not "Options about
+# updates".
+onboarding-tracking-protection-button =
+ { PLATFORM() ->
+ [windows] à¸à¸±à¸à¹à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+ *[other] à¸à¸±à¸à¹à¸à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+ }
+onboarding-tracking-protection-title2 = à¸à¸²à¸£à¸à¹à¸à¸à¸à¸±à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸²à¸¡
+onboarding-tracking-protection-text2 = { -brand-short-name } à¸à¹à¸§à¸¢à¸«à¸¢à¸¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¹à¸«à¹à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¸à¸à¸à¹à¸¥à¸à¹ à¸à¸³à¹à¸«à¹à¹à¸à¸©à¸à¸²à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¹à¸à¸à¸±à¹à¸§à¸à¸±à¹à¸à¹à¸§à¹à¸à¹à¸à¹à¸¢à¸²à¸à¸à¸¶à¹à¸
+onboarding-tracking-protection-button2 = วิà¸à¸µà¸à¸²à¸£à¸à¸³à¸à¸²à¸
+onboarding-data-sync-title = à¸à¸³à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸±à¸à¸à¸¸à¸
+# "Sync" is short for synchronize.
+onboarding-data-sync-text = à¸à¸´à¸à¸à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹ { -brand-product-name }
+onboarding-data-sync-button = à¹à¸à¸´à¸ { -sync-brand-short-name }
+# "Sync" is short for synchronize.
+onboarding-data-sync-text2 = à¸à¸´à¸à¸à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², รหัสà¸à¹à¸²à¸, à¹à¸¥à¸°à¸à¸·à¹à¸ ๠à¸à¸¸à¸à¸à¸µà¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹ { -brand-product-name }
+onboarding-data-sync-button2 = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸² { -sync-brand-short-name }
+onboarding-firefox-monitor-title = รัà¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¸¥à¸°à¹à¸¡à¸´à¸à¸à¹à¸à¸¡à¸¹à¸¥
+onboarding-firefox-monitor-text = { -monitor-brand-name } à¸à¸°à¹à¸à¹à¸²à¸à¸¹à¸§à¹à¸²à¸à¸µà¹à¸¡à¸¥à¸à¸à¸à¸à¸¸à¸à¸à¸£à¸²à¸à¸à¹à¸à¸à¸²à¸£à¸¥à¸°à¹à¸¡à¸´à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸«à¸£à¸·à¸à¹à¸¡à¹à¹à¸¥à¸°à¸à¸°à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸¸à¸à¸«à¸²à¸à¸à¸£à¸²à¸à¸à¹à¸à¸à¸²à¸£à¸¥à¸°à¹à¸¡à¸´à¸à¹à¸«à¸¡à¹
+onboarding-firefox-monitor-button = สมัà¸à¸£à¸£à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+onboarding-browse-privately-title = à¹à¸£à¸µà¸¢à¸à¸à¸¹à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+onboarding-browse-privately-text = à¸à¸²à¸£à¸à¹à¸à¸à¹à¸ªà¹à¸à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸°à¸¥à¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¡à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸à¸´à¸à¹à¸à¹à¸à¸à¸§à¸²à¸¡à¸¥à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸£à¸à¹à¸à¸²à¸¡à¸à¸µà¹à¹à¸à¹à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸¡à¸²à¹à¸«à¹à¸
+onboarding-browse-privately-button = à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+onboarding-firefox-send-title = à¸à¸³à¹à¸«à¹à¹à¸à¸¥à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+onboarding-firefox-send-text = { -send-brand-name } à¸à¸à¸à¹à¸à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸£à¹à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ªà¹à¸à¸à¸à¸£à¸à¸§à¸à¸à¸£à¹à¸¥à¸°à¸¥à¸´à¸à¸à¹à¸à¸µà¹à¸«à¸¡à¸à¸à¸²à¸¢à¸¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+onboarding-firefox-send-text2 = à¸à¸±à¸à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸µà¹ { -send-brand-name } à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¸¥à¹à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ªà¹à¸à¸à¸à¸£à¸à¸§à¸à¸à¸£à¹à¸¥à¸°à¸¥à¸´à¸à¸à¹à¸à¸µà¹à¸«à¸¡à¸à¸à¸²à¸¢à¸¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+onboarding-firefox-send-button = ลà¸à¸ { -send-brand-name }
+onboarding-mobile-phone-title = รัภ{ -brand-product-name } à¹à¸à¹à¸à¸£à¸¨à¸±à¸à¸à¹à¸à¸à¸à¸à¸¸à¸
+onboarding-mobile-phone-text = à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸ { -brand-product-name } สำหรัภiOS หรืภAndroid à¹à¸¥à¸°à¸à¸´à¸à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¸à¹à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¹à¸²à¸ à¹
+# "Mobile" is short for mobile/cellular phone, "Browser" is short for web
+# browser.
+onboarding-mobile-phone-button = à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸ªà¸³à¸«à¸£à¸±à¸à¸¡à¸·à¸à¸à¸·à¸
+onboarding-send-tabs-title = สà¹à¸à¹à¸à¹à¸à¹à¸«à¹à¸à¸±à¸§à¸à¸¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸µ
+# "Send Tabs" refers to "Send Tab to Device" feature that appears when opening a
+# tab's context menu.
+onboarding-send-tabs-text = Send Tabs à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸à¸à¸à¸¸à¸à¸à¸±à¸à¸à¸µà¹à¸à¸¢à¹à¸¡à¹à¸à¹à¸à¸à¸à¸±à¸à¸¥à¸à¸, วาà¸, หรืà¸à¸à¸à¸à¸à¸²à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+onboarding-send-tabs-button = à¹à¸£à¸´à¹à¸¡à¹à¸à¹ Send Tabs
+onboarding-pocket-anywhere-title = à¸à¹à¸²à¸à¹à¸¥à¸°à¸à¸±à¸à¹à¸à¹à¸à¸¸à¸à¸à¸µà¹
+# "downtime" refers to the user's free/spare time.
+onboarding-pocket-anywhere-text = { -pocket-brand-name } à¸à¸±à¸à¸à¸¶à¸à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¸à¸µà¹à¸à¸¸à¸à¸à¸·à¹à¸à¸à¸à¸à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸²à¸, à¸à¸±à¸, à¹à¸¥à¸°à¸à¸¹à¹à¸à¸à¹à¸§à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸¸à¸à¸«à¸¢à¸¸à¸à¸à¸³à¸à¸²à¸ à¹à¸¡à¹à¸§à¹à¸²à¸à¸¸à¸à¸à¸°à¸à¸à¸à¹à¸¥à¸à¹
+onboarding-pocket-anywhere-text2 = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸£à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¹à¸§à¸¢à¹à¸à¸ { -pocket-brand-name } à¹à¸¥à¸°à¸à¹à¸²à¸à¸à¸±à¸à¹à¸¥à¸°à¸à¸¹à¹à¸¡à¸·à¹à¸à¹à¸à¸à¹à¸à¸²à¸¡à¸à¸µà¹à¸à¸¸à¸à¸ªà¸°à¸à¸§à¸
+onboarding-pocket-anywhere-button = ลà¸à¸ { -pocket-brand-name }
+onboarding-lockwise-passwords-title = à¸à¸³à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸¸à¸à¸à¸µà¹
+onboarding-lockwise-passwords-text = { -lockwise-brand-name } à¸à¸±à¸à¸à¸¶à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸µà¹à¸à¸¥à¸à¸à¸ ัยà¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸¢à¹à¸²à¸à¸à¹à¸²à¸¢à¸à¸²à¸¢
+onboarding-lockwise-passwords-button = รัภ{ -lockwise-brand-name }
+onboarding-lockwise-passwords-text2 = à¹à¸à¹à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸µà¹à¸à¸¸à¸à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹à¸à¸¢à¹à¸²à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸¥à¸°à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸¢à¹à¸²à¸à¸à¹à¸²à¸¢à¸à¸²à¸¢à¸à¹à¸§à¸¢ { -lockwise-brand-name }
+onboarding-lockwise-passwords-button2 = รัà¸à¹à¸à¸
+onboarding-facebook-container-title = à¸à¸±à¹à¸à¸à¹à¸²à¸à¸à¸à¹à¸à¸à¹à¸«à¹à¸à¸±à¸ Facebook
+onboarding-facebook-container-text = { -facebook-container-brand-name } à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸£à¸°à¸à¸³à¸à¸±à¸§ Facebook à¸à¸à¸à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¸ªà¸´à¹à¸à¸à¸·à¹à¸ à¸à¸³à¹à¸«à¹ Facebook à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¸à¸±à¹à¸§à¸à¸±à¹à¸à¹à¸§à¹à¸à¹à¸à¹à¸¢à¸²à¸
+onboarding-facebook-container-text2 = { -facebook-container-brand-name } à¹à¸¢à¸à¹à¸à¸£à¹à¸à¸¥à¹à¸à¸à¸à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¸ªà¸´à¹à¸à¸à¸·à¹à¸ à¸à¸³à¹à¸«à¹ Facebook à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¸à¸±à¹à¸§à¸à¸±à¹à¸à¹à¸§à¹à¸à¹à¸à¹à¸¢à¸²à¸
+onboarding-facebook-container-button = à¹à¸à¸´à¹à¸¡à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+
+## Message strings belonging to the Return to AMO flow
+
+return-to-amo-sub-header = à¹à¸¢à¸µà¹à¸¢à¸¡ à¸à¸¸à¸à¹à¸à¹à¸£à¸±à¸ { -brand-short-name } à¹à¸¥à¹à¸§
+# will be replaced with the icon belonging to the extension
+#
+# Variables:
+# $addon-name (String) - Name of the add-on
+return-to-amo-addon-header = à¸à¸à¸à¸à¸µà¹à¹à¸«à¹à¸à¸¸à¸à¹à¸«à¸¥à¸ { $addon-name } à¹à¸à¹à¹à¸¥à¸¢
+return-to-amo-extension-button = à¹à¸à¸´à¹à¸¡à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+return-to-amo-get-started-button = à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¹à¸à¸²à¸à¸à¸±à¸ { -brand-short-name }
diff --git a/browser/browser/pageInfo.ftl b/browser/browser/pageInfo.ftl
new file mode 100644
index 00000000000..d48ad5ed44c
--- /dev/null
+++ b/browser/browser/pageInfo.ftl
@@ -0,0 +1,227 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/. --
+
+page-info-window =
+ .style = width: 600px; min-height: 550px;
+copy =
+ .key = C
+menu-copy =
+ .label = à¸à¸±à¸à¸¥à¸à¸
+ .accesskey = à¸
+select-all =
+ .key = A
+menu-select-all =
+ .label = à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+ .accesskey = ล
+close-window =
+ .key = A
+general-tab =
+ .label = à¸à¸±à¹à¸§à¹à¸
+ .accesskey = à¸
+general-title =
+ .value = à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸:
+general-url =
+ .value = à¸à¸µà¹à¸à¸¢à¸¹à¹:
+general-type =
+ .value = à¸à¸à¸´à¸:
+general-mode =
+ .value = à¹à¸«à¸¡à¸à¸à¸²à¸£à¹à¸£à¸à¹à¸à¸à¸£à¹:
+general-size =
+ .value = à¸à¸à¸²à¸:
+general-referrer =
+ .value = URL à¸à¹à¸²à¸à¸à¸´à¸:
+general-modified =
+ .value = à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¹à¸¡à¸·à¹à¸:
+general-encoding =
+ .value = รหัสà¸à¸±à¸à¸à¸£à¸°:
+general-meta-name =
+ .label = à¸à¸·à¹à¸
+general-meta-content =
+ .label = à¹à¸à¸·à¹à¸à¸«à¸²
+media-tab =
+ .label = สืà¹à¸
+ .accesskey = ส
+media-location =
+ .value = à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸:
+media-text =
+ .value = à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸:
+media-alt-header =
+ .label = à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸à¸ าà¸
+media-address =
+ .label = à¸à¸µà¹à¸à¸¢à¸¹à¹
+media-type =
+ .label = à¸à¸à¸´à¸
+media-size =
+ .label = à¸à¸à¸²à¸
+media-count =
+ .label = à¸à¸³à¸à¸§à¸
+media-dimension =
+ .value = มิà¸à¸´:
+media-long-desc =
+ .value = à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¹à¸à¸à¸¢à¸²à¸§:
+media-save-as =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¹à¸â¦
+ .accesskey = à¸
+media-save-image-as =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¹à¸â¦
+ .accesskey = à¸
+media-preview =
+ .value = à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸ªà¸·à¹à¸:
+perm-tab =
+ .label = สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸
+ .accesskey = ส
+permissions-for =
+ .value = สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸:
+security-tab =
+ .label = à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+ .accesskey = à¸
+security-view =
+ .label = à¸à¸¹à¹à¸à¸£à¸±à¸à¸£à¸à¸
+ .accesskey = à¸
+security-view-unknown = à¹à¸¡à¹à¸à¸£à¸²à¸
+ .value = à¹à¸¡à¹à¸à¸£à¸²à¸
+security-view-identity =
+ .value = à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸£à¸°à¸à¸³à¸à¸±à¸§à¹à¸§à¹à¸à¹à¸à¸à¹
+security-view-identity-owner =
+ .value = à¹à¸à¹à¸²à¸à¸à¸:
+security-view-identity-domain =
+ .value = à¹à¸§à¹à¸à¹à¸à¸à¹:
+security-view-identity-verifier =
+ .value = ยืà¸à¸¢à¸±à¸à¹à¸à¸¢:
+security-view-identity-validity =
+ .value = หมà¸à¸à¸²à¸¢à¸¸à¹à¸¡à¸·à¹à¸:
+security-view-privacy =
+ .value = à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸£à¸°à¸§à¸±à¸à¸´
+security-view-privacy-history-value = à¸à¸±à¸à¹à¸à¸¢à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸«à¸à¹à¸²à¸§à¸±à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+security-view-privacy-sitedata-value = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸¥à¸à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸±à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+security-view-privacy-clearsitedata =
+ .label = ลà¹à¸²à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ .accesskey = ล
+security-view-privacy-passwords-value = à¸à¸±à¸à¹à¸à¸¢à¸à¸±à¸à¸à¸¶à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸ ๠สำหรัà¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+security-view-privacy-viewpasswords =
+ .label = à¸à¸¹à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+ .accesskey = ร
+security-view-technical =
+ .value = รายละà¹à¸à¸µà¸¢à¸à¸à¸²à¸à¹à¸à¸à¸à¸´à¸
+help-button =
+ .label = à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸
+
+## These strings are used to tell the user if the website is storing cookies
+## and data on the users computer in the security tab of pageInfo
+## Variables:
+## $value (number) - Amount of data being stored
+## $unit (string) - The unit of data being stored (Usually KB)
+
+security-site-data-cookies = à¹à¸à¹, à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹ { $value } { $unit }
+security-site-data-only = à¹à¸à¹, à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹ { $value } { $unit }
+security-site-data-cookies-only = à¹à¸à¹, à¸à¸¸à¸à¸à¸µà¹
+security-site-data-no = à¹à¸¡à¹
+image-size-unknown = à¹à¸¡à¹à¸à¸£à¸²à¸
+not-set-verified-by = à¹à¸¡à¹à¸£à¸°à¸à¸¸
+not-set-alternative-text = à¹à¸¡à¹à¸£à¸°à¸à¸¸
+not-set-date = à¹à¸¡à¹à¸£à¸°à¸à¸¸
+media-img = ภาà¸
+media-bg-img = à¸à¸·à¹à¸à¸«à¸¥à¸±à¸
+media-border-img = à¸à¸à¸
+media-list-img = à¸à¸¸à¸à¸à¸³
+media-cursor = à¹à¸à¸à¸£à¹à¹à¸à¸à¸£à¹
+media-object = วัà¸à¸à¸¸
+media-embed = à¸à¸±à¸à¸à¸±à¸§
+media-link = à¹à¸à¸à¸à¸
+media-input = à¸à¹à¸²à¹à¸à¹à¸²
+media-video = วิà¸à¸µà¹à¸
+media-audio = à¹à¸ªà¸µà¸¢à¸
+saved-passwords-yes = à¹à¸à¹
+saved-passwords-no = à¹à¸¡à¹
+no-page-title =
+ .value = หà¸à¹à¸²à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸:
+general-quirks-mode =
+ .value = à¹à¸«à¸¡à¸à¹à¸¡à¹à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸
+general-strict-mode =
+ .value = à¹à¸«à¸¡à¸à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸
+security-no-owner = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸
+media-select-folder = à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸°à¸à¸±à¸à¸à¸¶à¸à¸ าà¸
+media-unknown-not-cached =
+ .value = à¹à¸¡à¹à¸à¸£à¸²à¸ (à¹à¸¡à¹à¸à¸¹à¸à¹à¸à¸)
+permissions-use-default =
+ .label = à¹à¸à¹à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+security-no-visits = à¹à¸¡à¹
+# This string is used to display the number of meta tags
+# in the General Tab
+# Variables:
+# $tags (number) - The number of meta tags
+general-meta-tags =
+ .value =
+ { $tags ->
+ *[other] Meta ({ $tags } à¹à¸à¹à¸)
+ }
+# This string is used to display the number of times
+# the user has visited the website prior
+# Variables:
+# $visits (number) - The number of previous visits
+security-visits-number =
+ { $visits ->
+ [0] à¹à¸¡à¹
+ *[other] à¹à¸à¹, { $visits } à¸à¸£à¸±à¹à¸
+ }
+# This string is used to display the size of a media file
+# Variables:
+# $kb (number) - The size of an image in Kilobytes
+# $bytes (number) - The size of an image in Bytes
+properties-general-size =
+ .value =
+ { $bytes ->
+ *[other] { $kb } KB ({ $bytes } à¹à¸à¸à¹)
+ }
+# This string is used to display the type and number
+# of frames of a animated image
+# Variables:
+# $type (string) - The type of a animated image
+# $frames (number) - The number of frames in an animated image
+media-animated-image-type =
+ .value =
+ { $frames ->
+ *[other] ภาภ{ $type } (à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§ { $frames } à¹à¸à¸£à¸¡)
+ }
+# This string is used to display the type of
+# an image
+# Variables:
+# $type (string) - The type of an image
+media-image-type =
+ .value = ภาภ{ $type }
+# This string is used to display the size of a scaled image
+# in both scaled and unscaled pixels
+# Variables:
+# $dimx (number) - The horizontal size of an image
+# $dimy (number) - The vertical size of an image
+# $scaledx (number) - The scaled horizontal size of an image
+# $scaledy (number) - The scaled vertical size of an image
+media-dimensions-scaled =
+ .value = { $dimx }px à { $dimy }px (à¸à¸£à¸±à¸à¸à¸à¸²à¸à¹à¸à¹à¸ { $scaledx }px à { $scaledy }px)
+# This string is used to display the size of an image in pixels
+# Variables:
+# $dimx (number) - The horizontal size of an image
+# $dimy (number) - The vertical size of an image
+media-dimensions =
+ .value = { $dimx }px à { $dimy }px
+# This string is used to display the size of a media
+# file in kilobytes
+# Variables:
+# $size (number) - The size of the media file in kilobytes
+media-file-size = { $size } KB
+# This string is used to display the website name next to the
+# "Block Images" checkbox in the media tab
+# Variables:
+# $website (string) - The website name
+media-block-image =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸ าà¸à¸à¸²à¸ { $website }
+ .accesskey = à¸
+# This string is used to display the URL of the website on top of the
+# pageInfo dialog box
+# Variables:
+# $website (string) - The url of the website pageInfo is getting info for
+page-info-page =
+ .title = à¸à¹à¸à¸¡à¸¹à¸¥à¸«à¸à¹à¸² - { $website }
+page-info-frame =
+ .title = à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸£à¸à¸ - { $website }
diff --git a/browser/browser/panicButton.ftl b/browser/browser/panicButton.ftl
new file mode 100644
index 00000000000..ee71566ea1d
--- /dev/null
+++ b/browser/browser/panicButton.ftl
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+panic-button-open-new-window = à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸§à¹à¸²à¸à¹à¸«à¸¡à¹
+panic-button-undo-warning = à¸à¸²à¸£à¸à¸£à¸°à¸à¸³à¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¥à¸´à¸à¸à¸³à¹à¸à¹
+panic-button-forget-button =
+ .label = ลืม!
+
+## These strings are combined to form a complete sentence starting with
+## panic-main-timeframe-desc. For example: "Forget the last: Five minutes".
+## Please ensure that this remains the case in the translation.
+
+panic-main-timeframe-desc = ลืมà¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸µà¹:
+panic-button-5min =
+ .label = หà¹à¸²à¸à¸²à¸à¸µ
+panic-button-2hr =
+ .label = สà¸à¸à¸à¸±à¹à¸§à¹à¸¡à¸
+panic-button-day =
+ .label = 24 à¸à¸±à¹à¸§à¹à¸¡à¸
+
+## These strings are combined to form a complete sentence starting with
+## panic-button-action-desc. For example: "Proceeding will: Delete Recent Cookies".
+## Please ensure that this remains the case in the translation.
+## Note also that some strings include tags for emphasis on the
+## words "Cookies", "History", "Tabs" and "Windows". The translation should do the same.
+
+panic-button-action-desc = à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¸°:
+panic-button-delete-cookies = ลà¸à¸à¸¸à¸à¸à¸µà¹à¸¥à¹à¸²à¸ªà¸¸à¸
+panic-button-delete-history = ลà¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸¥à¹à¸²à¸ªà¸¸à¸
+panic-button-delete-tabs-and-windows = à¸à¸´à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸
diff --git a/browser/browser/policies/policies-descriptions.ftl b/browser/browser/policies/policies-descriptions.ftl
new file mode 100644
index 00000000000..b3ceb952e11
--- /dev/null
+++ b/browser/browser/policies/policies-descriptions.ftl
@@ -0,0 +1,88 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## The Enterprise Policies feature is aimed at system administrators
+## who want to deploy these settings across several Firefox installations
+## all at once. This is traditionally done through the Windows Group Policy
+## feature, but the system also supports other forms of deployment.
+## These are short descriptions for individual policies, to be displayed
+## in the documentation section in about:policies.
+
+policy-3rdparty = à¸à¸±à¹à¸à¸à¹à¸¢à¸à¸²à¸¢à¸à¸µà¹ WebExtensions สามารà¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸²à¸ chrome.storage.managed
+policy-AppUpdateURL = à¸à¸±à¹à¸ URL à¸à¸±à¸à¹à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸
+policy-Authentication = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¸ªà¸´à¸à¸à¸´à¹à¹à¸à¸à¸£à¸§à¸¡à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸
+policy-BlockAboutAddons = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸±à¸§à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡ (about:addons)
+policy-BlockAboutConfig = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸«à¸à¹à¸² about:config
+policy-BlockAboutProfiles = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸«à¸à¹à¸² about:profiles
+policy-BlockAboutSupport = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸«à¸à¹à¸² about:support
+policy-Bookmarks = สรà¹à¸²à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸ à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸² à¹à¸¡à¸à¸¹ à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸² หรืà¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸£à¸°à¸à¸¸
+policy-CaptivePortal = à¹à¸à¸´à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸à¸£à¹à¸à¸±à¸¥à¸à¸±à¸à¸à¸£à¸à¸
+policy-CertificatesDescription = à¹à¸à¸´à¹à¸¡à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸«à¸£à¸·à¸à¹à¸à¹à¹à¸à¸£à¸±à¸à¸£à¸à¸à¹à¸à¸à¸±à¸§
+policy-Cookies = à¸à¸à¸¸à¸à¸²à¸à¸«à¸£à¸·à¸à¸à¸à¸´à¹à¸ªà¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹
+policy-DefaultDownloadDirectory = à¸à¸±à¹à¸à¹à¸à¹à¸£à¸à¸à¸à¸£à¸µà¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+policy-DisableAppUpdate = à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸±à¸à¹à¸à¸
+policy-DisableBuiltinPDFViewer = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ PDF.js à¸à¸±à¸§à¸à¸¹ PDF à¹à¸à¸à¸±à¸§à¹à¸ { -brand-short-name }
+policy-DisableDeveloperTools = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸±à¸à¸à¸±à¸à¸à¸²
+policy-DisableFeedbackCommands = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸³à¸ªà¸±à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸ªà¹à¸à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸à¸à¸²à¸à¹à¸¡à¸à¸¹ วิà¸à¸µà¹à¸à¹ (สà¹à¸à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸à¹à¸¥à¸°à¸£à¸²à¸¢à¸à¸²à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸)
+policy-DisableFirefoxAccounts = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£à¸à¸µà¹à¹à¸à¹ { -fxaccount-brand-name } รวมà¸à¸¶à¸ Sync à¸à¹à¸§à¸¢
+# Firefox Screenshots is the name of the feature, and should not be translated.
+policy-DisableFirefoxScreenshots = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸° Firefox Screenshots
+policy-DisableFirefoxStudies = à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹ { -brand-short-name } à¹à¸£à¸µà¸¢à¸à¹à¸à¹à¸à¸²à¸£à¸¨à¸¶à¸à¸©à¸²
+policy-DisableForgetButton = à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¹à¸¡ ลืม
+policy-DisableFormHistory = à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¸à¸à¸à¸£à¹à¸¡
+policy-DisableMasterPasswordCreation = à¸à¹à¸²à¸à¹à¸²à¹à¸à¹à¸à¸à¸£à¸´à¸ à¸à¸°à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸£à¹à¸²à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¸¥à¸±à¸à¹à¸à¹
+policy-DisablePocket = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¹à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸¶à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸à¹à¸à¸¢à¸±à¸ Pocket
+policy-DisablePrivateBrowsing = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+policy-DisableProfileImport = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸¡à¸à¸¹à¹à¸à¸à¸²à¸£à¸à¸³à¹à¸à¹à¸²à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸·à¹à¸
+policy-DisableProfileRefresh = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¹à¸¡ ลà¹à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹ à¹à¸à¸«à¸à¹à¸² about:support
+policy-DisableSafeMode = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัย หมายà¹à¸«à¸à¸¸: สามารà¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹à¸ Shift สำหรัà¸à¹à¸à¹à¸²à¸ªà¸¹à¹à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸à¹à¸à¸ Windows à¹à¸à¹à¸²à¸à¸±à¹à¸à¹à¸à¸¢à¹à¸à¹à¸à¹à¸¢à¸à¸²à¸¢à¸à¸¥à¸¸à¹à¸¡
+policy-DisableSecurityBypass = à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸à¸¹à¹à¹à¸à¹à¹à¸¥à¸µà¹à¸¢à¸à¸à¸³à¹à¸à¸·à¸à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸²à¸à¸£à¸²à¸¢à¸à¸²à¸£
+policy-DisableSetAsDesktopBackground = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸¡à¸à¸¹ à¸à¸±à¹à¸à¹à¸à¹à¸à¸à¸·à¹à¸à¸«à¸¥à¸±à¸à¹à¸à¸ªà¸à¹à¸à¹à¸à¸
+policy-DisableSystemAddonUpdate = à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¸°à¸à¸±à¸à¹à¸à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸à¸à¸£à¸°à¸à¸
+policy-DisableTelemetry = à¸à¸´à¸à¸à¸²à¸£à¸§à¸±à¸à¹à¸¥à¸°à¸ªà¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¹à¸à¸¥
+policy-DisplayBookmarksToolbar = à¹à¸ªà¸à¸à¸à¸¥à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸à¸¢à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+policy-DisplayMenuBar = à¹à¸ªà¸à¸à¹à¸à¸à¹à¸¡à¸à¸¹à¹à¸à¸¢à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+policy-DNSOverHTTPS = à¸à¸³à¸«à¸à¸à¸à¹à¸² DNS à¸à¹à¸²à¸ HTTPS
+policy-DontCheckDefaultBrowser = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸¡à¸·à¹à¸à¹à¸à¸´à¸à¹à¸à¸£à¹à¸à¸£à¸¡
+policy-DownloadDirectory = à¸à¸±à¹à¸à¹à¸¥à¸°à¸¥à¹à¸à¸à¹à¸à¹à¸£à¸à¸à¸à¸£à¸µà¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+# âlockâ means that the user wonât be able to change this setting
+policy-EnableTrackingProtection = à¹à¸à¸´à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸¢à¹à¸¥à¸·à¸à¸à¸¥à¹à¸à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹à¹à¸à¹
+# A âlockedâ extension canât be disabled or removed by the user. This policy
+# takes 3 keys (âInstallâ, âUninstallâ, âLockedâ), you can either keep them in
+# English or translate them as verbs.
+policy-Extensions = à¸à¸´à¸à¸à¸±à¹à¸ à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ หรืà¸à¸¥à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢ à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸µà¹à¸à¸°à¹à¸à¹ URL หรืà¸à¹à¸ªà¹à¸à¸à¸²à¸à¹à¸à¹à¸à¸à¸²à¸£à¸²à¸¡à¸´à¹à¸à¸à¸£à¹ สà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¸°à¸¥à¹à¸à¸à¸à¸°à¹à¸à¹à¹à¸à¸à¸µà¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+policy-ExtensionSettings = à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸à¸à¸¸à¸à¸ªà¹à¸§à¸
+policy-ExtensionUpdate = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+policy-FirefoxHome = à¸à¸³à¸«à¸à¸à¸à¹à¸² Firefox Home
+policy-FlashPlugin = à¸à¸à¸¸à¸à¸²à¸à¸«à¸£à¸·à¸à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¹à¸à¹à¸à¸¥à¸±à¹à¸à¸à¸´à¸ Flash
+policy-HardwareAcceleration = à¸à¹à¸²à¸à¹à¸²à¹à¸à¹à¸à¹à¸à¹à¸ à¹à¸«à¹à¸à¸´à¸à¸à¸²à¸£à¹à¸£à¹à¸à¸à¹à¸§à¸¢à¸®à¸²à¸£à¹à¸à¹à¸§à¸£à¹
+# âlockâ means that the user wonât be able to change this setting
+policy-Homepage = à¸à¸±à¹à¸à¸à¹à¸²à¸«à¸à¹à¸²à¹à¸£à¸à¹à¸à¸¢à¸à¸²à¸à¹à¸¥à¸·à¸à¸à¸¥à¹à¸à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹à¹à¸à¹
+policy-InstallAddonsPermission = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+policy-LocalFileLinks = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸£à¸°à¸à¸¸à¹à¸à¸·à¹à¸à¸¡à¹à¸¢à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¸£à¸·à¹à¸à¸
+policy-NetworkPrediction = à¹à¸à¸´à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸²à¸à¹à¸à¸²à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢ (à¸à¸²à¸£à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥ DNS ลà¹à¸§à¸à¸«à¸à¹à¸²)
+policy-NewTabPage = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸à¹à¸²à¹à¸à¹à¸à¹à¸«à¸¡à¹
+policy-NoDefaultBookmarks = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸ªà¸£à¹à¸²à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸µà¹à¸¡à¸²à¸à¸£à¹à¸à¸¡à¸à¸±à¸ { -brand-short-name } à¹à¸¥à¸°à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸±à¸à¸à¸£à¸´à¸¢à¸° (à¸à¸µà¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¸¡à¸²à¸à¸à¸µà¹à¸ªà¸¸à¸, à¹à¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸) หมายà¹à¸«à¸à¸¸: à¸à¹à¸¢à¸à¸²à¸¢à¸à¸µà¹à¸¡à¸µà¸à¸¥à¸à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸£à¸µà¸¢à¸à¹à¸à¹à¹à¸à¸£à¹à¸à¸¥à¹à¸à¸£à¸±à¹à¸à¹à¸£à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+policy-OfferToSaveLogins = à¸à¸±à¸à¸à¸±à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸à¸¸à¸à¸²à¸ { -brand-short-name } à¹à¸«à¹à¹à¸ªà¸à¸à¹à¸«à¹à¸à¸à¸à¸³à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹ à¹à¸à¸¢à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸à¹à¸à¸à¸±à¹à¸à¸à¸£à¸´à¸à¹à¸¥à¸°à¹à¸à¹à¸à¹à¸à¹
+policy-OverrideFirstRunPage = à¹à¸à¸à¸à¸µà¹à¸«à¸à¹à¸²à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¹à¸à¹à¸à¸£à¸±à¹à¸à¹à¸£à¸ à¸à¸±à¹à¸à¸à¹à¸²à¸à¹à¸¢à¸à¸²à¸¢à¸à¸µà¹à¹à¸à¹à¸à¸§à¹à¸²à¸à¹à¸à¸¥à¹à¸²à¸à¹à¸²à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¹à¸à¹à¸à¸£à¸±à¹à¸à¹à¸£à¸
+policy-OverridePostUpdatePage = à¹à¸à¸à¸à¸µà¹à¸«à¸à¹à¸² âมีà¸à¸°à¹à¸£à¹à¸«à¸¡à¹â หลัà¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸ à¸à¸±à¹à¸à¸à¹à¸²à¸à¹à¸¢à¸à¸²à¸¢à¸à¸µà¹à¹à¸à¹à¸à¸§à¹à¸²à¸à¹à¸à¸¥à¹à¸²à¸à¹à¸²à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸à¹à¸²à¸«à¸¥à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+policy-Permissions = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸¥à¹à¸à¸, à¹à¸¡à¹à¸à¸£à¹à¸à¸, à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸ à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+policy-PopupBlocking = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸ªà¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸²à¸¡à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+policy-Preferences = à¸à¸±à¹à¸à¸à¹à¸²à¹à¸¥à¸°à¸¥à¹à¸à¸à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸¸à¸à¸¢à¹à¸à¸¢à¸à¸à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+policy-PromptForDownloadLocation = à¸à¸²à¸¡à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸°à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¥à¹à¹à¸¡à¸·à¹à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+policy-Proxy = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µ
+policy-RequestedLocales = à¸à¸±à¹à¸à¸à¹à¸²à¸£à¸²à¸¢à¸à¸²à¸£à¸ าษาสำหรัà¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸²à¸¡à¸¥à¸³à¸à¸±à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£
+policy-SanitizeOnShutdown = ลà¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸¡à¸·à¹à¸à¸à¸´à¸à¹à¸à¸£à¸·à¹à¸à¸
+policy-SanitizeOnShutdown2 = ลà¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸¡à¸·à¹à¸à¸à¸´à¸à¹à¸à¸£à¸·à¹à¸à¸
+policy-SearchBar = à¸à¸±à¹à¸à¸à¹à¸²à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¹à¸à¸à¸à¹à¸à¸«à¸² à¹à¸à¸¢à¸à¸µà¹à¸à¸¹à¹à¹à¸à¹à¸¢à¸±à¸à¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸±à¸à¹à¸à¹à¸à¹à¸à¹
+policy-SearchEngines = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸² à¸à¹à¸¢à¸à¸²à¸¢à¸à¸µà¹à¹à¸à¹à¹à¸à¹à¸à¸à¸£à¸¸à¹à¸ Extended Support Release (ESR) à¹à¸à¹à¸²à¸à¸±à¹à¸
+policy-SearchSuggestEnabled = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+# For more information, see https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/PKCS11/Module_Installation
+policy-SecurityDevices = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¡à¸à¸¹à¸¥ PKCS #11
+policy-SSLVersionMax = à¸à¸±à¹à¸à¸£à¸¸à¹à¸ SSL สูà¸à¸ªà¸¸à¸
+policy-SSLVersionMin = à¸à¸±à¹à¸à¸£à¸¸à¹à¸ SSL à¸à¹à¸³à¸ªà¸¸à¸
+policy-SupportMenu = à¹à¸à¸´à¹à¸¡à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸¡à¸à¸¹à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸à¹à¸à¸¢à¸±à¸à¹à¸¡à¸à¸¹à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸
+# âformatâ refers to the format used for the value of this policy.
+policy-WebsiteFilter = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸§à¹à¸à¹à¸à¸à¹ à¸à¸¹à¸à¸¹à¹à¸¡à¸·à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸¹à¸à¹à¸à¸
diff --git a/browser/browser/preferences/applicationManager.ftl b/browser/browser/preferences/applicationManager.ftl
new file mode 100644
index 00000000000..344563f8de8
--- /dev/null
+++ b/browser/browser/preferences/applicationManager.ftl
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+app-manager-window =
+ .title = รายละà¹à¸à¸µà¸¢à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+ .style = width: 30em; min-height: 20em;
+app-manager-remove =
+ .label = à¹à¸à¸²à¸à¸à¸
+ .accesskey = à¸
+app-manager-handle-webfeeds = à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸ à¸à¸µà¸à¹à¸§à¹à¸
+# Variables:
+# $type (String) - the URI scheme of the link (e.g. mailto:)
+app-manager-handle-protocol = à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸ ลิà¸à¸à¹ { $type }
+# Variables:
+# $type (String) - the MIME type (e.g. application/binary)
+app-manager-handle-file = à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸ à¹à¸à¸·à¹à¸à¸«à¸² { $type }
+
+## These strings are followed, on a new line,
+## by the URL or path of the application.
+
+app-manager-web-app-info = à¹à¸§à¹à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¹à¸®à¸ªà¸à¹à¸à¸µà¹:
+app-manager-local-app-info = à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸¢à¸¹à¹à¸à¸µà¹:
diff --git a/browser/browser/preferences/blocklists.ftl b/browser/browser/preferences/blocklists.ftl
new file mode 100644
index 00000000000..f103aa9b52d
--- /dev/null
+++ b/browser/browser/preferences/blocklists.ftl
@@ -0,0 +1,35 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+blocklist-window =
+ .title = รายà¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+ .style = width: 55em
+blocklist-desc = à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¥à¸·à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹ { -brand-short-name } à¸à¸°à¹à¸à¹à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¹à¸§à¹à¸à¸à¸µà¹à¸à¸²à¸à¸à¸´à¸à¸à¸²à¸¡à¸à¸´à¸à¸à¸£à¸£à¸¡à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸à¸à¸à¸¸à¸
+blocklist-description = à¹à¸¥à¸·à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£ { -brand-short-name } à¹à¸à¸·à¹à¸à¹à¸à¹à¹à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸à¸à¹à¸¥à¸à¹ รายà¸à¸²à¸£à¸à¸µà¹à¸à¸±à¸à¸«à¸²à¹à¸«à¹à¹à¸à¸¢ Disconnect
+blocklist-close-key =
+ .key = w
+blocklist-treehead-list =
+ .label = รายà¸à¸²à¸£
+blocklist-button-cancel =
+ .label = ยà¸à¹à¸¥à¸´à¸
+ .accesskey = ย
+blocklist-button-ok =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+ .accesskey = à¸
+# This template constructs the name of the block list in the block lists dialog.
+# It combines the list name and description.
+# e.g. "Standard (Recommended). This list does a pretty good job."
+#
+# Variables:
+# $listName {string, "Standard (Recommended)."} - List name.
+# $description {string, "This list does a pretty good job."} - Description of the list.
+blocklist-item-list-template = { $listName } { $description }
+blocklist-item-moz-std-name = à¸à¸²à¸£à¸à¸à¸à¹à¸à¸à¹à¸à¸à¸à¸·à¹à¸à¸à¸²à¸à¸à¸à¸ Disconnect.me (à¹à¸à¸°à¸à¸³)
+blocklist-item-moz-std-desc = à¸à¸à¸¸à¸à¸²à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸³à¸à¸²à¸à¹à¸à¹à¸à¸¹à¸à¸à¹à¸à¸
+blocklist-item-moz-full-name = à¸à¸²à¸£à¸à¸à¸à¹à¸à¸à¹à¸à¸à¹à¸à¹à¸¡à¸à¸§à¸à¸à¸à¸ Disconnect.me
+blocklist-item-moz-full-desc = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸µà¹à¸£à¸¹à¹à¸à¸±à¸ à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸²à¸à¸à¸³à¸à¸²à¸à¹à¸à¹à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+blocklist-item-moz-std-listName = รายà¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸°à¸à¸±à¸ 1 (à¹à¸à¸°à¸à¸³)
+blocklist-item-moz-std-description = à¸à¸à¸¸à¸à¸²à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸²à¸à¸à¸±à¸§à¹à¸à¸·à¹à¸à¸à¸°à¹à¸à¹à¸¡à¸µà¹à¸§à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸²à¸à¹à¸¡à¹à¹à¸à¹à¸à¹à¸à¸¢à¸¥à¸
+blocklist-item-moz-full-listName = รายà¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸£à¸°à¸à¸±à¸ 2
+blocklist-item-moz-full-description = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸±à¹à¸à¸«à¸¡à¸ à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸«à¸£à¸·à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸²à¸à¹à¸«à¸¥à¸à¸¡à¸²à¹à¸¡à¹à¸à¸£à¸
diff --git a/browser/browser/preferences/clearSiteData.ftl b/browser/browser/preferences/clearSiteData.ftl
new file mode 100644
index 00000000000..f07d64d653e
--- /dev/null
+++ b/browser/browser/preferences/clearSiteData.ftl
@@ -0,0 +1,50 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+clear-site-data-window =
+ .title = ลà¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥
+ .style = width: 35em
+clear-site-data-description = à¸à¸²à¸£à¸¥à¹à¸²à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹à¹à¸à¸¢ { -brand-short-name } à¸à¸²à¸à¸¥à¸à¸à¸·à¹à¸à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¥à¸°à¹à¸à¸²à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸ à¸à¸²à¸£à¸¥à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¸à¸°à¹à¸¡à¹à¸ªà¹à¸à¸à¸¥à¸à¸£à¸°à¸à¸à¸à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸
+clear-site-data-close-key =
+ .key = w
+# The parameters in parentheses in this string describe disk usage
+# in the format ($amount $unit), e.g. "Cookies and Site Data (24 KB)"
+# Variables:
+# $amount (Number) - Amount of site data currently stored on disk
+# $unit (String) - Abbreviation of the unit that $amount is in, e.g. "MB"
+clear-site-data-cookies-with-data =
+ .label = à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹ ({ $amount } { $unit })
+ .accesskey = à¸
+# This string is a placeholder for while the data used to fill
+# clear-site-data-cookies-with-data is loading. This placeholder is usually
+# only shown for a very short time (< 1s), so it should be very similar
+# or the same as clear-site-data-cookies-with-data (except the amount and unit),
+# to avoid flickering.
+clear-site-data-cookies-empty =
+ .label = à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ .accesskey = à¸
+clear-site-data-cookies-info = à¸à¸¸à¸à¸à¸²à¸à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¥à¸à¸à¸·à¹à¸à¸à¸à¸à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸«à¸²à¸à¸¥à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥
+# The parameters in parentheses in this string describe disk usage
+# in the format ($amount $unit), e.g. "Cached Web Content (24 KB)"
+# Variables:
+# $amount (Number) - Amount of cache currently stored on disk
+# $unit (String) - Abbreviation of the unit that $amount is in, e.g. "MB"
+clear-site-data-cache-with-data =
+ .label = à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¸à¸µà¹à¸à¸¹à¸à¹à¸à¸à¹à¸§à¹ ({ $amount } { $unit })
+ .accesskey = à¸
+# This string is a placeholder for while the data used to fill
+# clear-site-data-cache-with-data is loading. This placeholder is usually
+# only shown for a very short time (< 1s), so it should be very similar
+# or the same as clear-site-data-cache-with-data (except the amount and unit),
+# to avoid flickering.
+clear-site-data-cache-empty =
+ .label = à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¸à¸µà¹à¸à¸¹à¸à¹à¸à¸à¹à¸§à¹
+ .accesskey = à¸
+clear-site-data-cache-info = à¸à¸°à¸à¹à¸à¸à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸«à¸¥à¸à¸ าà¸à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸«à¸¡à¹
+clear-site-data-cancel =
+ .label = ยà¸à¹à¸¥à¸´à¸
+ .accesskey = ย
+clear-site-data-clear =
+ .label = ลà¹à¸²à¸
+ .accesskey = ล
diff --git a/browser/browser/preferences/colors.ftl b/browser/browser/preferences/colors.ftl
new file mode 100644
index 00000000000..ee6d9c9a530
--- /dev/null
+++ b/browser/browser/preferences/colors.ftl
@@ -0,0 +1,37 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+colors-window =
+ .title = สี
+ .style =
+ { PLATFORM() ->
+ [macos] width: 41em
+ *[other] width: 38em
+ }
+colors-close-key =
+ .key = w
+colors-page-override = à¹à¸à¸µà¸¢à¸à¸à¸±à¸à¸ªà¸µà¸à¸µà¹à¸£à¸°à¸à¸¸à¹à¸à¸¢à¸«à¸à¹à¸²à¸à¹à¸§à¸¢à¸à¸µà¹à¸à¸¸à¸à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¸à¹à¸²à¸à¸à¸
+ .accesskey = ย
+colors-page-override-option-always =
+ .label = à¹à¸ªà¸¡à¸
+colors-page-override-option-auto =
+ .label = à¹à¸à¸à¸²à¸°à¸à¸±à¸à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¡à¸à¸±à¸à¸ªà¸¹à¸
+colors-page-override-option-never =
+ .label = à¹à¸¡à¹à¹à¸¥à¸¢
+colors-text-and-background = à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸¥à¸°à¸à¸·à¹à¸à¸«à¸¥à¸±à¸
+colors-text-header = à¸à¹à¸à¸à¸§à¸²à¸¡
+ .accesskey = à¸
+colors-background = à¸à¸·à¹à¸à¸«à¸¥à¸±à¸
+ .accesskey = à¸
+colors-use-system =
+ .label = à¹à¸à¹à¸ªà¸µà¸à¸à¸à¸£à¸°à¸à¸
+ .accesskey = ส
+colors-underline-links =
+ .label = à¸à¸µà¸à¹à¸ªà¹à¸à¹à¸à¹à¸¥à¸´à¸à¸à¹
+ .accesskey = à¸
+colors-links-header = สีลิà¸à¸à¹
+colors-unvisited-links = ลิà¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡
+ .accesskey = ล
+colors-visited-links = ลิà¸à¸à¹à¸à¸µà¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸¥à¹à¸§
+ .accesskey = à¸
diff --git a/browser/browser/preferences/connection.ftl b/browser/browser/preferences/connection.ftl
new file mode 100644
index 00000000000..a28cfa9e504
--- /dev/null
+++ b/browser/browser/preferences/connection.ftl
@@ -0,0 +1,90 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+connection-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+ .style =
+ { PLATFORM() ->
+ [macos] width: 44em
+ *[other] width: 49em
+ }
+connection-close-key =
+ .key = w
+connection-disable-extension =
+ .label = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+connection-proxy-configure = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸£à¹à¸à¸à¸à¸µà¸à¸±à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸
+connection-proxy-option-no =
+ .label = à¹à¸¡à¹à¸¡à¸µà¸à¸£à¹à¸à¸à¸à¸µ
+ .accesskey = ม
+connection-proxy-option-system =
+ .label = à¹à¸à¹à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¸à¸à¸£à¸°à¸à¸
+ .accesskey = à¸
+connection-proxy-option-auto =
+ .label = à¸à¸£à¸§à¸à¸«à¸²à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸µà¹
+ .accesskey = ว
+connection-proxy-option-manual =
+ .label = à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¹à¸§à¸¢à¸à¸à¹à¸à¸
+ .accesskey = ห
+connection-proxy-http = à¸à¸£à¹à¸à¸à¸à¸µ HTTP
+ .accesskey = à¸
+connection-proxy-http-port = à¸à¸à¸£à¹à¸
+ .accesskey = à¸
+connection-proxy-http-share =
+ .label = à¹à¸à¹à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸£à¹à¸à¸à¸à¸µà¸à¸µà¹à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¸à¸±à¹à¸à¸«à¸¡à¸
+ .accesskey = à¸
+connection-proxy-ssl = à¸à¸£à¹à¸à¸à¸à¸µ SSL
+ .accesskey = L
+connection-proxy-ssl-port = à¸à¸à¸£à¹à¸
+ .accesskey = à¸
+connection-proxy-ftp = à¸à¸£à¹à¸à¸à¸à¸µ FTP
+ .accesskey = F
+connection-proxy-ftp-port = à¸à¸à¸£à¹à¸
+ .accesskey = ร
+connection-proxy-socks = à¹à¸®à¸ªà¸à¹ SOCKS
+ .accesskey = C
+connection-proxy-socks-port = à¸à¸à¸£à¹à¸
+ .accesskey = à¸
+connection-proxy-socks4 =
+ .label = SOCKS v4
+ .accesskey = K
+connection-proxy-socks5 =
+ .label = SOCKS v5
+ .accesskey = v
+connection-proxy-noproxy = à¹à¸¡à¹à¸¡à¸µà¸à¸£à¹à¸à¸à¸à¸µà¸ªà¸³à¸«à¸£à¸±à¸
+ .accesskey = ส
+connection-proxy-noproxy-desc = à¸à¸±à¸§à¸à¸¢à¹à¸²à¸: .mozilla.org, .net.nz, 192.168.1.0/24
+connection-proxy-autotype =
+ .label = URL à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .accesskey = à¸
+connection-proxy-reload =
+ .label = à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹
+ .accesskey = ล
+connection-proxy-autologin =
+ .label = à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸¡à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸«à¸²à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸¹à¸à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+ .accesskey = à¸
+ .tooltip = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸µà¹à¸à¸°à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸¢à¸±à¸à¸à¸£à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸à¹à¸à¸±à¸à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸£à¸±à¸à¸£à¸à¸à¹à¸§à¹ à¸à¸¸à¸à¸à¸°à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸à¸«à¸²à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+connection-proxy-socks-remote-dns =
+ .label = DNS à¹à¸à¸à¸à¸£à¹à¸à¸à¸à¸µà¹à¸¡à¸·à¹à¸à¹à¸à¹ SOCKS v5
+ .accesskey = d
+connection-dns-over-https =
+ .label = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ DNS à¸à¹à¸²à¸ HTTPS
+ .accesskey = à¸
+# Variables:
+# $url (String) - URL for the DNS over HTTPS provider
+connection-dns-over-https-url-default =
+ .label = à¹à¸à¹à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸ ({ $url })
+ .accesskey = à¸
+ .tooltiptext = à¹à¸à¹ URL à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸¥à¸à¸à¸µà¹à¸à¸¢à¸¹à¹ DNS à¸à¹à¸²à¸ HTTPS
+connection-dns-over-https-url-resolver = à¹à¸à¹à¸à¸¹à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£
+ .accesskey = à¸
+# Variables:
+# $name (String) - Display name or URL for the DNS over HTTPS provider
+connection-dns-over-https-url-item-default =
+ .label = { $name } (à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸)
+ .tooltiptext = à¹à¸à¹ URL à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸¥à¸à¸à¸µà¹à¸à¸¢à¸¹à¹ DNS à¸à¹à¸²à¸ HTTPS
+connection-dns-over-https-url-custom =
+ .label = à¸à¸³à¸«à¸à¸à¹à¸à¸
+ .accesskey = à¸
+ .tooltiptext = à¸à¹à¸à¸ URL à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸¥à¸à¸à¸µà¹à¸à¸¢à¸¹à¹ DNS à¸à¹à¸²à¸ HTTPS
+connection-dns-over-https-custom-label = à¸à¸³à¸«à¸à¸à¹à¸à¸
diff --git a/browser/browser/preferences/containers.ftl b/browser/browser/preferences/containers.ftl
new file mode 100644
index 00000000000..052a09dc32f
--- /dev/null
+++ b/browser/browser/preferences/containers.ftl
@@ -0,0 +1,84 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+containers-window-new =
+ .title = à¹à¸à¸´à¹à¸¡à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸«à¸¡à¹
+ .style = width: 45em
+# Variables
+# $name (String) - Name of the container
+containers-window-update =
+ .title = à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥ { $name }
+ .style = width: 45em
+containers-window-close =
+ .key = w
+# This is a term to store style to be applied
+# on the three labels in the containers add/edit dialog:
+# - name
+# - icon
+# - color
+#
+# Using this term and referencing it in the `.style` attribute
+# of the three messages ensures that all three labels
+# will be aligned correctly.
+-containers-labels-style = min-width: 4rem
+containers-name-label = à¸à¸·à¹à¸
+ .accesskey = à¸
+ .style = { -containers-labels-style }
+containers-name-text =
+ .placeholder = à¸à¹à¸à¸à¸à¸·à¹à¸à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+containers-icon-label = à¹à¸à¸à¸à¸
+ .accesskey = à¸
+ .style = { -containers-labels-style }
+containers-color-label = สี
+ .accesskey = ส
+ .style = { -containers-labels-style }
+containers-button-done =
+ .label = à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸
+ .accesskey = ร
+containers-color-blue =
+ .label = à¸à¹à¸³à¹à¸à¸´à¸
+containers-color-turquoise =
+ .label = à¸à¹à¸²à¹à¸à¸à¸£à¹à¸à¸à¸¢à¸ªà¹
+containers-color-green =
+ .label = à¹à¸à¸µà¸¢à¸§
+containers-color-yellow =
+ .label = à¹à¸«à¸¥à¸·à¸à¸
+containers-color-orange =
+ .label = สà¹à¸¡
+containers-color-red =
+ .label = à¹à¸à¸
+containers-color-pink =
+ .label = à¸à¸¡à¸à¸¹
+containers-color-purple =
+ .label = มà¹à¸§à¸
+containers-color-toolbar =
+ .label = à¸à¸±à¸à¸à¸¹à¹à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸
+containers-icon-fence =
+ .label = รัà¹à¸§
+containers-icon-fingerprint =
+ .label = ลายà¸à¸´à¹à¸§à¸¡à¸·à¸
+containers-icon-briefcase =
+ .label = à¸à¸£à¸°à¹à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£
+# String represents a money sign but currently uses a dollar sign
+# so don't change to local currency. See Bug 1291672.
+containers-icon-dollar =
+ .label = à¹à¸à¸£à¸·à¹à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸à¸¥à¸¥à¸²à¸£à¹
+containers-icon-cart =
+ .label = รà¸à¹à¸à¹à¸à¸à¸·à¹à¸à¸à¸à¸
+containers-icon-circle =
+ .label = à¸à¸¸à¸
+containers-icon-vacation =
+ .label = วัà¸à¸«à¸¢à¸¸à¸à¸à¸±à¸à¸à¹à¸à¸
+containers-icon-gift =
+ .label = à¸à¸à¸à¸à¸§à¸±à¸
+containers-icon-food =
+ .label = à¸à¸²à¸«à¸²à¸£
+containers-icon-fruit =
+ .label = à¸à¸¥à¹à¸¡à¹
+containers-icon-pet =
+ .label = สัà¸à¸§à¹à¹à¸¥à¸µà¹à¸¢à¸
+containers-icon-tree =
+ .label = à¸à¹à¸à¹à¸¡à¹
+containers-icon-chill =
+ .label = à¸à¹à¸à¸à¸à¸¥à¸²à¸¢
diff --git a/browser/browser/preferences/fonts.ftl b/browser/browser/preferences/fonts.ftl
new file mode 100644
index 00000000000..82abb0bc5da
--- /dev/null
+++ b/browser/browser/preferences/fonts.ftl
@@ -0,0 +1,149 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+fonts-window =
+ .title = à¹à¸à¸à¸à¸±à¸à¸©à¸£
+fonts-window-close =
+ .key = w
+
+## Font groups by language
+
+fonts-langgroup-header = à¹à¸à¸à¸à¸±à¸à¸©à¸£à¸ªà¸³à¸«à¸£à¸±à¸
+ .accesskey = à¸
+fonts-langgroup-arabic =
+ .label = à¸à¸²à¸«à¸£à¸±à¸
+fonts-langgroup-armenian =
+ .label = à¸à¸²à¸£à¹à¹à¸¡à¹à¸à¸µà¸¢
+fonts-langgroup-bengali =
+ .label = à¹à¸à¸à¸à¸²à¸¥à¸µ
+fonts-langgroup-simpl-chinese =
+ .label = à¸à¸µà¸à¸à¸±à¸§à¸¢à¹à¸
+fonts-langgroup-trad-chinese-hk =
+ .label = à¸à¸µà¸à¸à¸±à¸§à¹à¸à¹à¸¡ (ฮà¹à¸à¸à¸à¸)
+fonts-langgroup-trad-chinese =
+ .label = à¸à¸µà¸à¸à¸±à¸§à¹à¸à¹à¸¡ (à¹à¸à¹à¸«à¸§à¸±à¸)
+fonts-langgroup-cyrillic =
+ .label = à¸à¸´à¸£à¸´à¸¥à¸¥à¸´à¸
+fonts-langgroup-devanagari =
+ .label = à¹à¸à¸§à¸à¸²à¸à¸£à¸µ
+fonts-langgroup-ethiopic =
+ .label = à¹à¸à¸à¸´à¹à¸à¹à¸à¸µà¸¢
+fonts-langgroup-georgian =
+ .label = à¸à¸à¸£à¹à¹à¸à¸µà¸¢
+fonts-langgroup-el =
+ .label = à¸à¸£à¸µà¸
+fonts-langgroup-gujarati =
+ .label = à¸à¸¸à¸à¸£à¸²à¸à¸µ
+fonts-langgroup-gurmukhi =
+ .label = à¹à¸à¸à¸£à¹à¸¡à¸¸à¸à¸«à¹
+fonts-langgroup-japanese =
+ .label = à¸à¸µà¹à¸à¸¸à¹à¸
+fonts-langgroup-hebrew =
+ .label = ฮิà¸à¸£à¸¹
+fonts-langgroup-kannada =
+ .label = à¸à¸±à¸à¸à¸²à¸
+fonts-langgroup-khmer =
+ .label = à¹à¸à¸¡à¸£
+fonts-langgroup-korean =
+ .label = à¹à¸à¸²à¸«à¸¥à¸µ
+# Translate "Latin" as the name of Latin (Roman) script, not as the name of the Latin language.
+fonts-langgroup-latin =
+ .label = ละà¸à¸´à¸
+fonts-langgroup-malayalam =
+ .label = มะละยาลัม
+fonts-langgroup-math =
+ .label = à¸à¸à¸´à¸à¸¨à¸²à¸ªà¸à¸£à¹
+fonts-langgroup-odia =
+ .label = à¹à¸à¹à¸à¸µà¸¢
+fonts-langgroup-sinhala =
+ .label = สิà¸à¸«à¸¥
+fonts-langgroup-tamil =
+ .label = à¸à¸¡à¸´à¸¬
+fonts-langgroup-telugu =
+ .label = à¹à¸à¸¥à¸¹à¸à¸¹
+fonts-langgroup-thai =
+ .label = à¹à¸à¸¢
+fonts-langgroup-tibetan =
+ .label = à¸à¸´à¹à¸à¸
+fonts-langgroup-canadian =
+ .label = à¸à¸±à¸à¸©à¸£à¸à¸¢à¸²à¸à¸à¹à¸à¸·à¹à¸à¹à¸¡à¸·à¸à¸à¹à¸à¸à¸²à¸à¸²
+fonts-langgroup-other =
+ .label = ระà¸à¸à¸à¸²à¸£à¹à¸à¸µà¸¢à¸à¸à¸·à¹à¸ à¹
+
+## Default fonts and their sizes
+
+fonts-proportional-header = à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸à¸à¸²à¸¡à¸ªà¸±à¸à¸ªà¹à¸§à¸
+ .accesskey = à¸
+fonts-default-serif =
+ .label = มีà¹à¸à¸´à¸
+fonts-default-sans-serif =
+ .label = à¹à¸¡à¹à¸¡à¸µà¹à¸à¸´à¸
+fonts-proportional-size = à¸à¸à¸²à¸
+ .accesskey = à¸
+fonts-serif = มีà¹à¸à¸´à¸
+ .accesskey = ม
+fonts-sans-serif = à¹à¸¡à¹à¸¡à¸µà¹à¸à¸´à¸
+ .accesskey = à¸
+fonts-monospace = à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸à¸à¸à¸à¸µà¹
+ .accesskey = ว
+fonts-monospace-size = à¸à¸à¸²à¸
+ .accesskey = à¸
+fonts-minsize = à¸à¸à¸²à¸à¹à¸à¸à¸à¸±à¸à¸©à¸£à¸à¹à¸³à¸ªà¸¸à¸
+ .accesskey = à¸
+fonts-minsize-none =
+ .label = à¹à¸¡à¹à¸¡à¸µ
+fonts-allow-own =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸«à¸à¹à¸²à¹à¸¥à¸·à¸à¸à¹à¸à¹à¹à¸à¸à¸à¸±à¸à¸©à¸£à¸à¸à¸à¸à¸±à¸§à¹à¸à¸ à¹à¸à¸à¸à¸µà¹à¸à¸°à¹à¸à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸¥à¸·à¸à¸à¹à¸§à¹à¸à¹à¸²à¸à¸à¸
+ .accesskey = à¸
+
+## Text Encodings
+##
+## Translate the encoding names as adjectives for an encoding, not as the name
+## of the language.
+
+fonts-languages-fallback-header = รหัสà¸à¸±à¸à¸à¸£à¸°à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸à¹à¸à¹à¸²
+fonts-languages-fallback-desc = รหัสà¸à¸±à¸à¸à¸£à¸°à¸à¸µà¹à¸à¸¹à¸à¹à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸à¹à¸à¹à¸²à¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸°à¸à¸²à¸¨à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ªà¹à¸à¹
+fonts-languages-fallback-label = รหัสà¸à¸±à¸à¸à¸£à¸°à¸à¸µà¹à¹à¸à¹à¹à¸ªà¸à¸à¹à¸à¸
+ .accesskey = ร
+fonts-languages-fallback-name-auto =
+ .label = à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸ าษาà¸à¸´à¹à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸
+fonts-languages-fallback-name-arabic =
+ .label = à¸à¸²à¸«à¸£à¸±à¸
+fonts-languages-fallback-name-baltic =
+ .label = à¸à¸à¸¥à¸à¸´à¸
+fonts-languages-fallback-name-ceiso =
+ .label = ยุà¹à¸£à¸à¸à¸¥à¸²à¸ ISO
+fonts-languages-fallback-name-cewindows =
+ .label = ยุà¹à¸£à¸à¸à¸¥à¸²à¸ Microsoft
+fonts-languages-fallback-name-simplified =
+ .label = à¸à¸µà¸à¸à¸±à¸§à¸¢à¹à¸
+fonts-languages-fallback-name-traditional =
+ .label = à¸à¸µà¸à¸à¸±à¸§à¹à¸à¹à¸¡
+fonts-languages-fallback-name-cyrillic =
+ .label = à¸à¸´à¸£à¸´à¸¥à¸¥à¸´à¸
+fonts-languages-fallback-name-greek =
+ .label = à¸à¸£à¸µà¸
+fonts-languages-fallback-name-hebrew =
+ .label = ฮิà¸à¸£à¸¹
+fonts-languages-fallback-name-japanese =
+ .label = à¸à¸µà¹à¸à¸¸à¹à¸
+fonts-languages-fallback-name-korean =
+ .label = à¹à¸à¸²à¸«à¸¥à¸µ
+fonts-languages-fallback-name-thai =
+ .label = à¹à¸à¸¢
+fonts-languages-fallback-name-turkish =
+ .label = à¸à¸¸à¸£à¸à¸µ
+fonts-languages-fallback-name-vietnamese =
+ .label = à¹à¸§à¸µà¸¢à¸à¸à¸²à¸¡
+fonts-languages-fallback-name-other =
+ .label = à¸à¸·à¹à¸ ๠(รวมà¸à¸¶à¸à¸¢à¸¸à¹à¸£à¸à¸à¸°à¸§à¸±à¸à¸à¸)
+fonts-very-large-warning-title = à¸à¸à¸²à¸à¹à¸à¸à¸à¸±à¸à¸©à¸£à¸à¹à¸³à¸ªà¸¸à¸à¹à¸«à¸à¹
+fonts-very-large-warning-message = à¸à¸¸à¸à¹à¸à¹à¹à¸¥à¸·à¸à¸à¸à¸à¸²à¸à¸à¸±à¸à¸©à¸£à¹à¸¥à¹à¸à¸ªà¸¸à¸à¸à¸µà¹à¹à¸«à¸à¹à¸¡à¸²à¸ (มาà¸à¸à¸§à¹à¸² 24 à¸à¸´à¸à¹à¸à¸¥) à¹à¸à¸¢à¸à¸²à¸à¸à¸°à¸à¸³à¹à¸«à¹à¸¢à¸²à¸à¸«à¸£à¸·à¸à¹à¸à¹à¸à¹à¸à¹à¸¡à¹à¹à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸«à¸à¹à¸²à¸à¸µà¹à¸ªà¸³à¸à¸±à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹
+fonts-very-large-warning-accept = à¹à¸à¹à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸à¸à¸à¸±à¸à¸à¹à¸à¹à¸
+# Variables:
+# $name {string, "Arial"} - Name of the default font
+fonts-label-default =
+ .label = à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸ ({ $name })
+fonts-label-default-unnamed =
+ .label = à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
diff --git a/browser/browser/preferences/fxaPairDevice.ftl b/browser/browser/preferences/fxaPairDevice.ftl
new file mode 100644
index 00000000000..5e4158fb729
--- /dev/null
+++ b/browser/browser/preferences/fxaPairDevice.ftl
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+fxa-pair-device-dialog =
+ .title = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸
+ .style = width: 26em; min-height: 35em;
+fxa-qrcode-heading-phase1 = 1. à¸à¸´à¸à¸à¸±à¹à¸ Firefox à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸¡à¸·à¸à¸à¸·à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸²à¸à¸à¸¸à¸à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸
+fxa-qrcode-heading-phase2 = 2. à¸à¸²à¸à¸à¸±à¹à¸à¸¥à¸à¸à¸·à¹à¸à¹à¸à¹à¸² { -sync-brand-short-name } หรืà¸à¸à¸ Android à¹à¸«à¹à¸ªà¹à¸à¸à¹à¸à¹à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸¹à¹à¸à¸²à¸à¸ ายà¹à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² { -sync-brand-short-name }
+fxa-qrcode-error-title = à¸à¸²à¸£à¸à¸±à¸à¸à¸¹à¹à¹à¸¡à¹à¸ªà¸³à¹à¸£à¹à¸
+fxa-qrcode-error-body = ลà¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
diff --git a/browser/browser/preferences/languages.ftl b/browser/browser/preferences/languages.ftl
new file mode 100644
index 00000000000..3c4e9885928
--- /dev/null
+++ b/browser/browser/preferences/languages.ftl
@@ -0,0 +1,55 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+webpage-languages-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸ าษาà¸à¸à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸
+ .style = width: 40em
+languages-close-key =
+ .key = w
+languages-description = à¸à¸²à¸à¸à¸£à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸à¸à¸²à¸à¸à¸³à¹à¸ªà¸à¸à¸¡à¸²à¸à¸à¸§à¹à¸²à¸«à¸à¸¶à¹à¸à¸ าษา à¹à¸¥à¸·à¸à¸à¸ าษาสำหรัà¸à¹à¸ªà¸à¸à¸à¸¥à¸«à¸à¹à¸²à¹à¸§à¹à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¸à¸²à¸¡à¸¥à¸³à¸à¸±à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£
+languages-customize-spoof-english =
+ .label = à¸à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸à¸ าษาà¸à¸±à¸à¸à¸¤à¸©à¹à¸à¸·à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸µà¹à¹à¸à¸´à¹à¸¡à¸à¸¶à¹à¸
+languages-customize-moveup =
+ .label = ยà¹à¸²à¸¢à¸à¸¶à¹à¸
+ .accesskey = ย
+languages-customize-movedown =
+ .label = ยà¹à¸²à¸¢à¸¥à¸
+ .accesskey = ล
+languages-customize-remove =
+ .label = à¹à¸à¸²à¸à¸à¸
+ .accesskey = à¸
+languages-customize-select-language =
+ .placeholder = à¹à¸¥à¸·à¸à¸à¸ าษาà¸à¸µà¹à¸à¸°à¹à¸à¸´à¹à¸¡â¦
+languages-customize-add =
+ .label = à¹à¸à¸´à¹à¸¡
+ .accesskey = à¸
+# The pattern used to generate strings presented to the user in the
+# locale selection list.
+#
+# Example:
+# Icelandic [is]
+# Spanish (Chile) [es-CL]
+#
+# Variables:
+# $locale (String) - A name of the locale (for example: "Icelandic", "Spanish (Chile)")
+# $code (String) - Locale code of the locale (for example: "is", "es-CL")
+languages-code-format =
+ .label = { $locale } [{ $code }]
+languages-active-code-format =
+ .value = { languages-code-format.label }
+browser-languages-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸ าษาà¸à¸à¸ { -brand-short-name }
+ .style = width: 40em
+browser-languages-description = { -brand-short-name } à¸à¸°à¹à¸ªà¸à¸à¸à¸¥à¸ าษาà¹à¸£à¸à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸à¸°à¹à¸ªà¸à¸à¸à¸¥à¸ าษาà¸à¸·à¹à¸à¹à¸à¸à¸«à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¸²à¸¡à¸¥à¸³à¸à¸±à¸à¸à¸µà¹à¸à¸£à¸²à¸à¸
+browser-languages-search = à¸à¹à¸à¸«à¸²à¸ าษาà¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡â¦
+browser-languages-searching =
+ .label = à¸à¸³à¸¥à¸±à¸à¸à¹à¸à¸«à¸²à¸ าษาâ¦
+browser-languages-downloading =
+ .label = à¸à¸³à¸¥à¸±à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸â¦
+browser-languages-select-language =
+ .label = à¹à¸¥à¸·à¸à¸à¸ าษาà¸à¸µà¹à¸à¸°à¹à¸à¸´à¹à¸¡â¦
+ .placeholder = à¹à¸¥à¸·à¸à¸à¸ าษาà¸à¸µà¹à¸à¸°à¹à¸à¸´à¹à¸¡â¦
+browser-languages-installed-label = ภาษาà¸à¸µà¹à¸à¸´à¸à¸à¸±à¹à¸
+browser-languages-available-label = ภาษาà¸à¸µà¹à¸¡à¸µ
+browser-languages-error = { -brand-short-name } à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¹à¸à¸à¸ าษาà¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¹à¸à¸à¸à¸°à¸à¸µà¹ à¸à¸£à¸§à¸à¸ªà¸à¸à¸§à¹à¸²à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¹à¸¥à¹à¸§à¸«à¸£à¸·à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
diff --git a/browser/browser/preferences/permissions.ftl b/browser/browser/preferences/permissions.ftl
new file mode 100644
index 00000000000..5fa3b63d0e2
--- /dev/null
+++ b/browser/browser/preferences/permissions.ftl
@@ -0,0 +1,150 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+permissions-window =
+ .title = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸
+ .style = width: 45em
+permissions-close-key =
+ .key = w
+permissions-address = à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸§à¹à¸à¹à¸à¸à¹
+ .accesskey = à¸
+permissions-block =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸
+ .accesskey = à¸
+permissions-session =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸§à¸²à¸£à¸°
+ .accesskey = à¸
+permissions-allow =
+ .label = à¸à¸à¸¸à¸à¸²à¸
+ .accesskey = à¸
+permissions-site-name =
+ .label = à¹à¸§à¹à¸à¹à¸à¸à¹
+permissions-status =
+ .label = สà¸à¸²à¸à¸°
+permissions-remove =
+ .label = à¹à¸à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸à¸
+ .accesskey = à¸
+permissions-remove-all =
+ .label = à¹à¸à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸
+ .accesskey = ว
+permissions-button-cancel =
+ .label = ยà¸à¹à¸¥à¸´à¸
+ .accesskey = ย
+permissions-button-ok =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+ .accesskey = à¸
+permissions-autoplay-menu = à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸:
+permissions-searchbox =
+ .placeholder = à¸à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹
+permissions-capabilities-autoplay-allow =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸ªà¸µà¸¢à¸à¹à¸¥à¸°à¸§à¸´à¸à¸µà¹à¸
+permissions-capabilities-autoplay-block =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸µà¸¢à¸
+permissions-capabilities-autoplay-blockall =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸µà¸¢à¸à¹à¸¥à¸°à¸§à¸´à¸à¸µà¹à¸
+permissions-capabilities-allow =
+ .label = à¸à¸à¸¸à¸à¸²à¸
+permissions-capabilities-block =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸
+permissions-capabilities-prompt =
+ .label = à¸à¸²à¸¡à¹à¸ªà¸¡à¸
+permissions-capabilities-listitem-allow =
+ .value = à¸à¸à¸¸à¸à¸²à¸
+permissions-capabilities-listitem-block =
+ .value = à¸à¸´à¸à¸à¸±à¹à¸
+permissions-capabilities-listitem-allow-session =
+ .value = à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸§à¸²à¸£à¸°
+
+## Invalid Hostname Dialog
+
+permissions-invalid-uri-title = à¸à¸·à¹à¸à¹à¸®à¸ªà¸à¹à¸à¸µà¹à¸à¹à¸à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+permissions-invalid-uri-label = à¹à¸à¸£à¸à¸à¹à¸à¸à¸à¸·à¹à¸à¹à¸®à¸ªà¸à¹à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+
+## Exceptions - Tracking Protection
+
+permissions-exceptions-content-blocking-window =
+ .title = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸ - à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+ .style = { permissions-window.style }
+permissions-exceptions-content-blocking-desc = à¸à¸¸à¸à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸«à¸¥à¹à¸²à¸à¸µà¹
+
+## Exceptions - Cookies
+
+permissions-exceptions-cookie-window =
+ .title = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸ - à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ .style = { permissions-window.style }
+permissions-exceptions-cookie-desc = à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¹à¸ªà¸¡à¸ à¸à¸´à¸¡à¸à¹à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¹à¸¥à¹à¸§à¸à¸¥à¸´à¸ à¸à¸´à¸à¸à¸±à¹à¸, à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸§à¸²à¸£à¸° หรืà¸à¸à¸à¸¸à¸à¸²à¸
+
+## Exceptions - Pop-ups
+
+permissions-exceptions-popup-window =
+ .title = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸ - à¸à¹à¸à¸à¸à¸±à¸
+ .style = { permissions-window.style }
+permissions-exceptions-popup-desc = à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸ à¸à¸´à¸¡à¸à¹à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§à¸à¸¥à¸´à¸ à¸à¸à¸¸à¸à¸²à¸
+
+## Exceptions - Saved Logins
+
+permissions-exceptions-saved-logins-window =
+ .title = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸ - à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+ .style = { permissions-window.style }
+permissions-exceptions-saved-logins-desc = à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸°à¹à¸¡à¹à¸à¸¹à¸à¸à¸±à¸à¸à¸¶à¸
+
+## Exceptions - Add-ons
+
+permissions-exceptions-addons-window =
+ .title = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸ - à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+ .style = { permissions-window.style }
+permissions-exceptions-addons-desc = à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡ à¸à¸´à¸¡à¸à¹à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§à¸à¸¥à¸´à¸ à¸à¸à¸¸à¸à¸²à¸
+
+## Exceptions - Autoplay Media
+
+permissions-exceptions-autoplay-media-window2 =
+ .title = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸ - à¸à¸²à¸£à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .style = { permissions-window.style }
+permissions-exceptions-autoplay-media-desc2 = à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸¥à¹à¸à¸ªà¸·à¹à¸à¸à¸£à¹à¸à¸¡à¹à¸ªà¸µà¸¢à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸ªà¸¡à¸ à¸à¸´à¸¡à¸à¹à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸²à¸£à¹à¸¥à¹à¸§à¸à¸¥à¸´à¸ à¸à¸´à¸à¸à¸±à¹à¸ หรืภà¸à¸à¸¸à¸à¸²à¸
+
+## Site Permissions - Autoplay
+
+permissions-site-autoplay-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² - à¸à¸²à¸£à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .style = { permissions-window.style }
+
+## Site Permissions - Notifications
+
+permissions-site-notification-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² - สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+ .style = { permissions-window.style }
+permissions-site-notification-desc = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸ªà¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¹à¸«à¹à¸à¸¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸ªà¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¹à¸«à¹à¸à¸¸à¸ à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+permissions-site-notification-disable-label =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+permissions-site-notification-disable-desc = à¸à¸µà¹à¸à¸°à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸ ๠à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸·à¹à¸à¸ªà¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸ à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+
+## Site Permissions - Location
+
+permissions-site-location-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² - สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+ .style = { permissions-window.style }
+permissions-site-location-desc = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸
+permissions-site-location-disable-label =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸
+permissions-site-location-disable-desc = à¸à¸µà¹à¸à¸°à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸ ๠à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+
+## Site Permissions - Camera
+
+permissions-site-camera-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² - สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸à¸¥à¹à¸à¸
+ .style = { permissions-window.style }
+permissions-site-camera-desc = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸
+permissions-site-camera-disable-label =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸
+permissions-site-camera-disable-desc = à¸à¸µà¹à¸à¸°à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸ ๠à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+
+## Site Permissions - Microphone
+
+permissions-site-microphone-window =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² - สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸
+ .style = { permissions-window.style }
+permissions-site-microphone-desc = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸
+permissions-site-microphone-disable-label =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸à¹à¸«à¸¡à¹à¸à¸µà¹à¸à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸
+permissions-site-microphone-disable-desc = à¸à¸µà¹à¸à¸°à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸ ๠à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸à¸¸à¹à¸§à¹à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸ à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹
diff --git a/browser/browser/preferences/preferences.ftl b/browser/browser/preferences/preferences.ftl
new file mode 100644
index 00000000000..3aae7976bc2
--- /dev/null
+++ b/browser/browser/preferences/preferences.ftl
@@ -0,0 +1,859 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+do-not-track-description = สà¹à¸à¸ªà¸±à¸à¸à¸²à¸ âà¹à¸¡à¹à¸à¸´à¸à¸à¸²à¸¡â à¹à¸«à¹à¸à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸§à¹à¸²à¸à¸¸à¸à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸¹à¸à¸à¸´à¸à¸à¸²à¸¡
+do-not-track-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+do-not-track-option-default-content-blocking-known =
+ .label = à¹à¸à¸à¸²à¸°à¹à¸¡à¸·à¹à¸ { -brand-short-name } à¸à¸¹à¸à¸à¸±à¹à¸à¹à¸«à¹à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸µà¹à¸£à¸¹à¹à¸à¸±à¸
+do-not-track-option-always =
+ .label = à¹à¸ªà¸¡à¸
+pref-page =
+ .title =
+ { PLATFORM() ->
+ [windows] à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+ *[other] à¸à¹à¸²à¸à¸³à¸«à¸à¸
+ }
+# This is used to determine the width of the search field in about:preferences,
+# in order to make the entire placeholder string visible
+#
+# Please keep the placeholder string short to avoid truncation.
+#
+# Notice: The value of the `.style` attribute is a CSS string, and the `width`
+# is the name of the CSS property. It is intended only to adjust the element's width.
+# Do not translate.
+search-input-box =
+ .style = width: 15.4em
+ .placeholder =
+ { PLATFORM() ->
+ [windows] à¸à¹à¸à¸«à¸²à¹à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+ *[other] à¸à¹à¸à¸«à¸²à¹à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+ }
+policies-notice =
+ { PLATFORM() ->
+ [windows] à¸à¸à¸à¹à¸à¸£à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸§à¸²à¸¡à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸à¸à¸¢à¹à¸²à¸
+ *[other] à¸à¸à¸à¹à¸à¸£à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸§à¸²à¸¡à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸à¸à¸¢à¹à¸²à¸
+ }
+managed-notice = à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸¢à¸à¸à¸à¹à¸à¸£à¸à¸à¸à¸à¸¸à¸
+pane-general-title = à¸à¸±à¹à¸§à¹à¸
+category-general =
+ .tooltiptext = { pane-general-title }
+pane-home-title = หà¸à¹à¸²à¹à¸£à¸
+category-home =
+ .tooltiptext = { pane-home-title }
+pane-search-title = à¸à¹à¸à¸«à¸²
+category-search =
+ .tooltiptext = { pane-search-title }
+pane-privacy-title = à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+category-privacy =
+ .tooltiptext = { pane-privacy-title }
+pane-sync-title2 = { -sync-brand-short-name }
+category-sync2 =
+ .tooltiptext = { pane-sync-title2 }
+help-button-label = à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸à¸ { -brand-short-name }
+addons-button-label = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸¥à¸°à¸à¸¸à¸à¸à¸à¹à¸à¹à¸
+focus-search =
+ .key = f
+close-button =
+ .aria-label = à¸à¸´à¸
+
+## Browser Restart Dialog
+
+feature-enable-requires-restart = { -brand-short-name } à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸µà¹
+feature-disable-requires-restart = { -brand-short-name } à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸µà¹
+should-restart-title = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹
+should-restart-ok = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸µà¹
+cancel-no-restart-button = ยà¸à¹à¸¥à¸´à¸
+restart-later = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸ ายหลัà¸
+
+## Extension Control Notifications
+##
+## These strings are used to inform the user
+## about changes made by extensions to browser settings.
+##
+##
is going to be replaced by the extension icon.
+##
+## Variables:
+## $name (String): name of the extension
+
+# This string is shown to notify the user that their home page
+# is being controlled by an extension.
+extension-controlled-homepage-override = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¸à¸³à¸¥à¸±à¸à¸à¸§à¸à¸à¸¸à¸¡à¸«à¸à¹à¸²à¹à¸£à¸à¸à¸à¸à¸à¸¸à¸
+# This string is shown to notify the user that their new tab page
+# is being controlled by an extension.
+extension-controlled-new-tab-url = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¸à¸³à¸¥à¸±à¸à¸à¸§à¸à¸à¸¸à¸¡à¸«à¸à¹à¸²à¹à¸à¹à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸¸à¸
+# This string is shown to notify the user that their notifications permission
+# is being controlled by an extension.
+extension-controlled-web-notifications = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¸à¸³à¸¥à¸±à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹
+# This string is shown to notify the user that the default search engine
+# is being controlled by an extension.
+extension-controlled-default-search = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¹à¸à¹à¸à¸±à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸
+# This string is shown to notify the user that Container Tabs
+# are being enabled by an extension.
+extension-controlled-privacy-containers = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+# This string is shown to notify the user that their content blocking "All Detected Trackers"
+# preferences are being controlled by an extension.
+extension-controlled-websites-content-blocking-all-trackers = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¸à¸³à¸¥à¸±à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹
+# This string is shown to notify the user that their proxy configuration preferences
+# are being controlled by an extension.
+extension-controlled-proxy-config = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
{ $name } à¸à¸³à¸¥à¸±à¸à¸à¸§à¸à¸à¸¸à¸¡à¸§à¸´à¸à¸µà¸à¸µà¹ { -brand-short-name } à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸
+# This string is shown after the user disables an extension to notify the user
+# how to enable an extension that they disabled.
+#
+#
will be replaced with Add-ons icon
+#
will be replaced with Menu icon
+extension-controlled-enable = à¹à¸à¸·à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢ à¹à¸à¸¢à¸±à¸
สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡ à¹à¸
à¹à¸¡à¸à¸¹
+
+## Preferences UI Search Results
+
+search-results-header = à¸à¸¥à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+# `` will be replaced by the search term.
+search-results-empty-message =
+ { PLATFORM() ->
+ [windows] à¸à¸à¸à¸ ัย! à¹à¸¡à¹à¸¡à¸µà¸à¸¥à¸¥à¸±à¸à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸ ââ à¹à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+ *[other] à¸à¸à¸à¸ ัย! à¹à¸¡à¹à¸¡à¸µà¸à¸¥à¸¥à¸±à¸à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸ ââ à¹à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+ }
+search-results-help-link = à¸à¹à¸à¸à¸à¸²à¸£à¸à¸§à¸²à¸¡à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸? à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡ à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸à¸ { -brand-short-name }
+
+## General Section
+
+startup-header = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸
+# { -brand-short-name } will be 'Firefox Developer Edition',
+# since this setting is only exposed in Firefox Developer Edition
+separate-profile-mode =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ { -brand-short-name } à¹à¸¥à¸° Firefox à¸à¸³à¸à¸²à¸à¸à¸£à¹à¸à¸¡à¸à¸±à¸
+use-firefox-sync = à¹à¸à¸¥à¹à¸à¸¥à¸±à¸: สิà¹à¸à¸à¸µà¹à¹à¸à¹à¹à¸à¸£à¹à¸à¸¥à¹à¹à¸¢à¸ à¹à¸à¹ { -sync-brand-short-name } à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸£à¸°à¸«à¸§à¹à¸²à¸à¹à¸à¸£à¹à¸à¸¥à¹
+get-started-not-logged-in = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸² { -sync-brand-short-name }â¦
+get-started-configured = à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸ { -sync-brand-short-name }
+always-check-default =
+ .label = à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸ªà¸¡à¸à¸§à¹à¸² { -brand-short-name } à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹
+ .accesskey = à¸
+is-default = { -brand-short-name } à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸à¸°à¸à¸µà¹
+is-not-default = { -brand-short-name } à¹à¸¡à¹à¹à¸à¹à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸
+set-as-my-default-browser =
+ .label = à¸à¸³à¹à¸«à¹à¹à¸à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸â¦
+ .accesskey = à¸
+startup-restore-previous-session =
+ .label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸§à¸²à¸£à¸°à¸à¹à¸à¸à¸«à¸à¹à¸²
+ .accesskey = ร
+startup-restore-warn-on-quit =
+ .label = à¹à¸à¸·à¸à¸à¸à¸¸à¸à¹à¸¡à¸·à¹à¸à¸à¸à¸à¸à¸²à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+disable-extension =
+ .label = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+tabs-group-header = à¹à¸à¹à¸
+ctrl-tab-recently-used-order =
+ .label = Ctrl+Tab à¹à¸à¸·à¹à¸à¸ªà¸¥à¸±à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¹à¸à¸à¸²à¸¡à¸¥à¸³à¸à¸±à¸à¸à¸µà¹à¹à¸à¹à¸¥à¹à¸²à¸ªà¸¸à¸
+ .accesskey = T
+open-new-link-as-tabs =
+ .label = à¹à¸à¸´à¸à¸¥à¸´à¸à¸à¹à¹à¸à¹à¸à¹à¸à¹à¸à¸à¸à¸µà¹à¸à¸°à¹à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹
+ .accesskey = à¸
+warn-on-close-multiple-tabs =
+ .label = à¹à¸à¸·à¸à¸à¸à¸¸à¸à¹à¸¡à¸·à¹à¸à¸à¸³à¸¥à¸±à¸à¸à¸°à¸à¸´à¸à¸«à¸¥à¸²à¸¢à¹à¸à¹à¸
+ .accesskey = à¸
+warn-on-open-many-tabs =
+ .label = à¹à¸à¸·à¸à¸à¸à¸¸à¸à¹à¸¡à¸·à¹à¸à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸¥à¸²à¸¢à¹à¸à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹ { -brand-short-name } à¸à¹à¸²à¸¥à¸
+ .accesskey = à¸
+switch-links-to-new-tabs =
+ .label = à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸à¸´à¸à¸¥à¸´à¸à¸à¹à¹à¸à¹à¸à¹à¸à¹à¸«à¸¡à¹ สลัà¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¹à¸à¸à¸±à¸à¸à¸µ
+ .accesskey = ม
+show-tabs-in-taskbar =
+ .label = à¹à¸ªà¸à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸à¹à¸à¹à¸à¸à¸à¸²à¸ Windows
+ .accesskey = ส
+browser-containers-enabled =
+ .label = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+ .accesskey = ย
+browser-containers-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+browser-containers-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = à¸
+containers-disable-alert-title = à¸à¸´à¸à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¹à¸à¸«à¸¡à¸?
+containers-disable-alert-desc = หาà¸à¸à¸¸à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸µà¹ { $tabCount } à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸°à¸à¸¹à¸à¸à¸´à¸ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥?
+containers-disable-alert-ok-button = à¸à¸´à¸ { $tabCount } à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+containers-disable-alert-cancel-button = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¹à¸
+containers-remove-alert-title = à¹à¸à¸²à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸à¸?
+# Variables:
+# $count (Number) - Number of tabs that will be closed.
+containers-remove-alert-msg = หาà¸à¸à¸¸à¸à¹à¸à¸²à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸à¸à¸à¸à¸à¸à¸µà¹ { $count } à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸°à¸à¸¹à¸à¸à¸´à¸ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸²à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸à¸?
+containers-remove-ok-button = à¹à¸à¸²à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸à¸
+containers-remove-cancel-button = à¹à¸¡à¹à¹à¸à¸²à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸à¸
+
+## General Section - Language & Appearance
+
+language-and-appearance-header = ภาษาà¹à¸¥à¸°à¸¥à¸±à¸à¸©à¸à¸°à¸à¸µà¹à¸à¸£à¸²à¸à¸
+fonts-and-colors-header = à¹à¸à¸à¸à¸±à¸à¸©à¸£à¹à¸¥à¸°à¸ªà¸µ
+default-font = à¹à¸à¸à¸à¸±à¸à¸©à¸£à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+ .accesskey = à¸
+default-font-size = à¸à¸à¸²à¸
+ .accesskey = à¸
+advanced-fonts =
+ .label = à¸à¸±à¹à¸à¸ªà¸¹à¸â¦
+ .accesskey = à¸
+colors-settings =
+ .label = สีâ¦
+ .accesskey = ส
+language-header = ภาษา
+choose-language-description = à¹à¸¥à¸·à¸à¸à¸ าษาà¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥à¸«à¸à¹à¸²
+choose-button =
+ .label = à¹à¸¥à¸·à¸à¸â¦
+ .accesskey = ล
+choose-browser-language-description = à¹à¸¥à¸·à¸à¸à¸ าษาà¸à¸µà¹à¹à¸à¹à¹à¸ªà¸à¸à¹à¸¡à¸à¸¹, à¸à¹à¸à¸à¸§à¸²à¸¡ à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸²à¸ { -brand-short-name }
+manage-browser-languages-button =
+ .label = à¸à¸±à¹à¸à¸à¸²à¸à¹à¸¥à¸·à¸à¸â¦
+ .accesskey = à¸
+confirm-browser-language-change-description = à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹
+confirm-browser-language-change-button = à¸à¸³à¹à¸à¹à¸à¹à¹à¸¥à¹à¸§à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹
+translate-web-pages =
+ .label = à¹à¸à¸¥à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸
+ .accesskey = à¸
+# The
element is replaced by the logo of the provider
+# used to provide machine translations for web pages.
+translate-attribution = à¹à¸à¸¥à¹à¸à¸¢
+translate-exceptions =
+ .label = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸â¦
+ .accesskey = à¸
+check-user-spelling =
+ .label = à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸ªà¸°à¸à¸à¸à¸³à¸à¸à¸à¸à¸¸à¸à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¸à¸´à¸¡à¸à¹
+ .accesskey = à¸
+
+## General Section - Files and Applications
+
+files-and-applications-title = à¹à¸à¸¥à¹à¹à¸¥à¸°à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+download-header = à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+download-save-to =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¥à¹à¹à¸à¸¢à¸±à¸
+ .accesskey = à¸
+download-choose-folder =
+ .label =
+ { PLATFORM() ->
+ [macos] à¹à¸¥à¸·à¸à¸â¦
+ *[other] à¹à¸£à¸µà¸¢à¸à¸à¸¹â¦
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [macos] ล
+ *[other] ร
+ }
+download-always-ask-where =
+ .label = à¸à¸²à¸¡à¸à¸¸à¸à¹à¸ªà¸¡à¸à¸§à¹à¸²à¸à¸°à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¥à¹à¸à¸µà¹à¹à¸«à¸
+ .accesskey = à¸
+applications-header = à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+applications-description = à¹à¸¥à¸·à¸à¸à¸§à¸´à¸à¸µà¸à¸µà¹ { -brand-short-name } à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸¸à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸²à¸à¹à¸§à¹à¸à¸«à¸£à¸·à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¸à¸à¸°à¹à¸£à¸µà¸¢à¸à¸à¸¹
+applications-filter =
+ .placeholder = à¸à¹à¸à¸«à¸²à¸à¸à¸´à¸à¹à¸à¸¥à¹à¸«à¸£à¸·à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+applications-type-column =
+ .label = à¸à¸à¸´à¸à¹à¸à¸·à¹à¸à¸«à¸²
+ .accesskey = à¸
+applications-action-column =
+ .label = à¸à¸²à¸£à¸à¸£à¸°à¸à¸³
+ .accesskey = à¸
+drm-content-header = à¹à¸à¸·à¹à¸à¸«à¸² Digital Rights Management (DRM)
+play-drm-content =
+ .label = à¹à¸¥à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¸à¸¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¹à¸à¸¢ DRM
+ .accesskey = ล
+play-drm-content-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+update-application-title = à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸ { -brand-short-name }
+update-application-description = à¸à¸ { -brand-short-name } à¹à¸«à¹à¹à¸à¹à¸à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸à¹à¸à¸·à¹à¸à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸, à¹à¸ªà¸à¸µà¸¢à¸£à¸ าภà¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸à¸µà¸à¸µà¹à¸ªà¸¸à¸
+update-application-version = รุà¹à¸ { $version } มีà¸à¸°à¹à¸£à¹à¸«à¸¡à¹
+update-history =
+ .label = à¹à¸ªà¸à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸â¦
+ .accesskey = ส
+update-application-allow-description = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ { -brand-short-name }
+update-application-auto =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ (à¹à¸à¸°à¸à¸³)
+ .accesskey = à¸
+update-application-check-choose =
+ .label = à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¹à¹à¸«à¹à¸à¸¸à¸à¹à¸¥à¸·à¸à¸à¸§à¹à¸²à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹
+ .accesskey = ว
+update-application-manual =
+ .label = à¹à¸¡à¹à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸ªà¸¡à¸ (à¹à¸¡à¹à¹à¸à¸°à¸à¸³)
+ .accesskey = ม
+update-application-warning-cross-user-setting = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹à¸à¸°à¸à¸³à¹à¸à¹à¸à¹à¸à¸±à¸à¸à¸±à¸à¸à¸µ Windows à¸à¸±à¹à¸à¸«à¸¡à¸ à¹à¸¥à¸°à¹à¸à¸£à¹à¸à¸¥à¹ { -brand-short-name } à¹à¸à¸à¸à¸°à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ { -brand-short-name }
+update-application-use-service =
+ .label = à¹à¸à¹à¸à¸£à¸´à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸à¸«à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+ .accesskey = à¸
+update-enable-search-update =
+ .label = à¸à¸±à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .accesskey = à¸
+update-pref-write-failure-title = à¸à¸²à¸£à¹à¸à¸µà¸¢à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+# Variables:
+# $path (String) - Path to the configuration file
+update-pref-write-failure-message = à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸±à¸à¸à¸¶à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸µà¸¢à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸¥à¹: { $path }
+update-setting-write-failure-title = à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸¶à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+update-in-progress-title = à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¹à¸à¸
+update-in-progress-message = à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸«à¹ { -brand-short-name } à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+update-in-progress-ok-button = &ละà¸à¸´à¹à¸
+# Continue is the cancel button so pressing escape or using a platform standard
+# method of closing the UI will not discard the update.
+update-in-progress-cancel-button = &à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+
+## General Section - Performance
+
+performance-title = à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸
+performance-use-recommended-settings-checkbox =
+ .label = à¹à¸à¹à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¸à¸µà¹à¹à¸à¸°à¸à¸³
+ .accesskey = à¸
+performance-use-recommended-settings-desc = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¸à¸¹à¸à¸à¸£à¸±à¸à¹à¸«à¹à¹à¸«à¸¡à¸²à¸°à¸ªà¸¡à¸à¸±à¸à¸®à¸²à¸£à¹à¸à¹à¸§à¸£à¹à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¸à¸´à¸à¸±à¸à¸´à¸à¸²à¸£à¸à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+performance-settings-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+performance-allow-hw-accel =
+ .label = à¹à¸à¹à¸à¸²à¸£à¹à¸£à¹à¸à¸à¸§à¸²à¸¡à¹à¸£à¹à¸§à¸à¹à¸§à¸¢à¸®à¸²à¸£à¹à¸à¹à¸§à¸£à¹à¹à¸¡à¸·à¹à¸à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+ .accesskey = à¸
+performance-limit-content-process-option = à¸à¸µà¸à¸à¸³à¸à¸±à¸à¹à¸à¸£à¹à¸à¸ªà¹à¸à¸·à¹à¸à¸«à¸²
+ .accesskey = à¸
+performance-limit-content-process-enabled-desc = à¹à¸à¸£à¹à¸à¸ªà¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸´à¹à¸¡à¸à¸¶à¹à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¹à¸¡à¸·à¹à¸à¹à¸à¹à¸«à¸¥à¸²à¸¢à¹à¸à¹à¸ à¹à¸à¹à¸à¸°à¹à¸à¹à¸«à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³à¸¡à¸²à¸à¸à¸¶à¹à¸à¹à¸à¹à¸à¸à¸±à¸
+performance-limit-content-process-blocked-desc = à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸³à¸à¸§à¸à¹à¸à¸£à¹à¸à¸ªà¹à¸à¸·à¹à¸à¸«à¸²à¸à¸³à¹à¸à¹à¹à¸à¸à¸²à¸°à¸à¸±à¸ { -brand-short-name } à¹à¸à¸à¸«à¸¥à¸²à¸¢à¹à¸à¸£à¹à¸à¸ª à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µà¸à¸£à¸§à¸à¸ªà¸à¸à¸§à¹à¸²à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¸«à¸¥à¸²à¸¢à¹à¸à¸£à¹à¸à¸ªà¸à¸¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹à¸«à¸£à¸·à¸à¹à¸¡à¹
+# Variables:
+# $num - default value of the `dom.ipc.processCount` pref.
+performance-default-content-process-count =
+ .label = { $num } (à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸)
+
+## General Section - Browsing
+
+browsing-title = à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+browsing-use-autoscroll =
+ .label = à¹à¸à¹à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .accesskey = à¸
+browsing-use-smooth-scrolling =
+ .label = à¹à¸à¹à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸à¸¥à¸·à¹à¸à¹à¸«à¸¥
+ .accesskey = à¸
+browsing-use-onscreen-keyboard =
+ .label = à¹à¸ªà¸à¸à¹à¸à¹à¸à¸à¸´à¸¡à¸à¹à¹à¸à¸à¸ªà¸±à¸¡à¸à¸±à¸ªà¹à¸¡à¸·à¹à¸à¸à¸³à¹à¸à¹à¸
+ .accesskey = à¸
+browsing-use-cursor-navigation =
+ .label = à¹à¸à¹à¸à¸¸à¹à¸¡à¸¥à¸¹à¸à¸¨à¸£à¹à¸à¸·à¹à¸à¸à¸³à¸à¸²à¸à¸ ายà¹à¸à¸«à¸à¹à¸²à¹à¸ªà¸¡à¸
+ .accesskey = à¸
+browsing-search-on-start-typing =
+ .label = à¸à¹à¸à¸«à¸²à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸´à¸¡à¸à¹
+ .accesskey = ว
+browsing-cfr-recommendations =
+ .label = à¹à¸à¸°à¸à¸³à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸à¸°à¸à¸µà¹à¸à¸¸à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹
+ .accesskey = à¸
+browsing-cfr-features =
+ .label = à¹à¸à¸°à¸à¸³à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸à¸°à¸à¸µà¹à¸à¸¸à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹
+ .accesskey = à¸
+browsing-cfr-recommendations-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+## General Section - Proxy
+
+network-settings-title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢
+network-proxy-connection-description = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸§à¸´à¸à¸µà¸à¸µà¹ { -brand-short-name } à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸
+network-proxy-connection-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+network-proxy-connection-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = à¸
+
+## Home Section
+
+home-new-windows-tabs-header = หà¸à¹à¸²à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¹à¸à¹à¸«à¸¡à¹
+home-new-windows-tabs-description2 = à¹à¸¥à¸·à¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸«à¹à¸à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸à¸´à¸à¸«à¸à¹à¸²à¹à¸£à¸, หà¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹ à¹à¸¥à¸°à¹à¸à¹à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸¸à¸
+
+## Home Section - Home Page Customization
+
+home-homepage-mode-label = หà¸à¹à¸²à¹à¸£à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹
+home-newtabs-mode-label = à¹à¸à¹à¸à¹à¸«à¸¡à¹
+home-restore-defaults =
+ .label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+ .accesskey = ร
+# "Firefox" should be treated as a brand and kept in English,
+# while "Home" and "(Default)" can be localized.
+home-mode-choice-default =
+ .label = หà¸à¹à¸²à¹à¸£à¸ Firefox (à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸)
+home-mode-choice-custom =
+ .label = URL à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸â¦
+home-mode-choice-blank =
+ .label = หà¸à¹à¸²à¸§à¹à¸²à¸
+home-homepage-custom-url =
+ .placeholder = วาภURLâ¦
+# This string has a special case for '1' and [other] (default). If necessary for
+# your language, you can add {$tabCount} to your translations and use the
+# standard CLDR forms, or only use the form for [other] if both strings should
+# be identical.
+use-current-pages =
+ .label =
+ { $tabCount ->
+ [1] à¹à¸à¹à¸«à¸à¹à¸²à¸à¸±à¸à¸à¸¸à¸à¸±à¸
+ *[other] à¹à¸à¹à¸«à¸à¹à¸²à¸à¸±à¸à¸à¸¸à¸à¸±à¸
+ }
+ .accesskey = à¸
+choose-bookmark =
+ .label = à¹à¸à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²â¦
+ .accesskey = à¸
+
+## Search Section
+
+search-bar-header = à¹à¸à¸à¸à¹à¸à¸«à¸²
+search-bar-hidden =
+ .label = à¹à¸à¹à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¸à¸²à¸£à¸à¸³à¸à¸²à¸
+search-bar-shown =
+ .label = à¹à¸à¸´à¹à¸¡à¹à¸à¸à¸à¹à¸à¸«à¸²à¹à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸
+search-engine-default-header = à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+search-engine-default-desc = à¹à¸¥à¸·à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸µà¹à¸à¸°à¹à¸à¹à¹à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸¥à¸°à¹à¸à¸à¸à¹à¸à¸«à¸²
+search-suggestions-option =
+ .label = à¹à¸«à¹à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+ .accesskey = ห
+search-show-suggestions-url-bar-option =
+ .label = à¹à¸ªà¸à¸à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸à¸à¸¥à¸¥à¸±à¸à¸à¹à¸à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+ .accesskey = ส
+# This string describes what the user will observe when the system
+# prioritizes search suggestions over browsing history in the results
+# that extend down from the address bar. In the original English string,
+# "ahead" refers to location (appearing most proximate to), not time
+# (appearing before).
+search-show-suggestions-above-history-option =
+ .label = à¹à¸ªà¸à¸à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸à¸³à¸«à¸à¹à¸²à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸¥à¸¥à¸±à¸à¸à¹à¸à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+search-suggestions-cant-show = à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸à¸°à¹à¸¡à¹à¹à¸ªà¸à¸à¹à¸à¸à¸¥à¸¥à¸±à¸à¸à¹à¸à¸à¸à¹à¸à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¸à¸à¹à¸à¹à¸à¸³à¸«à¸à¸à¸à¹à¸² { -brand-short-name } à¹à¸«à¹à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸ªà¸¡à¸
+search-one-click-header = à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸à¸à¸¥à¸´à¸à¹à¸à¸µà¸¢à¸§
+search-one-click-desc = à¹à¸¥à¸·à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¸à¸²à¸à¹à¸¥à¸·à¸à¸à¸à¸µà¹à¸à¸°à¸à¸£à¸²à¸à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸¥à¸°à¹à¸à¸à¸à¹à¸à¸«à¸²à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸³à¸ªà¸³à¸à¸±à¸
+search-choose-engine-column =
+ .label = à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²
+search-choose-keyword-column =
+ .label = à¸à¸³à¸ªà¸³à¸à¸±à¸
+search-restore-default =
+ .label = à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+ .accesskey = ร
+search-remove-engine =
+ .label = à¹à¸à¸²à¸à¸à¸
+ .accesskey = à¸
+search-find-more-link = à¸à¹à¸à¸«à¸²à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# This warning is displayed when the chosen keyword is already in use
+# ('Duplicate' is an adjective)
+search-keyword-warning-title = à¸à¸³à¸ªà¸³à¸à¸±à¸à¸à¹à¸³à¸à¸±à¸
+# Variables:
+# $name (String) - Name of a search engine.
+search-keyword-warning-engine = à¸à¸¸à¸à¹à¸à¹à¹à¸¥à¸·à¸à¸à¸à¸³à¸ªà¸³à¸à¸±à¸à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸à¸¢ â{ $name }â à¹à¸à¸£à¸à¹à¸¥à¸·à¸à¸à¸à¸³à¸ªà¸³à¸à¸±à¸à¸à¸·à¹à¸
+search-keyword-warning-bookmark = à¸à¸¸à¸à¹à¸à¹à¹à¸¥à¸·à¸à¸à¸à¸³à¸ªà¸³à¸à¸±à¸à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸à¸¢à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸² à¹à¸à¸£à¸à¹à¸¥à¸·à¸à¸à¸à¸³à¸ªà¸³à¸à¸±à¸à¸à¸·à¹à¸
+
+## Containers Section
+
+containers-back-link = « ยà¹à¸à¸à¸à¸¥à¸±à¸
+containers-header = à¹à¸à¹à¸à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+containers-add-button =
+ .label = à¹à¸à¸´à¹à¸¡à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸«à¸¡à¹
+ .accesskey = à¸
+containers-preferences-button =
+ .label = à¸à¹à¸²à¸à¸³à¸«à¸à¸
+containers-remove-button =
+ .label = à¹à¸à¸²à¸à¸à¸
+
+## Sync Section - Signed out
+
+sync-signedout-caption = à¸à¸³à¹à¸§à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸±à¸à¸à¸¸à¸
+sync-signedout-description = à¸à¸£à¸°à¸ªà¸²à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², à¸à¸£à¸°à¸§à¸±à¸à¸´, à¹à¸à¹à¸, รหัสà¸à¹à¸²à¸, สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡ à¹à¸¥à¸°à¸à¹à¸²à¸à¸³à¸«à¸à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸à¸¸à¸
+sync-signedout-account-title = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸ { -fxaccount-brand-name }
+sync-signedout-account-create = à¹à¸¡à¹à¸¡à¸µà¸à¸±à¸à¸à¸µ? à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¹à¸à¸²à¸
+ .accesskey = ม
+sync-signedout-account-signin =
+ .label = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸²â¦
+ .accesskey = ล
+# This message contains two links and two icon images.
+# `
` - Android logo icon
+# `` - Link to Android Download
+# `
` - iOS logo icon
+# `` - Link to iOS Download
+#
+# They can be moved within the sentence as needed to adapt
+# to your language, but should not be changed or translated.
+sync-mobile-promo = à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸ Firefox สำหรัà¸
Android หรืà¸
iOS à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¹à¸à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸¡à¸·à¸à¸à¸·à¸à¸à¸à¸à¸à¸¸à¸
+
+## Sync Section - Signed in
+
+sync-profile-picture =
+ .tooltiptext = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸£à¸¹à¸à¹à¸à¸£à¹à¸à¸¥à¹
+sync-disconnect =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸â¦
+ .accesskey = à¸
+sync-manage-account = à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸µ
+ .accesskey = à¸
+sync-signedin-unverified = { $email } ยัà¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸
+sync-signedin-login-failure = à¹à¸à¸£à¸à¸¥à¸à¸à¸·à¹à¸à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸ { $email } à¹à¸«à¸¡à¹
+sync-resend-verification =
+ .label = สà¹à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸à¹à¸«à¸¡à¹
+ .accesskey = ส
+sync-remove-account =
+ .label = à¹à¸à¸²à¸à¸±à¸à¸à¸µà¸à¸à¸
+ .accesskey = à¸
+sync-sign-in =
+ .label = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸²
+ .accesskey = à¸
+sync-signedin-settings-header = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² Sync
+sync-signedin-settings-desc = à¹à¸¥à¸·à¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸°à¸à¸£à¸°à¸ªà¸²à¸à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¸¢à¹à¸à¹ { -brand-short-name }
+sync-engine-bookmarks =
+ .label = à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+ .accesskey = à¸
+sync-engine-history =
+ .label = à¸à¸£à¸°à¸§à¸±à¸à¸´
+ .accesskey = à¸
+sync-engine-tabs =
+ .label = à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹
+ .tooltiptext = รายà¸à¸²à¸£à¸ªà¸´à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸µà¹à¸à¸´à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+ .accesskey = à¸
+sync-engine-logins =
+ .label = à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸
+ .tooltiptext = à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+ .accesskey = à¸
+sync-engine-addresses =
+ .label = à¸à¸µà¹à¸à¸¢à¸¹à¹
+ .tooltiptext = à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¸£à¸©à¸à¸µà¸¢à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹ (à¹à¸à¸ªà¸à¹à¸à¹à¸à¸à¹à¸à¹à¸²à¸à¸±à¹à¸)
+ .accesskey = à¸
+sync-engine-creditcards =
+ .label = à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+ .tooltiptext = à¸à¸·à¹à¸, หมายà¹à¸¥à¸ à¹à¸¥à¸°à¸§à¸±à¸à¸«à¸¡à¸à¸à¸²à¸¢à¸¸ (à¹à¸à¸ªà¸à¹à¸à¹à¸à¸à¹à¸à¹à¸²à¸à¸±à¹à¸)
+ .accesskey = à¸
+sync-engine-addons =
+ .label = สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+ .tooltiptext = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸¥à¸°à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸ Firefox à¹à¸à¸ªà¸à¹à¸à¹à¸à¸
+ .accesskey = ส
+sync-engine-prefs =
+ .label =
+ { PLATFORM() ->
+ [windows] à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+ *[other] à¸à¹à¸²à¸à¸³à¸«à¸à¸
+ }
+ .tooltiptext = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸±à¹à¸§à¹à¸, à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§ à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+ .accesskey = ว
+sync-device-name-header = à¸à¸·à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹
+sync-device-name-change =
+ .label = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹â¦
+ .accesskey = à¸
+sync-device-name-cancel =
+ .label = ยà¸à¹à¸¥à¸´à¸
+ .accesskey = ย
+sync-device-name-save =
+ .label = à¸à¸±à¸à¸à¸¶à¸
+ .accesskey = à¸
+sync-connect-another-device = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸
+sync-manage-devices = à¸à¸±à¸à¸à¸²à¸£à¸à¸¸à¸à¸à¸£à¸à¹
+sync-fxa-begin-pairing = à¸à¸±à¸à¸à¸¹à¹à¸à¸¸à¸à¸à¸£à¸à¹
+sync-tos-link = à¹à¸à¸·à¹à¸à¸à¹à¸à¸à¸²à¸£à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£
+sync-fxa-privacy-notice = à¸à¸£à¸°à¸à¸²à¸¨à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+
+## Privacy Section
+
+privacy-header = à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+
+## Privacy Section - Forms
+
+logins-header = à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸
+forms-ask-to-save-logins =
+ .label = à¸à¸²à¸¡à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹
+ .accesskey = à¸
+forms-exceptions =
+ .label = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸â¦
+ .accesskey = à¸
+forms-saved-logins =
+ .label = à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹â¦
+ .accesskey = à¸
+forms-master-pw-use =
+ .label = à¹à¸à¹à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¸¥à¸±à¸
+ .accesskey = à¸
+forms-master-pw-change =
+ .label = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¸¥à¸±à¸â¦
+ .accesskey = à¸
+
+## Privacy Section - History
+
+history-header = à¸à¸£à¸°à¸§à¸±à¸à¸´
+# This label is followed, on the same line, by a dropdown list of options
+# (Remember history, etc.).
+# In English it visually creates a full sentence, e.g.
+# "Firefox will" + "Remember history".
+#
+# If this doesn't work for your language, you can translate this message:
+# - Simply as "Firefox", moving the verb into each option.
+# This will result in "Firefox" + "Will remember history", etc.
+# - As a stand-alone message, for example "Firefox history settings:".
+history-remember-label = { -brand-short-name } à¸à¸°
+ .accesskey = à¸
+history-remember-option-all =
+ .label = à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´
+history-remember-option-never =
+ .label = à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸ªà¸¡à¸
+history-remember-option-custom =
+ .label = à¹à¸à¹à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸£à¸°à¸§à¸±à¸à¸´
+history-remember-description = { -brand-short-name } à¸à¸°à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹, à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸, à¹à¸à¸à¸à¸à¸£à¹à¸¡ à¹à¸¥à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸à¸à¸à¸à¸¸à¸
+history-dontremember-description = { -brand-short-name } à¸à¸°à¹à¸à¹à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¸µà¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸°à¹à¸¡à¹à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸ ๠à¸à¸à¸°à¸à¸µà¹à¸à¸¸à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹
+history-private-browsing-permanent =
+ .label = à¹à¸à¹à¹à¸«à¸¡à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸ªà¸¡à¸
+ .accesskey = à¸
+history-remember-browser-option =
+ .label = à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸¥à¸°à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+ .accesskey = à¸
+history-remember-search-option =
+ .label = à¸à¸à¸à¸³à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¸à¸à¸à¸£à¹à¸¡
+ .accesskey = à¸
+history-clear-on-close-option =
+ .label = ลà¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸¡à¸·à¹à¸ { -brand-short-name } à¸à¸´à¸
+ .accesskey = ล
+history-clear-on-close-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = à¸
+history-clear-button =
+ .label = ลà¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´â¦
+ .accesskey = à¸
+
+## Privacy Section - Site Data
+
+sitedata-header = à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+sitedata-total-size-calculating = à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸§à¸à¸à¸à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¹à¸¥à¸°à¹à¸à¸â¦
+# Variables:
+# $value (Number) - Value of the unit (for example: 4.6, 500)
+# $unit (String) - Name of the unit (for example: "bytes", "KB")
+sitedata-total-size = à¸à¸¸à¸à¸à¸µà¹, à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹ à¹à¸¥à¸°à¹à¸à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¹à¸ { $value } { $unit }
+sitedata-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+sitedata-delete-on-close =
+ .label = ลà¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¹à¸¡à¸·à¹à¸ { -brand-short-name } à¸à¸¹à¸à¸à¸´à¸
+ .accesskey = à¸
+sitedata-delete-on-close-private-browsing = à¹à¸à¹à¸«à¸¡à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸à¸à¸à¸²à¸§à¸£ à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸à¸°à¸à¸¹à¸à¸¥à¹à¸²à¸à¸à¸¸à¸à¸à¸£à¸±à¹à¸à¹à¸¡à¸·à¹à¸à¸à¸´à¸ { -brand-short-name }
+sitedata-allow-cookies-option =
+ .label = ยà¸à¸¡à¸£à¸±à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ .accesskey = ย
+sitedata-disallow-cookies-option =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ .accesskey = à¸
+# This label means 'type of content that is blocked', and is followed by a drop-down list with content types below.
+# The list items are the strings named sitedata-block-*-option*.
+sitedata-block-desc = à¸à¸à¸´à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+ .accesskey = à¸
+sitedata-option-block-trackers =
+ .label = à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡
+sitedata-option-block-unvisited =
+ .label = à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡
+sitedata-option-block-all-third-party =
+ .label = à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡à¸à¸±à¹à¸à¸«à¸¡à¸ (à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹)
+sitedata-option-block-all =
+ .label = à¸à¸¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸ (à¸à¸°à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹)
+sitedata-clear =
+ .label = ลà¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥â¦
+ .accesskey = ล
+sitedata-settings =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¸à¹à¸à¸¡à¸¹à¸¥â¦
+ .accesskey = à¸
+sitedata-cookies-permissions =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸â¦
+ .accesskey = à¸
+
+## Privacy Section - Address Bar
+
+addressbar-header = à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+addressbar-suggest = à¹à¸¡à¸·à¹à¸à¹à¸à¹à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹ à¹à¸ªà¸à¸à¹à¸à¸°
+addressbar-locbar-history-option =
+ .label = à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+ .accesskey = ว
+addressbar-locbar-bookmarks-option =
+ .label = à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+ .accesskey = à¸
+addressbar-locbar-openpage-option =
+ .label = à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹
+ .accesskey = à¸
+addressbar-suggestions-settings = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²
+
+## Privacy Section - Content Blocking
+
+content-blocking-header = à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+content-blocking-description = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¹à¸à¹à¸§à¹à¸à¸à¹à¸²à¸ ๠à¸à¸§à¸à¸à¸¸à¸¡à¸à¸³à¸à¸§à¸à¸à¸´à¸à¸à¸£à¸£à¸¡à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸±à¸à¹à¸à¹à¸à¹à¸¥à¸°à¹à¸à¹à¸à¸à¸±à¸à¸£à¸°à¸«à¸§à¹à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹
+content-blocking-section-description = à¸à¸à¸à¹à¸à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸à¸à¸à¸°à¸à¸¸à¸à¸à¹à¸à¸à¹à¸§à¹à¸ à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¸¡à¸à¸à¹à¸¡à¹à¹à¸«à¹à¸à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸¥à¸°à¸ªà¸à¸à¸ªà¹à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸ à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹à¸«à¸à¹à¸²à¹à¸«à¸¥à¸à¹à¸£à¹à¸§à¸à¸¶à¹à¸
+content-blocking-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# The terminology used to refer to categories of Content Blocking is also used in chrome/browser/browser.properties and should be translated consistently.
+# "Standard" in this case is an adjective, meaning "default" or "normal".
+content-blocking-setting-standard =
+ .label = มาà¸à¸£à¸à¸²à¸
+ .accesskey = ม
+content-blocking-setting-strict =
+ .label = à¹à¸à¹à¸¡à¸à¸§à¸
+ .accesskey = à¸
+content-blocking-setting-custom =
+ .label = à¸à¸³à¸«à¸à¸à¹à¸à¸
+ .accesskey = à¸
+content-blocking-standard-description = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸à¸²à¸°à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸µà¹à¸£à¸¹à¹à¸à¸±à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+content-blocking-standard-desc = à¸à¸²à¸£à¸à¹à¸à¸à¸à¸±à¸à¹à¸¥à¸°à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¸à¸µà¹à¸ªà¸¡à¸à¸¸à¸¥ à¸à¸à¸¸à¸à¸²à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¹à¸«à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸³à¸à¸²à¸à¹à¸à¹à¸à¸¹à¸à¸à¹à¸à¸
+content-blocking-strict-desc = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹ { -brand-short-name } à¸à¸£à¸§à¸à¸à¸ à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¹à¸à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+content-blocking-strict-description = à¸à¸²à¸£à¸à¹à¸à¸à¸à¸±à¸à¸à¸µà¹à¹à¸à¹à¸à¹à¸à¸£à¹à¸à¸à¸¶à¹à¸ à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¹à¸à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+content-blocking-custom-desc = à¹à¸¥à¸·à¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸
+content-blocking-private-trackers = à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸µà¹à¸£à¸¹à¹à¸à¸±à¸à¹à¸à¸à¸²à¸°à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+content-blocking-third-party-cookies = à¸à¸¸à¸à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡
+content-blocking-all-cookies = à¸à¸¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸
+content-blocking-unvisited-cookies = à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡
+content-blocking-all-windows-trackers = à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸µà¹à¸£à¸¹à¹à¸à¸±à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+content-blocking-all-third-party-cookies = à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡à¸à¸±à¹à¸à¸«à¸¡à¸
+content-blocking-cryptominers = à¸à¸±à¸§à¸à¸¸à¸à¹à¸«à¸£à¸µà¸¢à¸à¸à¸´à¸à¸´à¸à¸±à¸¥
+content-blocking-fingerprinters = ลายà¸à¸´à¹à¸§à¸¡à¸·à¸à¸à¸´à¸à¸´à¸à¸±à¸¥
+content-blocking-warning-title = ระวัà¸!
+content-blocking-warning-description = à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¹à¸à¸²à¸£à¹à¸¡à¹à¹à¸à¹ à¹à¸à¹à¸¡à¸±à¸à¸à¹à¸à¹à¸²à¸¢à¸à¸µà¹à¸à¸°à¸à¸¥à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸§à¹à¹à¸
+content-blocking-learn-how = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µ
+content-blocking-reload-description = à¸à¸¸à¸à¸à¸°à¸à¹à¸à¸à¹à¸«à¸¥à¸à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹
+content-blocking-reload-tabs-button =
+ .label = à¹à¸«à¸¥à¸à¹à¸à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸«à¸¡à¹
+ .accesskey = ล
+content-blocking-trackers-label =
+ .label = à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡
+ .accesskey = à¸
+content-blocking-tracking-protection-option-all-windows =
+ .label = à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+ .accesskey = à¸
+content-blocking-option-private =
+ .label = à¹à¸à¸à¸²à¸°à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+ .accesskey = à¸
+content-blocking-tracking-protection-change-block-list = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+content-blocking-cookies-label =
+ .label = à¸à¸¸à¸à¸à¸µà¹
+ .accesskey = à¸
+content-blocking-expand-section =
+ .tooltiptext = à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# Cryptomining refers to using scripts on websites that can use a computerâs resources to mine cryptocurrency without a userâs knowledge.
+content-blocking-cryptominers-label =
+ .label = à¸à¸±à¸§à¸à¸¸à¸à¹à¸«à¸£à¸µà¸¢à¸à¸à¸´à¸à¸´à¸à¸±à¸¥
+ .accesskey = y
+# Browser fingerprinting is a method of tracking users by the configuration and settings information (their "digital fingerprint")
+# that is visible to websites they browse, rather than traditional tracking methods such as IP addresses and unique cookies.
+content-blocking-fingerprinters-label =
+ .label = ลายà¸à¸´à¹à¸§à¸¡à¸·à¸à¸à¸´à¸à¸´à¸à¸±à¸¥
+ .accesskey = F
+
+## Privacy Section - Tracking
+
+tracking-manage-exceptions =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸â¦
+ .accesskey = à¸
+
+## Privacy Section - Permissions
+
+permissions-header = สิà¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸
+permissions-location = à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+permissions-location-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = à¸
+permissions-camera = à¸à¸¥à¹à¸à¸
+permissions-camera-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = à¸
+permissions-microphone = à¹à¸¡à¹à¸à¸£à¹à¸à¸
+permissions-microphone-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = à¸
+permissions-notification = à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+permissions-notification-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = ร
+permissions-notification-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+permissions-notification-pause =
+ .label = หยุà¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§à¸à¸à¸à¸£à¸°à¸à¸±à¹à¸ { -brand-short-name } à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹
+ .accesskey = ห
+permissions-block-autoplay-media2 =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¸à¸²à¸£à¹à¸¥à¹à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .accesskey = à¸
+permissions-block-autoplay-media-exceptions =
+ .label = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸â¦
+ .accesskey = à¸
+permissions-autoplay = à¸à¸²à¸£à¹à¸¥à¹à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+permissions-autoplay-settings =
+ .label = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²â¦
+ .accesskey = t
+permissions-block-popups =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸
+ .accesskey = à¸
+permissions-block-popups-exceptions =
+ .label = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸â¦
+ .accesskey = à¸
+permissions-addon-install-warning =
+ .label = à¹à¸à¸·à¸à¸à¸à¸¸à¸à¹à¸¡à¸·à¹à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+ .accesskey = à¸
+permissions-addon-exceptions =
+ .label = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸â¦
+ .accesskey = à¸
+permissions-a11y-privacy-checkbox =
+ .label = à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+ .accesskey = à¸
+permissions-a11y-privacy-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+## Privacy Section - Data Collection
+
+collection-header = à¸à¸²à¸£à¹à¸à¹à¸à¸£à¸§à¸à¸£à¸§à¸¡à¹à¸¥à¸°à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥ { -brand-short-name }
+collection-description = à¹à¸£à¸²à¸¡à¸¸à¹à¸à¸¡à¸±à¹à¸à¸à¸µà¹à¸à¸°à¹à¸«à¹à¸à¸²à¸à¹à¸¥à¸·à¸à¸à¸à¸±à¸à¸à¸¸à¸à¹à¸¥à¸°à¹à¸à¹à¸à¸£à¸§à¸à¸£à¸§à¸¡à¹à¸à¸à¸²à¸°à¸ªà¸´à¹à¸à¸à¸µà¹à¹à¸£à¸²à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¹à¸¥à¸°à¸à¸£à¸±à¸à¸à¸£à¸¸à¸ { -brand-short-name } สำหรัà¸à¸à¸¸à¸à¸à¸ à¹à¸£à¸²à¸à¸à¸à¸à¸¸à¸à¸²à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸°à¸£à¸±à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¹à¸ªà¸¡à¸
+collection-privacy-notice = à¸à¸£à¸°à¸à¸²à¸¨à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+collection-health-report =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ { -brand-short-name } สà¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¹à¸à¸à¸à¸´à¸à¹à¸¥à¸°à¸à¸²à¸£à¹à¸à¹à¸à¸à¸à¹à¸à¸¢à¸±à¸ { -vendor-short-name }
+ .accesskey = à¸
+collection-health-report-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+collection-studies =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ { -brand-short-name } à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¸°à¹à¸£à¸µà¸¢à¸à¹à¸à¹à¸à¸²à¸£à¸¨à¸¶à¸à¸©à¸²
+collection-studies-link = à¸à¸¹à¸à¸²à¸£à¸¨à¸¶à¸à¸©à¸²à¸à¸à¸ { -brand-short-name }
+addon-recommendations =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ { -brand-short-name } สรà¹à¸²à¸à¸à¸³à¹à¸à¸°à¸à¸³à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥
+addon-recommendations-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# This message is displayed above disabled data sharing options in developer builds
+# or builds with no Telemetry support available.
+collection-health-report-disabled = à¸à¸²à¸£à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸²à¸£à¸ªà¸£à¹à¸²à¸à¸à¸µà¹
+collection-backlogged-crash-reports =
+ .label = à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ { -brand-short-name } สà¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¹à¸²à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸²à¸¡à¸à¸à¸à¸à¸¸à¸
+ .accesskey = à¸
+collection-backlogged-crash-reports-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+## Privacy Section - Security
+##
+## It is important that wording follows the guidelines outlined on this page:
+## https://developers.google.com/safe-browsing/developers_guide_v2#AcceptableUsage
+
+security-header = à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+security-browsing-protection = à¸à¸²à¸£à¸à¹à¸à¸à¸à¸±à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸«à¸¥à¸à¸à¸¥à¸§à¸à¹à¸¥à¸°à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢
+security-enable-safe-browsing =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¹à¸¥à¸°à¸«à¸¥à¸à¸à¸¥à¸§à¸
+ .accesskey = à¸
+security-enable-safe-browsing-link = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+security-block-downloads =
+ .label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢
+ .accesskey = à¸
+security-block-uncommon-software =
+ .label = à¹à¸à¸·à¸à¸à¸à¸¸à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¹à¸¡à¹à¸à¸¶à¸à¸à¸£à¸°à¸ªà¸à¸à¹à¹à¸¥à¸°à¹à¸¡à¹à¸à¸à¸à¸´
+ .accesskey = à¸
+
+## Privacy Section - Certificates
+
+certs-header = à¹à¸à¸£à¸±à¸à¸£à¸à¸
+certs-personal-label = à¹à¸¡à¸·à¹à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¸à¸à¸à¸à¸¸à¸
+certs-select-auto-option =
+ .label = à¹à¸¥à¸·à¸à¸à¸¡à¸²à¸«à¸à¸¶à¹à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+ .accesskey = ห
+certs-select-ask-option =
+ .label = à¸à¸²à¸¡à¸à¸¸à¸à¸à¸¸à¸à¸à¸£à¸±à¹à¸
+ .accesskey = à¸
+certs-enable-ocsp =
+ .label = สืà¸à¸à¹à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸à¸à¸à¸¥à¸±à¸ OCSP à¹à¸à¸·à¹à¸à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸
+ .accesskey = à¸
+certs-view =
+ .label = à¸à¸¹à¹à¸à¸£à¸±à¸à¸£à¸à¸â¦
+ .accesskey = à¸
+certs-devices =
+ .label = à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยâ¦
+ .accesskey = à¸
+space-alert-learn-more-button =
+ .label = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+ .accesskey = ร
+space-alert-over-5gb-pref-button =
+ .label =
+ { PLATFORM() ->
+ [windows] à¹à¸à¸´à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+ *[other] à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+ }
+ .accesskey =
+ { PLATFORM() ->
+ [windows] à¸
+ *[other] à¸
+ }
+space-alert-over-5gb-message =
+ { PLATFORM() ->
+ [windows] à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¸à¸à¸ { -brand-short-name } à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¹à¸¡ à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹à¹à¸à¹à¹à¸ à¸à¸±à¸§à¹à¸¥à¸·à¸à¸ > à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย > à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ *[other] à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¸à¸à¸ { -brand-short-name } à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¹à¸¡ à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹à¹à¸à¹à¹à¸ à¸à¹à¸²à¸à¸³à¸«à¸à¸ > à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย > à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+ }
+space-alert-under-5gb-ok-button =
+ .label = à¸à¸à¸¥à¸ à¹à¸à¹à¸²à¹à¸à¹à¸¥à¹à¸§
+ .accesskey = à¸
+space-alert-under-5gb-message = à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¸à¸à¸ { -brand-short-name } à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¹à¸¡ à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡ âà¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡â à¹à¸à¸·à¹à¸à¹à¸à¸´à¹à¸¡à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¸à¸´à¸ªà¸à¹à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸£à¸°à¸ªà¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸µà¹à¸à¸µà¸à¸¶à¹à¸
+
+## The following strings are used in the Download section of settings
+
+desktop-folder-name = à¹à¸à¸ªà¸à¹à¸à¹à¸à¸
+downloads-folder-name = à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+choose-download-folder-title = à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸:
+# Variables:
+# $service-name (String) - Name of a cloud storage provider like Dropbox, Google Drive, etc...
+save-files-to-cloud-storage =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¥à¹à¹à¸à¸¢à¸±à¸ { $service-name }
diff --git a/browser/browser/preferences/selectBookmark.ftl b/browser/browser/preferences/selectBookmark.ftl
new file mode 100644
index 00000000000..37d5e618042
--- /dev/null
+++ b/browser/browser/preferences/selectBookmark.ftl
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+select-bookmark-window =
+ .title = à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸£à¸
+ .style = width: 32em;
+select-bookmark-desc = à¹à¸¥à¸·à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸±à¹à¸à¹à¸à¹à¸à¸«à¸à¹à¸²à¹à¸£à¸ หาà¸à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹ à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸±à¸à¸à¸¥à¹à¸²à¸§à¸à¸°à¸à¸¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¹à¸
diff --git a/browser/browser/preferences/siteDataSettings.ftl b/browser/browser/preferences/siteDataSettings.ftl
new file mode 100644
index 00000000000..776d5205b07
--- /dev/null
+++ b/browser/browser/preferences/siteDataSettings.ftl
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+## Settings
+
+site-data-settings-window =
+ .title = à¸à¸±à¸à¸à¸²à¸£à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+site-data-settings-description = à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¹à¸§à¹à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸ { -brand-short-name } à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸§à¸£à¸à¸à¸à¸§à¹à¸²à¸à¸¸à¸à¸à¸°à¸¥à¸à¸à¸à¸ à¹à¸¥à¸°à¸¥à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸¡à¹à¸à¸²à¸§à¸£à¸à¸à¸à¹à¸¡à¸·à¹à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸·à¹à¸à¸à¸µà¹
+site-data-search-textbox =
+ .placeholder = à¸à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹
+ .accesskey = à¸
+site-data-column-host =
+ .label = à¹à¸à¸à¹
+site-data-column-cookies =
+ .label = à¸à¸¸à¸à¸à¸µà¹
+site-data-column-storage =
+ .label = à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥
+site-data-column-last-used =
+ .label = วัà¸à¸à¸µà¹à¹à¸à¹à¸à¸£à¸±à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+site-data-remove-selected =
+ .label = à¹à¸à¸²à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸à¸
+ .accesskey = à¸
+site-data-button-cancel =
+ .label = ยà¸à¹à¸¥à¸´à¸
+ .accesskey = ย
+site-data-button-save =
+ .label = à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+ .accesskey = à¸
+# Variables:
+# $value (Number) - Value of the unit (for example: 4.6, 500)
+# $unit (String) - Name of the unit (for example: "bytes", "KB")
+site-usage-pattern = { $value } { $unit }
+site-usage-persistent = { site-usage-pattern } (à¸à¸²à¸§à¸£)
+# Variables:
+# $value (Number) - Value of the unit (for example: 4.6, 500)
+# $unit (String) - Name of the unit (for example: "bytes", "KB")
+site-storage-usage =
+ .value = { $value } { $unit }
+site-storage-persistent =
+ .value = { site-storage-usage.value } (à¸à¸²à¸§à¸£)
+site-data-remove-all =
+ .label = à¹à¸à¸²à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸
+ .accesskey = à¸
+site-data-remove-shown =
+ .label = à¹à¸à¸²à¸à¸µà¹à¹à¸ªà¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸
+ .accesskey = à¸
+
+## Removing
+
+site-data-removing-dialog =
+ .title = { site-data-removing-header }
+ .buttonlabelaccept = à¹à¸à¸²à¸à¸à¸
+site-data-removing-header = à¸à¸²à¸£à¹à¸à¸²à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸à¸à¸
+site-data-removing-desc = à¸à¸²à¸£à¹à¸à¸²à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸à¸à¸à¸à¸²à¸à¸à¸³à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¸£à¸°à¸à¸à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸?
+site-data-removing-table = à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸°à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸
diff --git a/browser/browser/preferences/syncDisconnect.ftl b/browser/browser/preferences/syncDisconnect.ftl
new file mode 100644
index 00000000000..e144f24bc08
--- /dev/null
+++ b/browser/browser/preferences/syncDisconnect.ftl
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+sync-disconnect-dialog =
+ .title = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸ { -sync-brand-short-name }?
+ .style = width: 36em; min-height: 35em;
+sync-disconnect-heading = à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸²à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸à¸à¸à¹à¸§à¸¢à¸«à¸£à¸·à¸à¹à¸¡à¹? à¸à¹à¸à¸¡à¸¹à¸¥ { -sync-brand-name } à¸à¸à¸à¸à¸¸à¸à¸à¸°à¸¢à¸±à¸à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸
+sync-disconnect-remove-sync-caption = à¹à¸à¸²à¸à¹à¸à¸¡à¸¹à¸¥ { -sync-brand-name } à¸à¸à¸
+sync-disconnect-remove-sync-data = à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², à¸à¸£à¸°à¸§à¸±à¸à¸´, รหัสà¸à¹à¸²à¸ ฯลฯ
+sync-disconnect-remove-other-caption = à¹à¸à¸²à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸·à¹à¸ ๠à¸à¸à¸
+sync-disconnect-remove-other-data = à¸à¸¸à¸à¸à¸µà¹, à¹à¸à¸, à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸à¸à¹à¸¥à¸à¹ ฯลฯ
+# Shown while the disconnect is in progress
+sync-disconnect-disconnecting = à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸â¦
+sync-disconnect-cancel =
+ .label = ยà¸à¹à¸¥à¸´à¸
+ .accesskey = ย
+
+## Disconnect confirm Button
+##
+## The 2 labels which may be shown on the single "Disconnect" button, depending
+## on the state of the checkboxes.
+
+sync-disconnect-confirm-disconnect-delete =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¥à¹à¸§à¸¥à¸
+ .accesskey = à¸
+sync-disconnect-confirm-disconnect =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸µà¸¢à¸§
+ .accesskey = à¸
diff --git a/browser/browser/preferences/translation.ftl b/browser/browser/preferences/translation.ftl
new file mode 100644
index 00000000000..1810cfd7e49
--- /dev/null
+++ b/browser/browser/preferences/translation.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+translation-window =
+ .title = à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸ - à¸à¸²à¸£à¹à¸à¸¥
+ .style = width: 36em
+translation-close-key =
+ .key = w
+translation-languages-disabled-desc = à¸à¸²à¸£à¹à¸à¸¥à¸à¸°à¹à¸¡à¹à¸à¸¹à¸à¸à¸³à¹à¸ªà¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸ าษาà¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹
+translation-languages-column =
+ .label = ภาษา
+translation-languages-button-remove =
+ .label = à¹à¸à¸²à¸ าษาà¸à¸à¸
+ .accesskey = à¸
+translation-languages-button-remove-all =
+ .label = à¹à¸à¸²à¸ าษาà¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸
+ .accesskey = à¸
+translation-sites-disabled-desc = à¸à¸²à¸£à¹à¸à¸¥à¸à¸°à¹à¸¡à¹à¸à¸¹à¸à¸à¸³à¹à¸ªà¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹
+translation-sites-column =
+ .label = à¹à¸§à¹à¸à¹à¸à¸à¹
+translation-sites-button-remove =
+ .label = à¹à¸à¸²à¹à¸à¸à¹à¸à¸à¸
+ .accesskey = à¸
+translation-sites-button-remove-all =
+ .label = à¹à¸à¸²à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸
+ .accesskey = à¸
+translation-button-close =
+ .label = à¸à¸´à¸
+ .accesskey = à¸
diff --git a/browser/browser/safeMode.ftl b/browser/browser/safeMode.ftl
new file mode 100644
index 00000000000..c72e7d66b6f
--- /dev/null
+++ b/browser/browser/safeMode.ftl
@@ -0,0 +1,16 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+safe-mode-window =
+ .title = à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัย { -brand-short-name }
+ .style = max-width: 400px
+start-safe-mode =
+ .label = à¹à¸£à¸´à¹à¸¡à¹à¸à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัย
+refresh-profile =
+ .label = ลà¹à¸²à¸ { -brand-short-name } à¹à¸«à¸¡à¹
+safe-mode-description = à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸à¹à¸à¹à¸«à¸¡à¸à¸à¸´à¹à¸¨à¸©à¸à¸à¸ { -brand-short-name } à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¸à¸²à¸£à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²
+safe-mode-description-details = สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸¥à¸°à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸°à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§à¹à¸¥à¸°à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¹à¸²à¸ ๠à¸à¸à¸ { -brand-short-name } à¸à¸²à¸à¹à¸¡à¹à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¸·à¸à¸à¹à¸à¸à¸à¸°à¸à¸µà¹
+refresh-profile-instead = à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸²à¸¡à¸à¸²à¸£à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²à¹à¸¥à¸°à¸¥à¸à¸à¸à¸±à¹à¸à¸à¹à¸² { -brand-short-name } à¹à¸«à¸¡à¹
+# Shown on the safe mode dialog after multiple startup crashes.
+auto-safe-mode-description = { -brand-short-name } à¸à¸¹à¸à¸à¸´à¸à¹à¸à¸¢à¹à¸¡à¹à¸à¸²à¸à¸à¸´à¸à¸à¸à¸°à¹à¸£à¸´à¹à¸¡ à¸à¸¶à¹à¸à¸à¸²à¸à¸¡à¸µà¸ªà¸²à¹à¸«à¸à¸¸à¸¡à¸²à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸«à¸£à¸·à¸à¸à¸±à¸à¸«à¸²à¸à¸·à¹à¸ ๠à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¸à¸à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²à¹à¸à¸¢à¸à¸²à¸£à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²à¹à¸à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัย
diff --git a/browser/browser/safebrowsing/blockedSite.ftl b/browser/browser/safebrowsing/blockedSite.ftl
new file mode 100644
index 00000000000..9de0ea19122
--- /dev/null
+++ b/browser/browser/safebrowsing/blockedSite.ftl
@@ -0,0 +1,30 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+safeb-blocked-phishing-page-title = à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸à¸à¹à¸²à¸à¸«à¸à¹à¸²
+safeb-blocked-malware-page-title = à¸à¸²à¸£à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+safeb-blocked-unwanted-page-title = à¹à¸à¸à¹à¸à¹à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸à¸¡à¸µà¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢
+safeb-blocked-harmful-page-title = à¹à¸à¸à¹à¸à¹à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸à¸¡à¸µà¸¡à¸±à¸¥à¹à¸§à¸£à¹
+safeb-blocked-phishing-page-short-desc = { -brand-short-name } à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸à¸«à¸¥à¸à¸à¸¥à¸§à¸à¸à¸¸à¸à¹à¸«à¹à¸à¸³à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¸¢à¹à¸²à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸«à¸£à¸·à¸à¹à¸à¸´à¸à¹à¸à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¸à¸¢à¹à¸²à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¸£à¸·à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+safeb-blocked-malware-page-short-desc = { -brand-short-name } à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢à¸à¸µà¹à¸à¸²à¸à¸à¹à¸¡à¸¢à¸«à¸£à¸·à¸à¸¥à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+safeb-blocked-unwanted-page-short-desc = { -brand-short-name } à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸«à¸¥à¸à¸à¸¥à¸§à¸à¸à¸¸à¸à¹à¸«à¹à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¹à¸à¸à¸£à¸°à¸ªà¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸à¸à¸à¸¸à¸ (à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸ à¹à¸à¸¢à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸«à¸à¹à¸²à¹à¸£à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸ªà¸à¸à¹à¸à¸©à¸à¸²à¸à¸´à¹à¸¨à¸©à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡)
+safeb-blocked-harmful-page-short-desc = { -brand-short-name } à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸²à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¸µà¹à¸à¹à¸¡à¸¢à¸«à¸£à¸·à¸à¸¥à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸ (à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸ รูà¸à¸à¹à¸²à¸¢, รหัสà¸à¹à¸²à¸, à¸à¹à¸à¸à¸§à¸²à¸¡ à¹à¸¥à¸°à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸)
+safeb-palm-advisory-desc = à¸à¸³à¹à¸à¸°à¸à¸³à¹à¸à¸¢ { $advisoryname }
+safeb-palm-accept-label = ยà¹à¸à¸à¸à¸¥à¸±à¸
+safeb-palm-see-details-label = à¸à¸¹à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸
+safeb-blocked-phishing-page-error-desc-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸ หรืภà¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹
+safeb-blocked-phishing-page-error-desc-no-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸
+safeb-blocked-phishing-page-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸à¹à¸à¸µà¹ www.antiphishing.org à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸à¸ { -brand-short-name } à¹à¸à¹à¸à¸µà¹ support.mozilla.org
+safeb-blocked-malware-page-error-desc-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸ หรืภà¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹
+safeb-blocked-malware-page-error-desc-no-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸
+safeb-blocked-malware-page-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¸µà¹à¸à¸£à¸°à¸à¸à¸à¸à¹à¸§à¸¢à¹à¸§à¸£à¸±à¸ªà¹à¸¥à¸°à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸·à¹à¸ ๠à¹à¸¥à¸°à¸§à¸´à¸à¸µà¸à¸à¸à¹à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸µà¹ StopBadware.org à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸à¸ { -brand-short-name } à¹à¸à¹à¸à¸µà¹ support.mozilla.org
+safeb-blocked-unwanted-page-error-desc-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ à¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹
+safeb-blocked-unwanted-page-error-desc-no-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢
+safeb-blocked-unwanted-page-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¹à¸¥à¸°à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¹à¸à¸µà¹ à¸à¹à¸¢à¸à¸²à¸¢à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸£ à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸à¸ { -brand-short-name } à¹à¸à¹à¸à¸µà¹ support.mozilla.org
+safeb-blocked-harmful-page-error-desc-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ à¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹
+safeb-blocked-harmful-page-error-desc-no-override = { $sitename } à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢
+safeb-blocked-harmful-page-learn-more = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¹à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸à¸ { -brand-short-name } à¹à¸à¹à¸à¸µà¹ support.mozilla.org
+safeb-palm-notdeceptive =
+ .label = à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸â¦
+ .accesskey = ห
diff --git a/browser/browser/sanitize.ftl b/browser/browser/sanitize.ftl
new file mode 100644
index 00000000000..f6c0359d6ff
--- /dev/null
+++ b/browser/browser/sanitize.ftl
@@ -0,0 +1,86 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+sanitize-prefs =
+ .title = à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸²à¸£à¸¥à¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´
+ .style = width: 34em
+sanitize-prefs-style =
+ .style = width: 17em
+dialog-title =
+ .title = ลà¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸¥à¹à¸²à¸ªà¸¸à¸
+ .style = width: 34em
+# When "Time range to clear" is set to "Everything", this message is used for the
+# title instead of dialog-title.
+dialog-title-everything =
+ .title = ลà¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸±à¹à¸à¸«à¸¡à¸
+ .style = width: 34em
+clear-data-settings-label = à¹à¸¡à¸·à¹à¸à¸à¸´à¸ { -brand-short-name } à¸à¸§à¸£à¸¥à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+
+## clear-time-duration-prefix is followed by a dropdown list, with
+## values localized using clear-time-duration-value-* messages.
+## clear-time-duration-suffix is left empty in English, but can be
+## used in other languages to change the structure of the message.
+##
+## This results in English:
+## Time range to clear: (Last Hour, Today, etc.)
+
+clear-time-duration-prefix =
+ .value = à¸à¹à¸§à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸°à¸¥à¹à¸²à¸:{ " " }
+ .accesskey = à¸
+clear-time-duration-value-last-hour =
+ .label = à¸à¸±à¹à¸§à¹à¸¡à¸à¸à¸µà¹à¹à¸¥à¹à¸§
+clear-time-duration-value-last-2-hours =
+ .label = สà¸à¸à¸à¸±à¹à¸§à¹à¸¡à¸à¸à¸µà¹à¹à¸¥à¹à¸§
+clear-time-duration-value-last-4-hours =
+ .label = สีà¹à¸à¸±à¹à¸§à¹à¸¡à¸à¸à¸µà¹à¹à¸¥à¹à¸§
+clear-time-duration-value-today =
+ .label = วัà¸à¸à¸µà¹
+clear-time-duration-value-everything =
+ .label = à¸à¸±à¹à¸à¸«à¸¡à¸
+clear-time-duration-suffix =
+ .value = { "" }
+
+## These strings are used as section comments and checkboxes
+## to select the items to remove
+
+history-section-label = à¸à¸£à¸°à¸§à¸±à¸à¸´
+item-history-and-downloads =
+ .label = à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸¥à¸°à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+ .accesskey = à¸
+item-cookies =
+ .label = à¸à¸¸à¸à¸à¸µà¹
+ .accesskey = à¸
+item-active-logins =
+ .label = à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸µà¹à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹
+ .accesskey = à¸
+item-cache =
+ .label = à¹à¸à¸
+ .accesskey = à¸
+item-form-search-history =
+ .label = à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¹à¸¥à¸°à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+ .accesskey = ว
+data-section-label = à¸à¹à¸à¸¡à¸¹à¸¥
+item-site-preferences =
+ .label = à¸à¹à¸²à¸à¸³à¸«à¸à¸à¹à¸à¸à¹
+ .accesskey = ห
+item-offline-apps =
+ .label = à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸à¸à¹à¸¥à¸à¹
+ .accesskey = à¸
+sanitize-everything-undo-warning = à¸à¸²à¸£à¸à¸£à¸°à¸à¸³à¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¥à¸´à¸à¸à¸³à¹à¸à¹
+window-close =
+ .key = w
+sanitize-button-ok =
+ .label = ลà¹à¸²à¸à¸à¸à¸à¸à¸µà¹
+# The label for the default button between the user clicking it and the window
+# closing. Indicates the items are being cleared.
+sanitize-button-clearing =
+ .label = à¸à¸³à¸¥à¸±à¸à¸¥à¹à¸²à¸
+# Warning that appears when "Time range to clear" is set to "Everything" in Clear
+# Recent History dialog, provided that the user has not modified the default set
+# of history items to clear.
+sanitize-everything-warning = à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸°à¸à¸¹à¸à¸¥à¹à¸²à¸
+# Warning that appears when "Time range to clear" is set to "Everything" in Clear
+# Recent History dialog, provided that the user has modified the default set of
+# history items to clear.
+sanitize-selected-warning = รายà¸à¸²à¸£à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸°à¸à¸¹à¸à¸¥à¹à¸²à¸
diff --git a/browser/browser/syncedTabs.ftl b/browser/browser/syncedTabs.ftl
new file mode 100644
index 00000000000..30a6c7f3421
--- /dev/null
+++ b/browser/browser/syncedTabs.ftl
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+synced-tabs-sidebar-title = à¹à¸à¹à¸à¸à¸µà¹à¸à¸´à¸à¸à¹
+synced-tabs-sidebar-noclients-subtitle = à¸à¹à¸à¸à¸à¸²à¸£à¹à¸«à¹à¸à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸ ๠à¸à¸µà¹à¸à¸µà¹?
+synced-tabs-sidebar-notsignedin = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸²à¹à¸à¸·à¹à¸à¸à¸¹à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¹à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸ ๠à¸à¸à¸à¸à¸¸à¸
+synced-tabs-sidebar-unverified = à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸
+synced-tabs-sidebar-notabs = à¹à¸¡à¹à¸¡à¸µà¹à¸à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹
+synced-tabs-sidebar-openprefs = à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸ { -sync-brand-short-name }
+synced-tabs-sidebar-tabsnotsyncing = à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸´à¸à¸à¹à¹à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸¹à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸à¹à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸ ๠à¸à¸à¸à¸à¸¸à¸
+synced-tabs-sidebar-connect-another-device = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸
+synced-tabs-sidebar-search =
+ .placeholder = à¸à¹à¸à¸«à¸²à¹à¸à¹à¸à¸à¸µà¹à¸à¸´à¸à¸à¹
+synced-tabs-context-open =
+ .label = à¹à¸à¸´à¸
+ .accesskey = à¸
+synced-tabs-context-open-in-new-tab =
+ .label = à¹à¸à¸´à¸à¹à¸à¹à¸à¹à¸à¹à¸«à¸¡à¹
+ .accesskey = à¸
+synced-tabs-context-open-in-new-window =
+ .label = à¹à¸à¸´à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹
+ .accesskey = ห
+synced-tabs-context-open-in-new-private-window =
+ .label = à¹à¸à¸´à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸«à¸¡à¹
+ .accesskey = ส
+synced-tabs-context-bookmark-single-tab =
+ .label = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸à¸à¸µà¹â¦
+ .accesskey = à¸
+synced-tabs-context-copy =
+ .label = à¸à¸±à¸à¸¥à¸à¸
+ .accesskey = à¸
+synced-tabs-context-open-all-in-tabs =
+ .label = à¹à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸à¹à¸à¹à¸
+ .accesskey = à¸
+synced-tabs-context-manage-devices =
+ .label = à¸à¸±à¸à¸à¸²à¸£à¸à¸¸à¸à¸à¸£à¸à¹â¦
+ .accesskey = à¸
+fxa-sign-in = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸² { -sync-brand-short-name }
diff --git a/browser/browser/tabContextMenu.ftl b/browser/browser/tabContextMenu.ftl
new file mode 100644
index 00000000000..cadf74921e0
--- /dev/null
+++ b/browser/browser/tabContextMenu.ftl
@@ -0,0 +1,70 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+reload-tab =
+ .label = à¹à¸«à¸¥à¸à¹à¸à¹à¸à¹à¸«à¸¡à¹
+ .accesskey = ห
+select-all-tabs =
+ .label = à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+ .accesskey = ล
+duplicate-tab =
+ .label = à¸à¸³à¸ªà¸³à¹à¸à¸²à¹à¸à¹à¸
+ .accesskey = à¸
+duplicate-tabs =
+ .label = à¸à¸³à¸ªà¸³à¹à¸à¸²à¹à¸à¹à¸
+ .accesskey = à¸
+close-tabs-to-the-end =
+ .label = à¸à¸´à¸à¹à¸à¹à¸à¹à¸à¸à¸²à¸à¸à¸§à¸²
+ .accesskey = à¸
+close-other-tabs =
+ .label = à¸à¸´à¸à¹à¸à¹à¸à¸à¸·à¹à¸ à¹
+ .accesskey = à¸
+reload-tabs =
+ .label = à¹à¸«à¸¥à¸à¹à¸à¹à¸à¹à¸«à¸¡à¹
+ .accesskey = ห
+pin-tab =
+ .label = à¸à¸±à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸
+ .accesskey = à¸
+unpin-tab =
+ .label = à¸à¸à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸
+ .accesskey = à¸
+pin-selected-tabs =
+ .label = à¸à¸±à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸
+ .accesskey = à¸
+unpin-selected-tabs =
+ .label = à¸à¸à¸à¸«à¸¡à¸¸à¸à¹à¸à¹à¸
+ .accesskey = à¸
+bookmark-selected-tabs =
+ .label = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸â¦
+ .accesskey = à¸
+bookmark-tab =
+ .label = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸
+ .accesskey = à¸
+reopen-in-container =
+ .label = à¹à¸à¸´à¸à¹à¸«à¸¡à¹à¹à¸à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+ .accesskey = ย
+move-to-start =
+ .label = ยà¹à¸²à¸¢à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+ .accesskey = ย
+move-to-end =
+ .label = ยà¹à¸²à¸¢à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+ .accesskey = à¸
+move-to-new-window =
+ .label = ยà¹à¸²à¸¢à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹
+ .accesskey = ม
+undo-close-tab =
+ .label = à¹à¸¥à¸´à¸à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸
+ .accesskey = à¸
+close-tab =
+ .label = à¸à¸´à¸à¹à¸à¹à¸
+ .accesskey = à¸
+close-tabs =
+ .label = à¸à¸´à¸à¹à¸à¹à¸
+ .accesskey = à¸
+move-tabs =
+ .label = ยà¹à¸²à¸¢à¹à¸à¹à¸
+ .accesskey = à¸
+move-tab =
+ .label = ยà¹à¸²à¸¢à¹à¸à¹à¸
+ .accesskey = à¸
diff --git a/browser/browser/toolbarContextMenu.ftl b/browser/browser/toolbarContextMenu.ftl
new file mode 100644
index 00000000000..cc8db1a3757
--- /dev/null
+++ b/browser/browser/toolbarContextMenu.ftl
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+toolbar-context-menu-reload-selected-tab =
+ .label = à¹à¸«à¸¥à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸«à¸¡à¹
+ .accesskey = ห
+toolbar-context-menu-reload-selected-tabs =
+ .label = à¹à¸«à¸¥à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸«à¸¡à¹
+ .accesskey = ห
+toolbar-context-menu-bookmark-selected-tab =
+ .label = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸¥à¸·à¸à¸â¦
+ .accesskey = à¸
+toolbar-context-menu-bookmark-selected-tabs =
+ .label = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸¥à¸·à¸à¸â¦
+ .accesskey = à¸
+toolbar-context-menu-select-all-tabs =
+ .label = à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+ .accesskey = ล
+toolbar-context-menu-undo-close-tab =
+ .label = à¹à¸¥à¸´à¸à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸
+ .accesskey = à¸
diff --git a/browser/browser/touchbar/touchbar.ftl b/browser/browser/touchbar/touchbar.ftl
new file mode 100644
index 00000000000..a9567d60ad9
--- /dev/null
+++ b/browser/browser/touchbar/touchbar.ftl
@@ -0,0 +1,20 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Strings in this file are used to localize button titles displayed on the
+# MacBook Touch Bar.
+back = ยà¹à¸à¸à¸à¸¥à¸±à¸
+forward = à¹à¸à¸´à¸à¸«à¸à¹à¸²
+reload = à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹
+home = หà¸à¹à¸²à¹à¸£à¸
+fullscreen = à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸
+find = à¸à¹à¸à¸«à¸²
+new-tab = à¹à¸à¹à¸à¹à¸«à¸¡à¹
+add-bookmark = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+open-bookmarks-sidebar = à¹à¸à¸´à¸à¹à¸à¸à¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+reader-view = มุมมà¸à¸à¸à¸¹à¹à¸à¹à¸²à¸
+# Meant to match the string displayed in an empty URL bar.
+open-location = à¸à¹à¸à¸«à¸²à¸«à¸£à¸·à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+share = à¹à¸à¹à¸à¸à¸±à¸
+close-window = à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸
diff --git a/browser/chrome/browser-region/region.properties b/browser/chrome/browser-region/region.properties
new file mode 100644
index 00000000000..b97a12e8a3c
--- /dev/null
+++ b/browser/chrome/browser-region/region.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE: REVIEW_REQUIRED
+# Please do not commit any changes to this file without a review from
+# the l10n-drivers team (this includes en-US). In order to get one,
+# please file a bug, add the "productization" keyword and CC l10n@mozilla.com.
+
+# increment this number when anything gets changed in the list below. This will
+# cause Firefox to re-read these prefs and inject any new handlers into the
+# profile database. Note that "new" is defined as "has a different URL"; this
+# means that it's not possible to update the name of existing handler, so
+# don't make any spelling errors here.
+gecko.handlerService.defaultHandlersVersion=3
+
+# The default set of protocol handlers for mailto:
+gecko.handlerService.schemes.mailto.0.name=Yahoo! Mail
+gecko.handlerService.schemes.mailto.0.uriTemplate=https://compose.mail.yahoo.com/?To=%s
+
+gecko.handlerService.schemes.mailto.1.name=Gmail
+gecko.handlerService.schemes.mailto.1.uriTemplate=https://mail.google.com/mail/?extsrc=mailto&url=%s
+
diff --git a/browser/chrome/browser/aboutPrivateBrowsing.dtd b/browser/chrome/browser/aboutPrivateBrowsing.dtd
new file mode 100644
index 00000000000..599ea6ca828
--- /dev/null
+++ b/browser/chrome/browser/aboutPrivateBrowsing.dtd
@@ -0,0 +1,43 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutRobots.dtd b/browser/chrome/browser/aboutRobots.dtd
new file mode 100644
index 00000000000..9aeea2fdcac
--- /dev/null
+++ b/browser/chrome/browser/aboutRobots.dtd
@@ -0,0 +1,29 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/aboutTabCrashed.dtd b/browser/chrome/browser/aboutTabCrashed.dtd
new file mode 100644
index 00000000000..46a6113c606
--- /dev/null
+++ b/browser/chrome/browser/aboutTabCrashed.dtd
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/accounts.properties b/browser/chrome/browser/accounts.properties
new file mode 100644
index 00000000000..f6030c720ac
--- /dev/null
+++ b/browser/chrome/browser/accounts.properties
@@ -0,0 +1,108 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (reconnectDescription) - %S = Email address of user's Firefox Account
+reconnectDescription = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸ %S à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (verifyDescription) - %S = Email address of user's Firefox Account
+verifyDescription = ยืà¸à¸¢à¸±à¸ %S
+
+# These strings are shown in a desktop notification after the
+# user requests we resend a verification email.
+verificationSentTitle = สà¹à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (verificationSentBody) - %S = Email address of user's Firefox Account
+verificationSentBody = สà¹à¸à¸¥à¸´à¸à¸à¹à¸¢à¸·à¸à¸¢à¸±à¸à¹à¸à¸¢à¸±à¸ %S à¹à¸¥à¹à¸§
+verificationNotSentTitle = à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸
+verificationNotSentBody = à¹à¸£à¸²à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¸à¸«à¸¡à¸²à¸¢à¸¢à¸·à¸à¸¢à¸±à¸à¹à¸à¹à¹à¸à¸à¸à¸à¸à¸µà¹ à¹à¸à¸£à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¸ ายหลัà¸
+
+# LOCALIZATION NOTE (deviceConnectedTitle, deviceConnectedBody, deviceConnectedBody.noDeviceName)
+# These strings are used in a notification shown when a new device joins the Sync account.
+# deviceConnectedBody.noDeviceName is shown instead of deviceConnectedBody when we
+# could not get the device name that joined
+deviceConnectedTitle = Firefox Sync
+deviceConnectedBody = à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¹à¸à¸±à¸ %S
+deviceConnectedBody.noDeviceName = à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¹à¸à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (syncStartNotification.title, syncStartNotification.body)
+# These strings are used in a notification shown after Sync is connected.
+syncStartNotification.title = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ Sync à¹à¸¥à¹à¸§
+# %S is brandShortName
+syncStartNotification.body2 = %S à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸´à¸à¸à¹à¹à¸à¹à¸¡à¹à¸à¹à¸²
+
+# LOCALIZATION NOTE (deviceDisconnectedNotification.title, deviceDisconnectedNotification.body)
+# These strings are used in a notification shown after Sync was disconnected remotely.
+deviceDisconnectedNotification.title = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸ Sync à¹à¸¥à¹à¸§
+deviceDisconnectedNotification.body = à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸ Firefox Sync สำà¹à¸£à¹à¸
+
+# LOCALIZATION NOTE (sendToAllDevices.menuitem)
+# Displayed in the Send Tab/Page/Link to Device context menu when right clicking a tab, a page or a link.
+sendToAllDevices.menuitem = สà¹à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+
+# LOCALIZATION NOTE (sendTabToDevice.unconfigured, sendTabToDevice.unconfigured.status)
+# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
+# and the Sync account is unconfigured. Redirects to a marketing page.
+sendTabToDevice.unconfigured.status = à¹à¸¡à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸ Sync
+sendTabToDevice.unconfigured = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸à¹à¸à¹à¸â¦
+
+# LOCALIZATION NOTE (sendTabToDevice.signintosync)
+# Displayed in the Send Tabs context menu and the page action panel when sync is not
+# configured. Allows users to immediately sign into sync via the preferences.
+sendTabToDevice.signintosync = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸² Syncâ¦
+
+# LOCALIZATION NOTE (sendTabToDevice.singledevice, sendTabToDevice.connectdevice,
+# sendTabToDevice.singledevice.status)
+# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
+# and the Sync account has only 1 device. The sendTabToDevice.singledevice link
+# redirects to a marketing page, the sendTabToDevice.connectdevice redirects
+# to an FxAccounts page that tells to you to connect another device.
+sendTabToDevice.singledevice.status = à¹à¸¡à¹à¸¡à¸µà¸à¸¸à¸à¸à¸£à¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+sendTabToDevice.singledevice = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸à¹à¸à¹à¸â¦
+sendTabToDevice.connectdevice = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸â¦
+
+# LOCALIZATION NOTE (sendTabToDevice.verify, sendTabToDevice.verify.status)
+# Displayed in the Send Tabs context menu when right clicking a tab, a page or a link
+# and the Sync account is unverified. Redirects to the Sync preferences page.
+sendTabToDevice.verify.status = à¸à¸±à¸à¸à¸µà¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸
+sendTabToDevice.verify = ยืà¸à¸¢à¸±à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸â¦
+
+# LOCALIZATION NOTE (tabArrivingNotification.title, tabArrivingNotificationWithDevice.title,
+# multipleTabsArrivingNotification.title, unnamedTabsArrivingNotification2.body,
+# unnamedTabsArrivingNotificationMultiple2.body, unnamedTabsArrivingNotificationNoDevice.body,
+# singleTabArrivingWithTruncatedURL.body)
+# These strings are used in a notification shown when we're opening tab(s) another device sent us to display.
+
+# LOCALIZATION NOTE (tabArrivingNotification.title, tabArrivingNotificationWithDevice.title)
+# The body for these is the URL of the tab received
+tabArrivingNotification.title = à¹à¸à¹à¸£à¸±à¸à¹à¸à¹à¸
+# LOCALIZATION NOTE (tabArrivingNotificationWithDevice.title) %S is the device name
+tabArrivingNotificationWithDevice.title = à¹à¸à¹à¸à¸à¸²à¸ %S
+
+multipleTabsArrivingNotification.title = à¹à¸à¹à¸£à¸±à¸à¹à¸à¹à¸
+# LOCALIZATION NOTE (unnamedTabsArrivingNotification2.body):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs received and #2 is the device name.
+unnamedTabsArrivingNotification2.body = มี #1 à¹à¸à¹à¸à¹à¸à¹à¸²à¸¡à¸²à¸à¸²à¸ #2
+# LOCALIZATION NOTE (unnamedTabsArrivingNotificationMultiple2.body):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs received.
+unnamedTabsArrivingNotificationMultiple2.body = มี #1 à¹à¸à¹à¸à¹à¸à¹à¸²à¸¡à¸²à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸
+
+# LOCALIZATION NOTE (unnamedTabsArrivingNotificationNoDevice.body):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs received
+# This version is used when we don't know any device names.
+unnamedTabsArrivingNotificationNoDevice.body = มี #1 à¹à¸à¹à¸à¹à¸à¹à¸²à¸¡à¸²
+
+# LOCALIZATION NOTE (singleTabArrivingWithTruncatedURL.body):
+# Used when a tab from a remote device arrives but the URL must be truncated.
+# Should display the URL with an indication that it's benen truncated.
+# %S is the portion of the URL that remains after truncation.
+singleTabArrivingWithTruncatedURL.body = %Sâ¦
+
+# LOCALIZATION NOTE (account.title):
+# Used as a default header for the FxA toolbar menu.
+account.title = à¸à¸±à¸à¸à¸µ
diff --git a/browser/chrome/browser/activity-stream/newtab.properties b/browser/chrome/browser/activity-stream/newtab.properties
new file mode 100644
index 00000000000..e50f926700d
--- /dev/null
+++ b/browser/chrome/browser/activity-stream/newtab.properties
@@ -0,0 +1,216 @@
+newtab_page_title=à¹à¸à¹à¸à¹à¸«à¸¡à¹
+
+header_top_sites=à¹à¸à¸à¹à¹à¸à¹à¸
+header_highlights=รายà¸à¸²à¸£à¹à¸à¹à¸
+# LOCALIZATION NOTE(header_recommended_by): This is followed by the name
+# of the corresponding content provider.
+header_recommended_by=à¹à¸à¸°à¸à¸³à¹à¸à¸¢ {provider}
+
+# LOCALIZATION NOTE(context_menu_button_sr): This is for screen readers when
+# the context menu button is focused/active. Title is the label or hostname of
+# the site.
+context_menu_button_sr=à¹à¸à¸´à¸à¹à¸¡à¸à¸¹à¸à¸£à¸´à¸à¸à¸ªà¸³à¸«à¸£à¸±à¸ {title}
+
+# LOCALIZATION NOTE(section_context_menu_button_sr): This is for screen readers when
+# the section edit context menu button is focused/active.
+section_context_menu_button_sr=à¹à¸à¸´à¸à¹à¸¡à¸à¸¹à¸à¸£à¸´à¸à¸à¸à¸à¸à¸ªà¹à¸§à¸
+
+# LOCALIZATION NOTE (type_label_*): These labels are associated to pages to give
+# context on how the element is related to the user, e.g. type indicates that
+# the page is bookmarked, or is currently open on another device
+type_label_visited=à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸¥à¹à¸§
+type_label_bookmarked=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸¥à¹à¸§
+type_label_recommended=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸¢à¸¡
+type_label_pocket=à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¢à¸±à¸ Pocket à¹à¸¥à¹à¸§
+type_label_downloaded=à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (menu_action_*): These strings are displayed in a context
+# menu and are meant as a call to action for a given page.
+# LOCALIZATION NOTE (menu_action_bookmark): Bookmark is a verb, as in "Add to
+# bookmarks"
+menu_action_bookmark=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+menu_action_remove_bookmark=à¹à¸à¸²à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸à¸
+menu_action_open_new_window=à¹à¸à¸´à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹
+menu_action_open_private_window=à¹à¸à¸´à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸«à¸¡à¹
+menu_action_dismiss=ยà¸à¹à¸¥à¸´à¸
+menu_action_delete=ลà¸à¸à¸à¸à¸à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´
+menu_action_pin=à¸à¸±à¸à¸«à¸¡à¸¸à¸
+menu_action_unpin=à¸à¸à¸à¸«à¸¡à¸¸à¸
+confirm_history_delete_p1=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¸à¸¸à¸à¸à¸´à¸à¸ªà¹à¸à¸à¸à¹à¸à¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸à¸à¸à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸à¸à¸à¸¸à¸?
+# LOCALIZATION NOTE (confirm_history_delete_notice_p2): this string is displayed in
+# the same dialog as confirm_history_delete_p1. "This action" refers to deleting a
+# page from history.
+confirm_history_delete_notice_p2=à¸à¸²à¸£à¸à¸£à¸°à¸à¸³à¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¥à¸´à¸à¸à¸³à¹à¸à¹
+menu_action_save_to_pocket=à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¢à¸±à¸ Pocket
+menu_action_delete_pocket=ลà¸à¸à¸²à¸ Pocket
+menu_action_archive_pocket=à¹à¸à¹à¸à¸à¸²à¸§à¸£à¹à¸ Pocket
+
+# LOCALIZATION NOTE (menu_action_show_file_*): These are platform specific strings
+# found in the context menu of an item that has been downloaded. The intention behind
+# "this action" is that it will show where the downloaded file exists on the file system
+# for each operating system.
+menu_action_show_file_mac_os=à¹à¸ªà¸à¸à¹à¸ Finder
+menu_action_show_file_windows=à¹à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸£à¸£à¸à¸¸
+menu_action_show_file_linux=à¹à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸£à¸£à¸à¸¸
+menu_action_show_file_default=à¹à¸ªà¸à¸à¹à¸à¸¥à¹
+menu_action_open_file=à¹à¸à¸´à¸à¹à¸à¸¥à¹
+
+# LOCALIZATION NOTE (menu_action_copy_download_link, menu_action_go_to_download_page):
+# "Download" here, in both cases, is not a verb, it is a noun. As in, "Copy the
+# link that belongs to this downloaded item"
+menu_action_copy_download_link=à¸à¸±à¸à¸¥à¸à¸à¸¥à¸´à¸à¸à¹à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+menu_action_go_to_download_page=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+menu_action_remove_download=à¹à¸à¸²à¸à¸à¸à¸à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´
+
+# LOCALIZATION NOTE (search_button): This is screenreader only text for the
+# search button.
+search_button=à¸à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (search_header): Displayed at the top of the panel
+# showing search suggestions. {search_engine_name} is replaced with the name of
+# the current default search engine. e.g. 'Google Search'
+search_header=à¸à¹à¸à¸«à¸² {search_engine_name}
+
+# LOCALIZATION NOTE (search_web_placeholder): This is shown in the searchbox when
+# the user hasn't typed anything yet.
+search_web_placeholder=à¸à¹à¸à¸«à¸²à¹à¸§à¹à¸
+
+# LOCALIZATION NOTE (section_disclaimer_topstories): This is shown below
+# the topstories section title to provide additional information about
+# how the stories are selected.
+section_disclaimer_topstories=à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¸à¸µà¹à¸à¹à¸²à¸ªà¸à¹à¸à¸à¸µà¹à¸ªà¸¸à¸à¸à¸à¹à¸§à¹à¸ à¹à¸¥à¸·à¸à¸à¸à¸²à¸¡à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸²à¸ à¸à¸²à¸ Pocket à¸à¸¶à¹à¸à¸à¸à¸°à¸à¸µà¹à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸«à¸à¸¶à¹à¸à¸à¸à¸ Mozilla
+section_disclaimer_topstories_linktext=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µà¸à¸²à¸£à¸à¸³à¸à¸²à¸
+# LOCALIZATION NOTE (section_disclaimer_topstories_buttontext): The text of
+# the button used to acknowledge, and hide this disclaimer in the future.
+section_disclaimer_topstories_buttontext=à¸à¸à¸¥à¸ à¹à¸à¹à¸²à¹à¸à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (prefs_*, settings_*): These are shown in about:preferences
+# for a "Firefox Home" section. "Firefox" should be treated as a brand and kept
+# in English, while "Home" should be localized matching the about:preferences
+# sidebar mozilla-central string for the panel that has preferences related to
+# what is shown for the homepage, new windows, and new tabs.
+prefs_home_header=à¹à¸à¸·à¹à¸à¸«à¸²à¸«à¸à¹à¸²à¹à¸£à¸ Firefox
+prefs_home_description=à¹à¸¥à¸·à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸«à¸à¹à¸²à¸à¸à¸«à¸à¹à¸²à¹à¸£à¸ Firefox à¸à¸à¸à¸à¸¸à¸
+
+prefs_content_discovery_header=Firefox Home
+
+prefs_content_discovery_description=Content Discovery à¹à¸ Firefox Home à¸à¹à¸§à¸¢à¹à¸«à¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸¸à¸à¸ าà¸à¹à¸¥à¸°à¸¡à¸µà¸à¸§à¸²à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸à¸ªà¸¹à¸à¸à¸²à¸à¸à¸±à¹à¸§à¸à¸±à¹à¸à¹à¸§à¹à¸
+prefs_content_discovery_button=à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (prefs_section_rows_option): This is a semi-colon list of
+# plural forms used in a drop down of multiple row options (1 row, 2 rows).
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+prefs_section_rows_option={num} à¹à¸à¸§
+prefs_search_header=à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸§à¹à¸
+prefs_topsites_description=à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¸¡à¸²à¸à¸à¸µà¹à¸ªà¸¸à¸
+prefs_topstories_description2=à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¸¢à¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸²à¸à¹à¸§à¹à¸à¸à¹à¸²à¸ ๠à¸à¸£à¸±à¸à¹à¸à¹à¸à¹à¸«à¹à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¹à¸à¸·à¹à¸à¸à¸¸à¸
+prefs_topstories_options_sponsored_label=à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¸à¸µà¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸
+prefs_topstories_sponsored_learn_more=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+prefs_highlights_description=à¸à¸²à¸£à¸à¸±à¸à¹à¸¥à¸·à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹à¸«à¸£à¸·à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡
+prefs_highlights_options_visited_label=หà¸à¹à¸²à¸à¸µà¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸¥à¹à¸§
+prefs_highlights_options_download_label=à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+prefs_highlights_options_pocket_label=หà¸à¹à¸²à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹à¹à¸ Pocket
+prefs_snippets_description=à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸²à¸ Mozilla à¹à¸¥à¸° Firefox
+settings_pane_button_label=à¸à¸£à¸±à¸à¹à¸à¹à¸à¸«à¸à¹à¸²à¹à¸à¹à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸¸à¸
+settings_pane_topsites_header=à¹à¸à¸à¹à¹à¸à¹à¸
+settings_pane_highlights_header=รายà¸à¸²à¸£à¹à¸à¹à¸
+settings_pane_highlights_options_bookmarks=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+# LOCALIZATION NOTE(settings_pane_snippets_header): For the "Snippets" feature
+# traditionally on about:home. Alternative translation options: "Small Note" or
+# something that expresses the idea of "a small message, shortened from
+# something else, and non-essential but also not entirely trivial and useless."
+settings_pane_snippets_header=สà¹à¸§à¸à¸¢à¹à¸à¸¢
+
+# LOCALIZATION NOTE (edit_topsites_*): This is shown in the Edit Top Sites modal
+# dialog.
+edit_topsites_button_text=à¹à¸à¹à¹à¸
+edit_topsites_edit_button=à¹à¸à¹à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+
+# LOCALIZATION NOTE (topsites_form_*): This is shown in the New/Edit Topsite modal.
+topsites_form_add_header=à¹à¸à¸à¹à¹à¸à¹à¸à¹à¸«à¸¡à¹
+topsites_form_edit_header=à¹à¸à¹à¹à¸à¹à¸à¸à¹à¹à¸à¹à¸
+topsites_form_title_label=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸
+topsites_form_title_placeholder=à¸à¹à¸à¸à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸
+topsites_form_url_label=URL
+topsites_form_image_url_label=URL ภาà¸à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸
+topsites_form_url_placeholder=à¸à¸´à¸¡à¸à¹à¸«à¸£à¸·à¸à¸§à¸²à¸ URL
+topsites_form_use_image_link=à¹à¸à¹à¸ าà¸à¸à¸µà¹à¸à¸³à¸«à¸à¸à¹à¸à¸â¦
+# LOCALIZATION NOTE (topsites_form_*_button): These are verbs/actions.
+topsites_form_preview_button=à¹à¸ªà¸à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸
+topsites_form_add_button=à¹à¸à¸´à¹à¸¡
+topsites_form_save_button=à¸à¸±à¸à¸à¸¶à¸
+topsites_form_cancel_button=ยà¸à¹à¸¥à¸´à¸
+topsites_form_url_validation=à¸à¹à¸à¸à¸à¸²à¸£ URL à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+topsites_form_image_validation=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸«à¸¥à¸à¸ าภลà¸à¸ URL à¸à¸·à¹à¸
+
+# LOCALIZATION NOTE (pocket_read_more): This is shown at the bottom of the
+# trending stories section and precedes a list of links to popular topics.
+pocket_read_more=หัวà¸à¹à¸à¸¢à¸à¸à¸à¸´à¸¢à¸¡:
+# LOCALIZATION NOTE (pocket_read_even_more): This is shown as a link at the
+# end of the list of popular topic links.
+pocket_read_even_more=à¸à¸¹à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+pocket_more_reccommendations=à¸à¸³à¹à¸à¸°à¸à¸³à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+pocket_how_it_works=วิà¸à¸µà¸à¸²à¸£à¸à¸³à¸à¸²à¸
+pocket_cta_button=รัภPocket
+pocket_cta_text=à¸à¸±à¸à¸à¸¶à¸à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¸à¸µà¹à¸à¸¸à¸à¸£à¸±à¸à¸¥à¸à¹à¸ Pocket à¹à¸¥à¸°à¹à¸à¸´à¸¡à¹à¸à¹à¸¡à¸ªà¸¡à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¹à¸§à¸¢à¸à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸à¹à¸²à¸«à¸¥à¸à¹à¸«à¸¥
+
+highlights_empty_state=à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸¥à¸°à¹à¸£à¸²à¸à¸°à¹à¸ªà¸à¸à¸à¸à¸à¸§à¸²à¸¡, วิà¸à¸µà¹à¸ à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¸·à¹à¸ ๠à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸µà¹à¸¢à¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸µà¹à¸à¸¸à¸à¹à¸à¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¸«à¸£à¸·à¸à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸¥à¹à¸²à¸ªà¸¸à¸à¸à¸µà¹à¸à¸µà¹
+# LOCALIZATION NOTE (topstories_empty_state): When there are no recommendations,
+# in the space that would have shown a few stories, this is shown instead.
+# {provider} is replaced by the name of the content provider for this section.
+topstories_empty_state=à¸à¸¸à¸à¹à¸à¹à¸à¹à¸²à¸à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¸à¸£à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸¥à¹à¸§ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸¥à¸±à¸à¸¡à¸²à¸à¸£à¸§à¸à¸à¸¹à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¹à¸à¹à¸à¸à¸²à¸ {provider} à¹à¸à¹à¸ ายหลัภà¸à¸à¹à¸à¸£à¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¹à¸à¸«à¸£à¸·à¸? à¹à¸¥à¸·à¸à¸à¸«à¸±à¸§à¸à¹à¸à¸¢à¸à¸à¸à¸´à¸¢à¸¡à¹à¸à¸·à¹à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸·à¹à¸à¸à¸£à¸²à¸§à¸à¸µà¹à¸¢à¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸²à¸à¹à¸§à¹à¸à¸à¹à¸²à¸ à¹
+
+# LOCALIZATION NOTE (manual_migration_explanation2): This message is shown to encourage users to
+# import their browser profile from another browser they might be using.
+manual_migration_explanation2=ลà¸à¸ Firefox à¸à¹à¸§à¸¢à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², à¸à¸£à¸°à¸§à¸±à¸à¸´ à¹à¸¥à¸°à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸²à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸·à¹à¸
+# LOCALIZATION NOTE (manual_migration_cancel_button): This message is shown on a button that cancels the
+# process of importing another browserâs profile into Firefox.
+manual_migration_cancel_button=à¹à¸¡à¹ à¸à¸à¸à¸à¸¸à¸
+# LOCALIZATION NOTE (manual_migration_import_button): This message is shown on a button that starts the process
+# of importing another browserâs profile profile into Firefox.
+manual_migration_import_button=à¸à¸³à¹à¸à¹à¸²à¸à¸à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (error_fallback_default_*): This message and suggested
+# action link are shown in each section of UI that fails to render
+error_fallback_default_info=à¸à¸¸à¸à¸ªà¹ มีà¸à¸²à¸à¸à¸¢à¹à¸²à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¹à¸«à¸¥à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹
+error_fallback_default_refresh_suggestion=à¹à¸£à¸µà¸¢à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+
+# LOCALIZATION NOTE (section_menu_action_*). These strings are displayed in the section
+# context menu and are meant as a call to action for the given section.
+section_menu_action_remove_section=à¹à¸à¸²à¸ªà¹à¸§à¸à¸à¸à¸
+section_menu_action_collapse_section=ยุà¸à¸ªà¹à¸§à¸
+section_menu_action_expand_section=à¸à¸¢à¸²à¸¢à¸ªà¹à¸§à¸
+section_menu_action_manage_section=à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸§à¸
+section_menu_action_manage_webext=à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢
+section_menu_action_add_topsite=à¹à¸à¸´à¹à¸¡à¹à¸à¸à¹à¹à¸à¹à¸
+section_menu_action_add_search_engine=à¹à¸à¸´à¹à¸¡à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²
+section_menu_action_move_up=ยà¹à¸²à¸¢à¸à¸¶à¹à¸
+section_menu_action_move_down=ยà¹à¸²à¸¢à¸¥à¸
+section_menu_action_privacy_notice=à¸à¸£à¸°à¸à¸²à¸¨à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+
+# LOCALIZATION NOTE (firstrun_*). These strings are displayed only once, on the
+# firstrun of the browser, they give an introduction to Firefox and Sync.
+firstrun_title=à¸à¸³ Firefox à¹à¸à¸à¸±à¸à¸à¸¸à¸
+firstrun_content=รัà¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², à¸à¸£à¸°à¸§à¸±à¸à¸´, รหัสà¸à¹à¸²à¸ à¹à¸¥à¸°à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸·à¹à¸ ๠à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸à¸¸à¸
+firstrun_learn_more_link=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸±à¸à¸à¸µ Firefox
+
+# LOCALIZATION NOTE (firstrun_form_header and firstrun_form_sub_header):
+# firstrun_form_sub_header is a continuation of firstrun_form_header, they are one sentence.
+# firstrun_form_header is displayed more boldly as the call to action.
+firstrun_form_header=à¸à¹à¸à¸à¸à¸µà¹à¸¡à¸¥à¸à¸à¸à¸à¸¸à¸
+firstrun_form_sub_header=à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¸¢à¸±à¸ Firefox Sync
+
+firstrun_email_input_placeholder=à¸à¸µà¹à¸¡à¸¥
+firstrun_invalid_input=à¸à¹à¸à¸à¸à¸²à¸£à¸à¸µà¹à¸¡à¸¥à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+
+# LOCALIZATION NOTE (firstrun_extra_legal_links): {terms} is equal to firstrun_terms_of_service, and
+# {privacy} is equal to firstrun_privacy_notice. {terms} and {privacy} are clickable links.
+firstrun_extra_legal_links=à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸ à¸à¸¸à¸à¸¢à¸à¸¡à¸£à¸±à¸ {terms} à¹à¸¥à¸° {privacy}
+firstrun_terms_of_service=à¹à¸à¸·à¹à¸à¸à¹à¸à¸à¸²à¸£à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£
+firstrun_privacy_notice=à¸à¸£à¸°à¸à¸²à¸¨à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+
+firstrun_continue_to_login=à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+firstrun_skip_login=à¸à¹à¸²à¸¡à¸à¸±à¹à¸à¸à¸à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (context_menu_title): Action tooltip to open a context menu
+context_menu_title=à¹à¸à¸´à¸à¹à¸¡à¸à¸¹
diff --git a/browser/chrome/browser/app-extension-fields.properties b/browser/chrome/browser/app-extension-fields.properties
new file mode 100644
index 00000000000..520225d2128
--- /dev/null
+++ b/browser/chrome/browser/app-extension-fields.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (extension.firefox-compact-light@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.firefox-compact-light@mozilla.org.name=สวà¹à¸²à¸
+extension.firefox-compact-light@mozilla.org.description=à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸¡à¸µà¹à¸à¸à¹à¸à¸à¸à¸¸à¸à¸ªà¸µà¸ªà¸§à¹à¸²à¸
+
+# LOCALIZATION NOTE (extension.firefox-compact-dark@mozilla.org.name): This is displayed in about:addons -> Appearance
+extension.firefox-compact-dark@mozilla.org.name=มืà¸
+extension.firefox-compact-dark@mozilla.org.description=à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸¡à¸µà¹à¸à¸à¹à¸à¸à¸à¸¸à¸à¸ªà¸µà¸¡à¸·à¸
+
diff --git a/browser/chrome/browser/baseMenuOverlay.dtd b/browser/chrome/browser/baseMenuOverlay.dtd
new file mode 100644
index 00000000000..09a73c3c632
--- /dev/null
+++ b/browser/chrome/browser/baseMenuOverlay.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/browser.dtd b/browser/chrome/browser/browser.dtd
new file mode 100644
index 00000000000..001b4a0ca9b
--- /dev/null
+++ b/browser/chrome/browser/browser.dtd
@@ -0,0 +1,1191 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+à¸à¸¸à¸à¸à¸µà¹à¸¥à¹à¸²à¸ªà¸¸à¸">
+à¸à¸£à¸°à¸§à¸±à¸à¸´à¸¥à¹à¸²à¸ªà¸¸à¸">
+à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ à¹à¸ à¹à¸¡à¸à¸¹">
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/browser.properties b/browser/chrome/browser/browser.properties
new file mode 100644
index 00000000000..e90c2c3ed54
--- /dev/null
+++ b/browser/chrome/browser/browser.properties
@@ -0,0 +1,1117 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+nv_timeout=หมà¸à¹à¸§à¸¥à¸²à¸£à¸
+openFile=à¹à¸à¸´à¸à¹à¸à¸¥à¹
+
+droponhometitle=à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸£à¸
+droponhomemsg=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸«à¹à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹à¹à¸à¹à¸à¸«à¸à¹à¸²à¹à¸£à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+droponhomemsgMultiple=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸«à¹à¹à¸à¸à¸ªà¸²à¸£à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¹à¸à¹à¸à¸«à¸à¹à¸²à¹à¸£à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# context menu strings
+
+# LOCALIZATION NOTE (contextMenuSearch): %1$S is the search engine,
+# %2$S is the selection string.
+contextMenuSearch=à¸à¹à¸à¸«à¸² %1$S สำหรัภâ%2$Sâ
+contextMenuSearch.accesskey=à¸
+
+# bookmark dialog strings
+
+bookmarkAllTabsDefault=[à¸à¸·à¹à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹]
+
+xpinstallPromptMessage=%S à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸à¹à¸à¸µà¹à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸¥à¸à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+# LOCALIZATION NOTE (xpinstallPromptMessage.header)
+# The string contains the hostname of the site the add-on is being installed from.
+xpinstallPromptMessage.header=à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸«à¸£à¸·à¸à¹à¸¡à¹?
+xpinstallPromptMessage.message=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸²à¸ %S à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+xpinstallPromptMessage.header.unknown=à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡?
+xpinstallPromptMessage.message.unknown=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸²à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+xpinstallPromptMessage.learnMore=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸¢à¹à¸²à¸à¸à¸¥à¸à¸à¸ ัย
+xpinstallPromptMessage.dontAllow=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+xpinstallPromptMessage.dontAllow.accesskey=ม
+xpinstallPromptAllowButton=à¸à¸à¸¸à¸à¸²à¸
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See http://www.mozilla.org/access/keyboard/accesskey for details
+xpinstallPromptAllowButton.accesskey=à¸
+xpinstallPromptMessage.neverAllow=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸ªà¸¡à¸
+xpinstallPromptMessage.neverAllow.accesskey=ม
+# Accessibility Note:
+# Be sure you do not choose an accesskey that is used elsewhere in the active context (e.g. main menu bar, submenu of the warning popup button)
+# See https://website-archive.mozilla.org/www.mozilla.org/access/access/keyboard/ for details
+xpinstallPromptMessage.install=à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¹à¸à¹à¸
+xpinstallPromptMessage.install.accesskey=à¸
+
+xpinstallDisabledMessageLocked=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸¢à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸
+xpinstallDisabledMessage=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸à¸°à¸à¸µà¹ à¸à¸¥à¸´à¸ à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ à¹à¸¥à¹à¸§à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+xpinstallDisabledButton=à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸
+xpinstallDisabledButton.accesskey=à¸
+
+# LOCALIZATION NOTE (addonInstallBlockedByPolicy)
+# This message is shown when the installation of an add-on is blocked by
+# enterprise policy. %1$S is replaced by the name of the add-on.
+# %2$S is replaced by the ID of add-on. %3$S is a custom message that
+# the administration can add to the message.
+addonInstallBlockedByPolicy=%1$S (%2$S) à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸¢à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸ %3$S
+
+# LOCALIZATION NOTE (webextPerms.header)
+# This string is used as a header in the webextension permissions dialog,
+# %S is replaced with the localized name of the extension being installed.
+# See https://bug1308309.bmoattachments.org/attachment.cgi?id=8814612
+# for an example of the full dialog.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.header=à¹à¸à¸´à¹à¸¡ %S?
+
+webextPerms.unsignedWarning=à¸à¹à¸à¸à¸§à¸£à¸£à¸°à¸§à¸±à¸: สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸ สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢à¸à¸²à¸à¸à¹à¸¡à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¸à¸³à¹à¸«à¹à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸ªà¸µà¸¢à¸«à¸²à¸¢à¹à¸à¹ à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸à¹à¸à¹à¸à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸«à¸¥à¹à¸à¸à¸µà¹à¸¡à¸²à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (webextPerms.listIntro)
+# This string will be followed by a list of permissions requested
+# by the webextension.
+webextPerms.listIntro=สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸:
+webextPerms.learnMore=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸
+webextPerms.add.label=à¹à¸à¸´à¹à¸¡
+webextPerms.add.accessKey=à¸
+webextPerms.cancel.label=ยà¸à¹à¸¥à¸´à¸
+webextPerms.cancel.accessKey=ย
+
+# LOCALIZATION NOTE (webextPerms.sideloadMenuItem)
+# %1$S will be replaced with the localized name of the sideloaded add-on.
+# %2$S will be replace with the name of the application (e.g., Firefox, Nightly)
+webextPerms.sideloadMenuItem=à¹à¸à¸´à¹à¸¡ %1$S à¹à¸à¸¢à¸±à¸ %2$S à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (webextPerms.sideloadHeader)
+# This string is used as a header in the webextension permissions dialog
+# when the extension is side-loaded.
+# %S is replaced with the localized name of the extension being installed.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.sideloadHeader=à¹à¸à¸´à¹à¸¡ %S à¹à¸¥à¹à¸§
+webextPerms.sideloadText2=à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸·à¹à¸ ๠à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¸à¸£à¸°à¸à¸à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸ à¹à¸à¸£à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸³à¸à¸à¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¸à¸à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸¥à¸°à¹à¸¥à¸·à¸à¸ à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ หรืภยà¸à¹à¸¥à¸´à¸ (à¹à¸à¸·à¹à¸à¸à¸¥à¹à¸à¸¢à¹à¸«à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¹à¸)
+webextPerms.sideloadTextNoPerms=à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸·à¹à¸ ๠à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¸à¸£à¸°à¸à¸à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸ à¹à¸à¸£à¸à¹à¸¥à¸·à¸à¸ à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ หรืภยà¸à¹à¸¥à¸´à¸ (à¹à¸à¸·à¹à¸à¸à¸¥à¹à¸à¸¢à¹à¸«à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¹à¸)
+
+webextPerms.sideloadEnable.label=à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸
+webextPerms.sideloadEnable.accessKey=à¸
+webextPerms.sideloadCancel.label=ยà¸à¹à¸¥à¸´à¸
+webextPerms.sideloadCancel.accessKey=ย
+
+# LOCALIZATION NOTE (webextPerms.updateMenuItem)
+# %S will be replaced with the localized name of the extension which
+# has been updated.
+webextPerms.updateMenuItem=%S à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (webextPerms.updateText)
+# %S is replaced with the localized name of the updated extension.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.updateText=%S à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸¥à¹à¸§ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸à¸¸à¸¡à¸±à¸à¸´à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¸¡à¹à¸à¹à¸à¸à¸à¸µà¹à¸£à¸¸à¹à¸à¸à¸±à¸à¹à¸à¸à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸ à¸à¸²à¸£à¹à¸¥à¸·à¸à¸ âยà¸à¹à¸¥à¸´à¸â à¸à¸°à¸à¸à¸£à¸¸à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸à¸à¸à¸¸à¸à¹à¸§à¹
+
+webextPerms.updateAccept.label=à¸à¸±à¸à¹à¸à¸
+webextPerms.updateAccept.accessKey=à¸
+
+# LOCALIZATION NOTE (webextPerms.optionalPermsHeader)
+# %S is replace with the localized name of the extension requested new
+# permissions.
+# Note, this string will be used as raw markup. Avoid characters like <, >, &
+webextPerms.optionalPermsHeader=%S à¸à¸à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+webextPerms.optionalPermsListIntro=สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¹à¸à¸à¸à¸²à¸£:
+webextPerms.optionalPermsAllow.label=à¸à¸à¸¸à¸à¸²à¸
+webextPerms.optionalPermsAllow.accessKey=à¸
+webextPerms.optionalPermsDeny.label=à¸à¸à¸´à¹à¸ªà¸
+webextPerms.optionalPermsDeny.accessKey=à¸
+
+webextPerms.description.bookmarks=à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+webextPerms.description.browserSettings=à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+webextPerms.description.browsingData=ลà¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹, à¸à¸¸à¸à¸à¸µà¹ à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+webextPerms.description.clipboardRead=รัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¸à¸¥à¸´à¸à¸à¸à¸£à¹à¸
+webextPerms.description.clipboardWrite=à¸à¹à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸¢à¸±à¸à¸à¸¥à¸´à¸à¸à¸à¸£à¹à¸
+webextPerms.description.devtools=à¸à¸¢à¸²à¸¢à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸±à¸à¸à¸±à¸à¸à¸²à¹à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹
+webextPerms.description.dns=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸µà¹à¸à¸¢à¸¹à¹ IP à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸à¹à¸®à¸ªà¸à¹
+webextPerms.description.downloads=à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸à¸¥à¹à¹à¸¥à¸°à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+webextPerms.description.downloads.open=à¹à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸à¸¢à¸±à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+webextPerms.description.find=à¸à¹à¸²à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¸¢à¸¹à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+webextPerms.description.geolocation=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸
+webextPerms.description.history=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+webextPerms.description.management=à¹à¸à¹à¸²à¸ªà¸±à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¹à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸¥à¸°à¸à¸±à¸à¸à¸²à¸£à¸à¸¸à¸à¸à¸à¹à¸à¹à¸
+# LOCALIZATION NOTE (webextPerms.description.nativeMessaging)
+# %S will be replaced with the name of the application
+webextPerms.description.nativeMessaging=à¹à¸¥à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸±à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸·à¹à¸à¸à¸à¸à¹à¸«à¸à¸·à¸à¸à¸²à¸ %S
+webextPerms.description.notifications=à¹à¸ªà¸à¸à¸à¸¥à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¹à¸«à¹à¸à¸¸à¸
+webextPerms.description.pkcs11=à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ªà¸¥à¸±à¸
+webextPerms.description.privacy=à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+webextPerms.description.proxy=à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+webextPerms.description.sessions=à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸´à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+webextPerms.description.tabs=à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+webextPerms.description.tabHide=à¸à¹à¸à¸à¹à¸¥à¸°à¹à¸ªà¸à¸à¹à¸à¹à¸à¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+webextPerms.description.topSites=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+webextPerms.description.unlimitedStorage=à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¹à¸à¸¥à¸¹à¸à¸à¹à¸²à¸¢à¹à¸¡à¹à¸à¸³à¸à¸±à¸à¸à¸³à¸à¸§à¸
+webextPerms.description.webNavigation=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸´à¸à¸à¸£à¸£à¸¡à¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸²à¸£à¸à¸³à¸à¸²à¸
+
+webextPerms.hostDescription.allUrls=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.wildcard)
+# %S will be replaced by the DNS domain for which a webextension
+# is requesting access (e.g., mozilla.org)
+webextPerms.hostDescription.wildcard=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸à¹à¹à¸à¹à¸à¹à¸¡à¸ %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManyWildcards):
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# domains for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManyWildcards=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸ #1 à¹à¸à¹à¸¡à¸à¸à¸·à¹à¸ à¹
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.oneSite)
+# %S will be replaced by the DNS host name for which a webextension
+# is requesting access (e.g., www.mozilla.org)
+webextPerms.hostDescription.oneSite=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸ %S
+
+# LOCALIZATION NOTE (webextPerms.hostDescription.tooManySites)
+# Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 will be replaced by an integer indicating the number of additional
+# hosts for which this webextension is requesting permission.
+webextPerms.hostDescription.tooManySites=à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¹à¸ #1 à¹à¸à¸à¹à¸à¸·à¹à¸ à¹
+
+# LOCALIZATION NOTE (webext.defaultSearch.description)
+# %1$S is replaced with the localized named of the extension that is asking to change the default search engine.
+# %2$S is replaced with the name of the current search engine
+# %3$S is replaced with the name of the new search engine
+webext.defaultSearch.description=%1$S à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸ %2$S à¹à¸à¹à¸ %3$S à¸à¸à¸¥à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+webext.defaultSearchYes.label=à¹à¸à¹
+webext.defaultSearchYes.accessKey=à¸
+webext.defaultSearchNo.label=à¹à¸¡à¹
+webext.defaultSearchNo.accessKey=ม
+
+# LOCALIZATION NOTE (webext.remove.confirmation.title)
+# %S is the name of the extension which is about to be removed.
+webext.remove.confirmation.title=à¹à¸à¸² %S à¸à¸à¸
+# LOCALIZATION NOTE (webext.remove.confirmation.message)
+# %1$S is the name of the extension which is about to be removed.
+# %2$S is brandShorterName
+webext.remove.confirmation.message=à¹à¸à¸² %1$S à¸à¸à¸à¸à¸²à¸ %2$S?
+webext.remove.confirmation.button=à¹à¸à¸²à¸à¸à¸
+
+# LOCALIZATION NOTE (webext.remove.abuseReportCheckbox.message)
+# %S is vendorShortName
+webext.remove.abuseReportCheckbox.message=à¸à¸±à¸à¸à¹à¸à¸à¸à¸²à¸£à¸£à¸²à¸¢à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸µà¹à¹à¸à¸¢à¸±à¸ %S
+
+# LOCALIZATION NOTE (addonPostInstall.message1)
+# %1$S is replaced with the localized named of the extension that was
+# just installed.
+# %2$S is replaced with the localized name of the application.
+addonPostInstall.message1=à¹à¸à¸´à¹à¸¡ %1$S à¹à¸à¸¢à¸±à¸ %2$S à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (addonDownloadingAndVerifying):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Also see https://bugzilla.mozilla.org/show_bug.cgi?id=570012 for mockups
+addonDownloadingAndVerifying=à¸à¸³à¸¥à¸±à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸¥à¸°à¸¢à¸·à¸à¸¢à¸±à¸ #1 สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡â¦
+addonDownloadVerifying=à¸à¸³à¸¥à¸±à¸à¸¢à¸·à¸à¸¢à¸±à¸
+
+addonInstall.unsigned=(à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸)
+addonInstall.cancelButton.label=ยà¸à¹à¸¥à¸´à¸
+addonInstall.cancelButton.accesskey=ย
+addonInstall.acceptButton2.label=à¹à¸à¸´à¹à¸¡
+addonInstall.acceptButton2.accesskey=à¸
+
+# LOCALIZATION NOTE (addonConfirmInstallMessage,addonConfirmInstallUnsigned):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is brandShortName
+# #2 is the number of add-ons being installed
+addonConfirmInstall.message=à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ #2 สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸ #1:
+addonConfirmInstallUnsigned.message=à¸à¹à¸à¸à¸§à¸£à¸£à¸°à¸§à¸±à¸: à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ #2 สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸à¹à¸ #1 à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¸¢à¸£à¸±à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸
+
+# LOCALIZATION NOTE (addonConfirmInstallSomeUnsigned.message):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is brandShortName
+# #2 is the total number of add-ons being installed (at least 2)
+addonConfirmInstallSomeUnsigned.message=à¸à¹à¸à¸à¸§à¸£à¸£à¸°à¸§à¸±à¸: à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ #2 สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸ #1 à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸ à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¸¢à¸£à¸±à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸
+
+# LOCALIZATION NOTE (addonInstalled):
+# %S is the name of the add-on
+addonInstalled=%S à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¸³à¹à¸£à¹à¸
+# LOCALIZATION NOTE (addonsGenericInstalled):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of add-ons
+addonsGenericInstalled=#1 สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¸³à¹à¸£à¹à¸
+
+# LOCALIZATION NOTE (addonInstallError-1, addonInstallError-2, addonInstallError-3, addonInstallError-4, addonInstallError-5, addonLocalInstallError-1, addonLocalInstallError-2, addonLocalInstallError-3, addonLocalInstallError-4, addonLocalInstallError-5):
+# %1$S is the application name, %2$S is the add-on name
+addonInstallError-1=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+addonInstallError-2=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸¡à¹à¸à¸£à¸à¸à¸±à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹ %1$S à¸à¹à¸à¸à¸à¸²à¸£
+addonInstallError-3=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸²à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸¹à¹à¸«à¸¡à¸·à¸à¸à¸à¸°à¹à¸ªà¸µà¸¢à¸«à¸²à¸¢
+addonInstallError-4=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ %2$S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ %1$S à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸³à¹à¸à¹à¸
+addonInstallError-5=%1$S à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸à¹à¸à¸µà¹à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸
+addonLocalInstallError-1=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸£à¸°à¸à¸à¹à¸à¸¥à¹
+addonLocalInstallError-2=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸¡à¹à¸à¸£à¸à¸à¸±à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹ %1$S à¸à¹à¸à¸à¸à¸²à¸£
+addonLocalInstallError-3=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸¹à¹à¸«à¸¡à¸·à¸à¸à¸à¸°à¹à¸ªà¸µà¸¢à¸«à¸²à¸¢
+addonLocalInstallError-4=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ %2$S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ %1$S à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸³à¹à¸à¹à¸
+addonLocalInstallError-5=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸
+
+# LOCALIZATION NOTE (addonInstallErrorIncompatible):
+# %1$S is the application name, %2$S is the application version, %3$S is the add-on name
+addonInstallErrorIncompatible=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ %3$S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸ %1$S %2$S
+
+# LOCALIZATION NOTE (addonInstallErrorBlocklisted): %S is add-on name
+addonInstallErrorBlocklisted=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ %S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸¡à¸µà¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¸ªà¸¹à¸à¸à¸µà¹à¸à¸°à¸à¹à¸à¹à¸«à¹à¹à¸à¸´à¸à¸à¸±à¸à¸«à¸²à¸à¹à¸²à¸à¹à¸ªà¸à¸µà¸¢à¸£à¸ าà¸à¸«à¸£à¸·à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+
+unsignedAddonsDisabled.message=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¢à¸·à¸à¸¢à¸±à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¸à¸´à¸à¸à¸±à¹à¸à¸à¸³à¸à¸§à¸à¸«à¸à¸¶à¹à¸à¸«à¸£à¸·à¸à¸¡à¸²à¸à¸à¸§à¹à¸²à¹à¸¥à¸°à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸
+unsignedAddonsDisabled.learnMore.label=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+unsignedAddonsDisabled.learnMore.accesskey=ร
+
+# LOCALIZATION NOTE (lightTheme.name): This is displayed in about:addons -> Appearance
+lightTheme.name=สวà¹à¸²à¸
+lightTheme.description=à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸¡à¸µà¹à¸à¸à¹à¸à¸à¸à¸¸à¸à¸ªà¸µà¸ªà¸§à¹à¸²à¸
+
+# LOCALIZATION NOTE (darkTheme.name): This is displayed in about:addons -> Appearance
+darkTheme.name=มืà¸
+darkTheme.description=à¸à¸¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸¡à¸µà¹à¸à¸à¹à¸à¸à¸à¸¸à¸à¸ªà¸µà¸¡à¸·à¸
+
+# LOCALIZATION NOTE (lwthemeInstallRequest.message2): %S will be replaced with
+# the host name of the site.
+lwthemeInstallRequest.message2=à¹à¸à¸à¹à¸à¸µà¹ (%S) à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸à¹à¸à¹à¸
+lwthemeInstallRequest.allowButton2=à¸à¸à¸¸à¸à¸²à¸
+lwthemeInstallRequest.allowButton.accesskey2=à¸
+
+# LOCALIZATION NOTE (popupWarning.message): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is brandShortName and #2 is the number of pop-ups blocked.
+popupWarning.message=#1 à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¸´à¸ #2 หà¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸
+# LOCALIZATION NOTE (popupWarning.exceeded.message): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is left empty for English, since the number of blocked pop-ups is always greater than 1.
+# #1 is brandShortName and #2 is the number of pop-ups blocked.
+popupWarning.exceeded.message=#1 à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸¡à¸²à¸à¸à¸§à¹à¸² #2 หà¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸
+popupWarningButton=à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+popupWarningButton.accesskey=à¸
+popupWarningButtonUnix=à¸à¹à¸²à¸à¸³à¸«à¸à¸
+popupWarningButtonUnix.accesskey=à¸
+popupAllow=à¸à¸à¸¸à¸à¸²à¸à¸à¹à¸à¸à¸à¸±à¸à¸ªà¸³à¸«à¸£à¸±à¸ %S
+popupBlock=à¸à¸´à¸à¸à¸±à¹à¸à¸à¹à¸à¸à¸à¸±à¸à¸ªà¸³à¸«à¸£à¸±à¸ %S
+popupWarningDontShowFromMessage=à¹à¸¡à¹à¹à¸ªà¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸¡à¸·à¹à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+popupShowPopupPrefix=à¹à¸ªà¸à¸ â%Sâ
+
+# LOCALIZATION NOTE (popupShowBlockedPopupsIndicatorText): Semicolon separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of pop-ups blocked.
+popupShowBlockedPopupsIndicatorText=à¹à¸ªà¸à¸ #1 à¸à¹à¸à¸à¸à¸±à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸â¦
+
+# Bad Content Blocker Doorhanger Notification
+# %S is brandShortName
+badContentBlocked.blocked.message=%S à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹
+badContentBlocked.notblocked.message=%S à¹à¸¡à¹à¹à¸à¹à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸ ๠à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹
+
+crashedpluginsMessage.title=à¸à¸¥à¸±à¹à¸à¸à¸´à¸ %S à¸à¸±à¸à¸à¹à¸à¸
+crashedpluginsMessage.reloadButton.label=à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+crashedpluginsMessage.reloadButton.accesskey=ห
+crashedpluginsMessage.submitButton.label=สà¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸
+crashedpluginsMessage.submitButton.accesskey=ส
+crashedpluginsMessage.learnMore=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡â¦
+
+# Keyword fixup messages
+# LOCALIZATION NOTE (keywordURIFixup.message): Used when the user tries to visit
+# a local host page, by the time the DNS request recognizes it, we have already
+# loaded a search page for the given word. An infobar then asks to the user
+# whether he rather wanted to visit the host. %S is the recognized host.
+keywordURIFixup.message=à¸à¸¸à¸à¸«à¸¡à¸²à¸¢à¸à¸¶à¸à¸à¸°à¹à¸à¸¢à¸±à¸ %S หรืà¸à¹à¸¡à¹?
+keywordURIFixup.goTo=à¹à¸à¹ à¸à¸²à¸à¸±à¸à¹à¸à¸à¸µà¹ %S
+keywordURIFixup.goTo.accesskey=à¸
+keywordURIFixup.dismiss=à¹à¸¡à¹ à¸à¸à¸à¸à¸¸à¸
+keywordURIFixup.dismiss.accesskey=ม
+
+pluginInfo.unknownPlugin=à¹à¸¡à¹à¸à¸£à¸²à¸
+
+# Flash activation doorhanger UI
+flashActivate.message=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ Adobe Flash à¸à¸³à¸à¸²à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹? à¸à¸à¸¸à¸à¸²à¸ Adobe Flash à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+flashActivate.outdated.message=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ Adobe Flash รุà¹à¸à¹à¸à¹à¸²à¸à¸³à¸à¸²à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹? รุà¹à¸à¹à¸à¹à¸²à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¸à¹à¸à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+flashActivate.remember=à¸à¸à¸à¸³à¸à¸²à¸£à¸à¸±à¸à¸ªà¸´à¸à¹à¸à¸à¸µà¹
+flashActivate.noAllow=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+flashActivate.allow=à¸à¸à¸¸à¸à¸²à¸
+flashActivate.noAllow.accesskey=ม
+flashActivate.allow.accesskey=à¸
+
+# in-page UI
+# LOCALIZATION NOTE (PluginClickToActivate2): Two changes were done to the
+# previous version of the string. The first is that we changed the wording from
+# "Activate" to "Run", because it's shorter and feels less technical in English.
+# Feel free to keep using the previous wording in your language if it's already
+# the best one.
+# The second change is that we removed the period at the end of the phrase, because
+# it's not natural in our UI, and the underline was removed from this, so it doesn't
+# look like a link anymore. We suggest that everyone removes that period too.
+PluginClickToActivate2=à¹à¸£à¸µà¸¢à¸à¹à¸à¹ %S
+PluginVulnerableUpdatable=à¸à¸¥à¸±à¹à¸à¸à¸´à¸à¸à¸µà¹à¸¡à¸µà¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¹à¸¥à¸°à¸à¸§à¸£à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸
+PluginVulnerableNoUpdate=à¸à¸¥à¸±à¹à¸à¸à¸´à¸à¸à¸µà¹à¸¡à¸µà¸à¹à¸à¸à¹à¸«à¸§à¹à¸à¹à¸²à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+
+# Sanitize
+# LOCALIZATION NOTE (update.downloadAndInstallButton.label): %S is replaced by the
+# version of the update: "Update to 28.0".
+update.downloadAndInstallButton.label=à¸à¸±à¸à¹à¸à¸à¹à¸à¹à¸ %S
+update.downloadAndInstallButton.accesskey=à¸
+
+menuOpenAllInTabs.label=à¹à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸à¹à¸à¹à¸
+
+# History menu
+menuRestoreAllTabs.label=à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+# LOCALIZATION NOTE (menuRestoreAllTabsSubview.label): like menuRestoreAllTabs.label,
+# but used in the history subview in the panel UI, so needs to mention these are *closed* tabs.
+menuRestoreAllTabsSubview.label=à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸´à¸
+# LOCALIZATION NOTE (menuRestoreAllWindows, menuUndoCloseWindowLabel, menuUndoCloseWindowSingleTabLabel):
+# see bug 394759
+menuRestoreAllWindows.label=à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+# LOCALIZATION NOTE (menuRestoreAllWindowsSubview.label): like menuRestoreAllWindows.label,
+# but used in the history subview in the panel UI, so needs to mention these are *closed* windows.
+menuRestoreAllWindowsSubview.label=à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸µà¹à¸à¸¹à¸à¸à¸´à¸
+# LOCALIZATION NOTE (menuUndoCloseWindowLabel): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 Window Title, #2 Number of tabs
+menuUndoCloseWindowLabel=#1 (à¹à¸¥à¸° #2 à¹à¸à¹à¸à¸à¸·à¹à¸ à¹)
+menuUndoCloseWindowSingleTabLabel=#1
+
+# Unified Back-/Forward Popup
+tabHistory.current=à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹
+tabHistory.goBack=ยà¹à¸à¸à¸à¸¥à¸±à¸à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸à¸µà¹
+tabHistory.goForward=à¹à¸à¸´à¸à¸«à¸à¹à¸²à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸à¸µà¹
+
+# URL Bar
+pasteAndGo.label=วาà¸à¹à¸¥à¹à¸§à¹à¸
+# LOCALIZATION NOTE (reloadButton.tooltip):
+# %S is the keyboard shortcut for reloading the current page
+reloadButton.tooltip=à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¹à¸«à¸¡à¹ (%S)
+# LOCALIZATION NOTE (stopButton.tooltip):
+# %S is the keyboard shortcut for stopping loading the page
+stopButton.tooltip=หยุà¸à¸à¸²à¸£à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¸à¸µà¹ (%S)
+# LOCALIZATION NOTE (urlbar-zoom-button.tooltip):
+# %S is the keyboard shortcut for resetting the zoom level to 100%
+urlbar-zoom-button.tooltip=à¸à¸¥à¸±à¸à¸à¹à¸²à¹à¸à¸´à¸¡à¸à¸à¸à¸£à¸°à¸à¸±à¸à¸à¸²à¸£à¸à¸¹à¸¡ (%S)
+# LOCALIZATION NOTE (reader-mode-button.tooltip):
+# %S is the keyboard shortcut for entering/exiting reader view
+reader-mode-button.tooltip=à¹à¸à¸´à¸/à¸à¸´à¸à¸¡à¸¸à¸¡à¸¡à¸à¸à¸à¸¹à¹à¸à¹à¸²à¸ (%S)
+# LOCALIZATION NOTE (urlbar.placeholder):
+# %S is the name of the user's current search engine
+urlbar.placeholder=à¸à¹à¸à¸«à¸²à¸à¹à¸§à¸¢ %S หรืà¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+# LOCALIZATION NOTE (urlbarSearchTip.onboarding):
+# %S is the name of the user's current search engine
+urlbarSearchTip.onboarding=à¸à¸´à¸¡à¸à¹à¸à¹à¸à¸¢à¸¥à¸ à¸à¹à¸à¸«à¸²à¸¡à¸²à¸à¸à¸¶à¹à¸: à¸à¹à¸à¸«à¸² %S à¹à¸à¸¢à¸à¸£à¸à¸à¸²à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¸à¸¸à¸
+# LOCALIZATION NOTE (urlbarSearchTip.engineIsCurrentPage):
+# %S is the name of the user's current search engine
+urlbarSearchTip.engineIsCurrentPage=à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸à¸à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸¹à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°à¸à¸²à¸ %S à¹à¸¥à¸°à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¸à¸à¸à¸à¸¸à¸
+
+# LOCALIZATION NOTE(zoom-button.label): %S is the current page zoom level,
+# %% will be displayed as a single % character (% is commonly used to define
+# format specifiers, so it needs to be escaped).
+zoom-button.label = %S%%
+
+# Block autorefresh
+refreshBlocked.goButton=à¸à¸à¸¸à¸à¸²à¸
+refreshBlocked.goButton.accesskey=à¸
+refreshBlocked.refreshLabel=%S à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+refreshBlocked.redirectLabel=%S à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸ªà¹à¸à¸à¸²à¸à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸à¸·à¹à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+
+# General bookmarks button
+# LOCALIZATION NOTE (bookmarksMenuButton.tooltip):
+# %S is the keyboard shortcut for "Show All Bookmarks"
+bookmarksMenuButton.tooltip=à¹à¸ªà¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸¸à¸ (%S)
+# Star button
+starButtonOn.tooltip2=à¹à¸à¹à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹ (%S)
+starButtonOff.tooltip2=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¸«à¸à¹à¸²à¸à¸µà¹ (%S)
+
+# Downloads button tooltip
+# LOCALIZATION NOTE (downloads.tooltip):
+# %S is the keyboard shortcut for "Downloads"
+downloads.tooltip=à¹à¸ªà¸à¸à¸à¸§à¸²à¸¡à¸à¸·à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸µà¹à¸à¸³à¹à¸à¸´à¸à¸à¸¢à¸¹à¹ (%S)
+
+# Print button tooltip on OS X
+# LOCALIZATION NOTE (printButton.tooltip):
+# Use the unicode ellipsis char, \u2026,
+# or use "..." if \u2026 doesn't suit traditions in your locale.
+# %S is the keyboard shortcut for "Print"
+printButton.tooltip=à¸à¸´à¸¡à¸à¹à¸«à¸à¹à¸²à¸à¸µà¹â¦ (%S)
+
+# New Window button tooltip
+# LOCALIZATION NOTE (newWindowButton.tooltip):
+# %S is the keyboard shortcut for "New Window"
+newWindowButton.tooltip=à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹ (%S)
+
+# New Tab button tooltip
+# LOCALIZATION NOTE (newTabButton.tooltip):
+# %S is the keyboard shortcut for "New Tab"
+newTabButton.tooltip=à¹à¸à¸´à¸à¹à¸à¹à¸à¹à¸«à¸¡à¹ (%S)
+
+# Offline web applications
+offlineApps.available2=à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+offlineApps.allowStoring.label=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥
+offlineApps.allowStoring.accesskey=à¸
+offlineApps.dontAllow.label=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+offlineApps.dontAllow.accesskey=ม
+
+offlineApps.usage=à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹ (%S) à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸¡à¸²à¸à¸à¸§à¹à¸² %SMB à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸à¸²à¸à¸à¸à¸à¹à¸¥à¸à¹
+offlineApps.manageUsage=à¹à¸ªà¸à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²
+offlineApps.manageUsageAccessKey=ส
+
+# Canvas permission prompt
+# LOCALIZATION NOTE (canvas.siteprompt): %S is hostname
+canvas.siteprompt=à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸ าà¸à¸à¸·à¸à¸à¹à¸²à¹à¸ HTML5 à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹? สิà¹à¸à¸à¸µà¹à¸à¸²à¸à¸à¸¹à¸à¹à¸à¹à¹à¸à¸·à¹à¸à¸£à¸°à¸à¸¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+canvas.notAllow=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+canvas.notAllow.accesskey=ม
+canvas.allow=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+canvas.allow.accesskey=à¸
+canvas.remember=à¸à¸à¸à¸³à¸à¸²à¸£à¸à¸±à¸à¸ªà¸´à¸à¹à¸à¸à¸à¸à¸à¸±à¸à¹à¸ªà¸¡à¸
+
+# WebAuthn prompts
+# LOCALIZATION NOTE (webauthn.registerPrompt2): %S is hostname
+webauthn.registerPrompt2=%S à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸à¸à¸±à¸à¸à¸µà¸à¹à¸§à¸¢à¸à¸¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¹à¸à¸à¸à¸à¸«à¸à¸¶à¹à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¥à¸°à¸à¸à¸¸à¸¡à¸±à¸à¸´à¸à¸à¸à¸«à¸à¸¶à¹à¸à¹à¸à¹à¸à¸à¸à¸à¸µà¹ หรืà¸à¸¢à¸à¹à¸¥à¸´à¸
+# LOCALIZATION NOTE (webauthn.registerDirectPrompt2):
+# %1$S is hostname. %2$S is brandShortName.
+# The website is asking for extended information about your
+# hardware authenticator that shouldn't be generally necessary. Permitting
+# this is safe if you only use one account at this website. If you have
+# multiple accounts at this website, and you use the same hardware
+# authenticator, then the website could link those accounts together.
+# And this is true even if you use a different profile / browser (or even Tor
+# Browser). To avoid this, you should use different hardware authenticators
+# for different accounts on this website.
+webauthn.registerDirectPrompt2=%1$S à¸à¸³à¸¥à¸±à¸à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¸¸à¸ à¸à¸¶à¹à¸à¸à¸²à¸à¸¡à¸µà¸à¸¥à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸\n\n%2$S สามารà¸à¸à¹à¸§à¸¢à¸à¸´à¸à¸à¸±à¸à¸à¸±à¸§à¸à¸à¹à¸«à¹à¸à¸¸à¸à¹à¸à¹ à¹à¸à¹à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¸à¸à¸´à¹à¸ªà¸à¸à¸¸à¸à¹à¸à¸à¸µà¹ à¸à¹à¸²à¸à¸¹à¸à¸à¸à¸´à¹à¸ªà¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¹
+# LOCALIZATION NOTE (webauthn.signPrompt2): %S is hostname
+webauthn.signPrompt2=%S à¸à¹à¸à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸±à¸§à¸à¸¸à¸à¹à¸à¸¢à¹à¸à¹à¸à¸¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸à¹à¸¥à¹à¸§ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¥à¸°à¸à¸à¸¸à¸¡à¸±à¸à¸´à¸à¸à¸à¸«à¸à¸¶à¹à¸à¹à¸à¹à¸à¸à¸à¸à¸µà¹ หรืà¸à¸¢à¸à¹à¸¥à¸´à¸
+webauthn.cancel=ยà¸à¹à¸¥à¸´à¸
+webauthn.cancel.accesskey=ย
+webauthn.proceed=à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+webauthn.proceed.accesskey=à¸
+webauthn.anonymize=à¹à¸¡à¹à¸£à¸°à¸à¸¸à¸à¸±à¸§à¸à¸à¸à¹à¸à¹à¸
+
+# Spoof Accept-Language prompt
+privacy.spoof_english=à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸ าษาà¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸¤à¸©à¸à¸°à¸à¸³à¹à¸«à¹à¸£à¸°à¸à¸¸à¸à¸¸à¸à¹à¸à¹à¸¢à¸²à¸à¸à¸¶à¹à¸à¹à¸¥à¸°à¹à¸à¸´à¹à¸¡à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸£à¸¸à¹à¸à¸ าษาà¸à¸±à¸à¸à¸¤à¸©à¸à¸à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# LOCALIZATION NOTE (identity.headerWithHost):
+# %S is the hostname of the site that is being displayed.
+identity.headerWithHost=à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸ %S
+identity.identified.verifier=ยืà¸à¸¢à¸±à¸à¹à¸à¸¢: %S
+identity.identified.verified_by_you=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸´à¹à¸¡à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยสำหรัà¸à¹à¸à¸à¹à¸à¸µà¹
+identity.identified.state_and_country=%S, %S
+
+# LOCALIZATION NOTE (identity.notSecure.label):
+# Keep this string as short as possible, this is displayed in the URL bar
+# use a synonym for "safe" or "private" if "secure" is too long.
+identity.notSecure.label=à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัย
+
+identity.icon.tooltip=à¹à¸ªà¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+identity.extension.label=สà¹à¸§à¸à¸à¸¢à¸²à¸¢ (%S)
+identity.extension.tooltip=à¸à¸¹à¸à¹à¸«à¸¥à¸à¹à¸à¸¢à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢: %S
+identity.showDetails.tooltip=à¹à¸ªà¸à¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+
+contentBlocking.title=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+contentBlocking.tooltip=à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+
+contentBlocking.tooltipWin=à¹à¸à¸´à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+contentBlocking.tooltipOther=à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (contentBlocking.category.*):
+# The terminology used to refer to levels of Content Blocking is also used
+# in preferences and should be translated consistently.
+# LOCALIZATION NOTE (contentBlocking.category.standard):
+# "Standard" in this case is an adjective, meaning "default" or "normal"
+contentBlocking.category.standard=มาà¸à¸£à¸à¸²à¸
+contentBlocking.category.strict=à¹à¸à¹à¸¡à¸à¸§à¸
+contentBlocking.category.custom=à¸à¸³à¸«à¸à¸à¹à¸à¸
+
+# LOCALIZATION NOTE (contentBlocking.trackers.allowed.label):
+# This label signals that this type of content blocking is turned
+# OFF and is not blocking tracker content, so this is not
+# a positive thing. It forms the end of the (imaginary) sentence
+# "Trackers [are] Allowed"
+contentBlocking.trackers.allowed.label=à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (contentBlocking.trackers.blocking.label):
+# This label signals that this type of content blocking is turned
+# ON and is successfully blocking tracker content, so this is
+# a positive thing. However, it is important to note that there is no
+# guarantee that we _actually_ blocked anything, hence we present it
+# in the present tense, not the past tense in English. The idea is that
+# past tense would imply that something was blocked, while present
+# tense expresses that we are waiting for trackers to load
+# and will block them as appropriate. This concept may not directly
+# translate to your language, but it is still preferable if the translation
+# would not make it seem like the blocking had already happened.
+# So in full context this word could be part of the sentence:
+# "[Firefox is] Blocking [trackers when they get loaded.]"
+contentBlocking.trackers.blocking.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (contentBlocking.trackersView.blocked.label):
+# This label is shown next to a tracker in the trackers subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.trackersView.blocked.label=à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¹à¸§
+
+contentBlocking.trackersView.empty.label=à¹à¸¡à¹à¸¡à¸µà¸à¸µà¹à¸à¸£à¸§à¸à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+
+# LOCALIZATION NOTE (contentBlocking.cookies.allowed.label):
+# This label signals that this type of content blocking is turned
+# OFF and is not blocking tracker content, so this is not
+# a positive thing. It forms the end of the (imaginary) sentence
+# "Cookies [are] Allowed"
+contentBlocking.cookies.allowed.label=à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (contentBlocking.cookies.blockingTrackers.label, contentBlocking.cookies.blocking3rdParty.label,
+# contentBlocking.cookies.blockingUnvisited.label,contentBlocking.cookies.blockingAll.label):
+# See localization note for contentBlocking.trackers.blocking.label to get recommendations on translating "Blocking".
+contentBlocking.cookies.blockingTrackers.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡
+contentBlocking.cookies.blocking3rdParty.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡
+contentBlocking.cookies.blockingUnvisited.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡
+contentBlocking.cookies.blockingAll.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸
+
+contentBlocking.cookiesView.firstParty.label=à¸à¸²à¸à¹à¸à¸à¹à¸à¸µà¹
+# LOCALIZATION NOTE (contentBlocking.cookiesView.firstParty.empty.label):
+# This references the header from contentBlocking.cookiesView.firstParty.label:
+# "[Cookies] From This Site: None detected on this site".
+contentBlocking.cookiesView.firstParty.empty.label=à¹à¸¡à¹à¸¡à¸µà¸à¸µà¹à¸à¸£à¸§à¸à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+
+contentBlocking.cookiesView.trackers.label=à¸à¸¸à¸à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡
+# LOCALIZATION NOTE (contentBlocking.cookiesView.trackers.empty.label):
+# This references the header from contentBlocking.cookiesView.trackers.label:
+# "Tracking Cookies: None detected on this site".
+contentBlocking.cookiesView.trackers.empty.label=à¹à¸¡à¹à¸¡à¸µà¸à¸µà¹à¸à¸£à¸§à¸à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+
+contentBlocking.cookiesView.thirdParty.label=à¸à¸¸à¸à¸à¸µà¹à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡
+# LOCALIZATION NOTE (contentBlocking.cookiesView.thirdParty.empty.label):
+# This references the header from contentBlocking.cookiesView.thirdParty.label:
+# "Third-Party Cookies: None detected on this site".
+contentBlocking.cookiesView.thirdParty.empty.label=à¹à¸¡à¹à¸¡à¸µà¸à¸µà¹à¸à¸£à¸§à¸à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+
+# LOCALIZATION NOTE (contentBlocking.cookiesView.allowed.label):
+# This label is shown next to a cookie origin in the cookies subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Allowed"
+contentBlocking.cookiesView.allowed.label=à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (contentBlocking.cookiesView.blocked.label):
+# This label is shown next to a cookie origin in the cookies subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.cookiesView.blocked.label=à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (contentBlocking.cookiesView.removeButton.tooltip): %S is the domain of the site.
+contentBlocking.cookiesView.removeButton.tooltip=ลà¹à¸²à¸à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸à¸à¸¸à¸à¸à¸µà¹à¸ªà¸³à¸«à¸£à¸±à¸ %S
+
+# LOCALIZATION NOTE (contentBlocking.fingerprintersView.blocked.label):
+# This label is shown next to a fingerprinter in the fingerprinters subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.fingerprintersView.blocked.label=à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (contentBlocking.fingerprinters.allowed.label):
+# This label signals that this type of content blocking is turned
+# OFF and is not blocking fingerprinters, so this is not
+# a positive thing. It forms the end of the (imaginary) sentence
+# "Fingerprinters [are] Allowed"
+contentBlocking.fingerprinters.allowed.label=à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (contentBlocking.fingerprinters.blocking.label):
+# This label signals that this type of content blocking is turned
+# ON and is successfully blocking fingerprinters, so this is
+# a positive thing. However, it is important to note that there is no
+# guarantee that we _actually_ blocked anything, hence we present it
+# in the present tense, not the past tense in English. The idea is that
+# past tense would imply that something was blocked, while present
+# tense expresses that we are waiting for fingerprinters to load
+# and will block them as appropriate. This concept may not directly
+# translate to your language, but it is still preferable if the translation
+# would not make it seem like the blocking had already happened.
+# So in full context this word could be part of the sentence:
+# "[Firefox is] Blocking [fingerprinters when they get loaded.]"
+contentBlocking.fingerprinters.blocking.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (contentBlocking.cryptominersView.blocked.label):
+# This label is shown next to a cryptominer in the cryptominers subview.
+# It forms the end of the (imaginary) sentence "www.example.com [was] Blocked"
+contentBlocking.cryptominersView.blocked.label=à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (contentBlocking.cryptominers.allowed.label):
+# This label signals that this type of content blocking is turned
+# OFF and is not blocking cryptominers, so this is not
+# a positive thing. It forms the end of the (imaginary) sentence
+# "Cryptominers [are] Allowed"
+contentBlocking.cryptominers.allowed.label=à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (contentBlocking.cryptominers.blocking.label):
+# This label signals that this type of content blocking is turned
+# ON and is successfully blocking cryptominers, so this is
+# a positive thing. However, it is important to note that there is no
+# guarantee that we _actually_ blocked anything, hence we present it
+# in the present tense, not the past tense in English. The idea is that
+# past tense would imply that something was blocked, while present
+# tense expresses that we are waiting for cryptominers to load
+# and will block them as appropriate. This concept may not directly
+# translate to your language, but it is still preferable if the translation
+# would not make it seem like the blocking had already happened.
+# So in full context this word could be part of the sentence:
+# "[Firefox is] Blocking [cryptominers when they get loaded.]"
+contentBlocking.cryptominers.blocking.label=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (contentBlocking.intro.title): %S is brandShortName.
+contentBlocking.intro.title=มาà¹à¸«à¸¡à¹à¹à¸ %S: à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²
+# LOCALIZATION NOTE (contentBlocking.v1.intro.description): %S is brandShortName.
+contentBlocking.intro.v1.description=à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸«à¹à¸à¹à¸¥à¹ à¸à¸±à¹à¸à¸«à¸¡à¸²à¸¢à¸à¸§à¸²à¸¡à¸§à¹à¸² %S à¸à¸³à¸¥à¸±à¸à¸à¸¥à¹à¸à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸²à¸à¸à¸³à¹à¸«à¹à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸²à¸¥à¸à¸«à¸£à¸·à¸à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸à¸à¸²à¸à¸à¸à¸à¹à¸¥à¸à¹
+contentBlocking.intro.v2.description=à¸à¸£à¸°à¹à¸¢à¸à¸à¹à¸à¹à¸²à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸²à¸£à¸à¹à¸à¸à¸à¸±à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸²à¸¡à¹à¸à¹à¸à¸¥à¸²à¸¢à¹à¸à¹à¸à¹à¸à¸µà¸¢à¸à¹à¸à¹à¸ªà¹à¸§à¸à¸«à¸à¸¶à¸²à¸à¸à¸à¸à¸à¸²à¸£à¸à¸¥à¹à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸¥à¹à¸§ à¹à¸¡à¸´à¹à¸à¸à¸¸à¸à¹à¸«à¹à¸à¹à¸¥à¹ à¸à¸±à¹à¸à¸«à¸¡à¸²à¸¢à¸à¸§à¸²à¸¡à¸§à¹à¸²à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸´à¸à¸à¸¢à¸¹à¹
+# LOCALIZATION NOTE (trackingProtection.intro.step1of3): Indicates that the intro panel is step one of three in a tour.
+trackingProtection.intro.step1of3=1 à¸à¸²à¸ 3
+trackingProtection.intro.nextButton.label=à¸à¸±à¸à¹à¸
+
+trackingProtection.icon.activeTooltip=à¸à¸§à¸²à¸¡à¸à¸¢à¸²à¸¢à¸²à¸¡à¹à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸²à¸¡à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+trackingProtection.icon.disabledTooltip=à¸à¸£à¸§à¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¸à¸´à¸à¸à¸²à¸¡
+
+# Edit Bookmark UI
+editBookmarkPanel.newBookmarkTitle=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+editBookmarkPanel.editBookmarkTitle=à¹à¸à¹à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹
+editBookmarkPanel.cancel.label=ยà¸à¹à¸¥à¸´à¸
+editBookmarkPanel.cancel.accesskey=ย
+
+# LOCALIZATION NOTE (editBookmark.removeBookmarks.label): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Replacement for #1 is the number of bookmarks to be removed.
+# If this causes problems with localization you can also do "Remove Bookmarks (#1)"
+# instead of "Remove #1 Bookmarks".
+editBookmark.removeBookmarks.label=à¹à¸à¸² #1 à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸à¸
+editBookmark.removeBookmarks.accesskey=à¸
+
+# Post Update Notifications
+pu.notifyButton.label=รายละà¹à¸à¸µà¸¢à¸â¦
+pu.notifyButton.accesskey=ร
+# LOCALIZATION NOTE %S will be replaced by the short name of the application.
+puNotifyText=%S à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸¥à¹à¸§
+puAlertTitle=à¸à¸±à¸à¹à¸à¸ %S à¹à¸¥à¹à¸§
+puAlertText=à¸à¸¥à¸´à¸à¸à¸µà¹à¸à¸µà¹à¸ªà¸³à¸«à¸£à¸±à¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸
+
+# Application menu
+
+# LOCALIZATION NOTE(zoomReduce-button.tooltip): %S is the keyboard shortcut.
+zoomReduce-button.tooltip = à¸à¸¹à¸¡à¸à¸à¸ (%S)
+# LOCALIZATION NOTE(zoomReset-button.tooltip): %S is the keyboard shortcut.
+zoomReset-button.tooltip = à¸à¸¥à¸±à¸à¸à¹à¸²à¹à¸à¸´à¸¡à¸à¸à¸à¸£à¸°à¸à¸±à¸à¸à¸²à¸£à¸à¸¹à¸¡ (%S)
+# LOCALIZATION NOTE(zoomEnlarge-button.tooltip): %S is the keyboard shortcut.
+zoomEnlarge-button.tooltip = à¸à¸¹à¸¡à¹à¸à¹à¸² (%S)
+
+# LOCALIZATION NOTE (cut-button.tooltip): %S is the keyboard shortcut.
+cut-button.tooltip = à¸à¸±à¸ (%S)
+# LOCALIZATION NOTE (copy-button.tooltip): %S is the keyboard shortcut.
+copy-button.tooltip = à¸à¸±à¸à¸¥à¸à¸ (%S)
+# LOCALIZATION NOTE (paste-button.tooltip): %S is the keyboard shortcut.
+paste-button.tooltip = วาภ(%S)
+
+# Geolocation UI
+
+geolocation.allowLocation=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+geolocation.allowLocation.accesskey=à¸
+geolocation.dontAllowLocation=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+geolocation.dontAllowLocation.accesskey=ม
+geolocation.shareWithSite3=à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+geolocation.shareWithFile3=à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸¥à¹à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+geolocation.remember=à¸à¸à¸à¸³à¸à¸²à¸£à¸à¸±à¸à¸ªà¸´à¸à¹à¸à¸à¸µà¹
+
+# Persistent storage UI
+persistentStorage.allow=à¸à¸à¸¸à¸à¸²à¸
+persistentStorage.allow.accesskey=à¸
+persistentStorage.neverAllow.label=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸ªà¸¡à¸
+persistentStorage.neverAllow.accesskey=ม
+persistentStorage.notNow.label=à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+persistentStorage.notNow.accesskey=à¸
+persistentStorage.allowWithSite=à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸§à¸£à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+webNotifications.allow=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+webNotifications.allow.accesskey=à¸
+webNotifications.notNow=à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+webNotifications.notNow.accesskey=ม
+webNotifications.never=à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸ªà¸¡à¸
+webNotifications.never.accesskey=ส
+webNotifications.receiveFromSite2=à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S สà¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# Phishing/Malware Notification Bar.
+# LOCALIZATION NOTE (notADeceptiveSite, notAnAttack)
+# The two button strings will never be shown at the same time, so
+# it's okay for them to have the same access key
+safebrowsing.getMeOutOfHereButton.label=à¸à¸³à¸à¸±à¸à¸à¸à¸à¹à¸à¸à¸²à¸à¸à¸µà¹à¸à¸µà¹!
+safebrowsing.getMeOutOfHereButton.accessKey=à¸
+safebrowsing.deceptiveSite=à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸!
+safebrowsing.notADeceptiveSiteButton.label=à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸â¦
+safebrowsing.notADeceptiveSiteButton.accessKey=ห
+safebrowsing.reportedAttackSite=à¹à¸à¸à¹à¸£à¸¸à¸à¸£à¸²à¸à¸à¸²à¸¡à¸à¸²à¸£à¸£à¸²à¸¢à¸à¸²à¸!
+safebrowsing.notAnAttackButton.label=à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸à¸à¹à¸£à¸¸à¸à¸£à¸²à¸â¦
+safebrowsing.notAnAttackButton.accessKey=ร
+safebrowsing.reportedUnwantedSite=à¹à¸à¸à¹à¸à¸µà¹à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¹à¸¡à¹à¸à¸¶à¸à¸à¸£à¸°à¸ªà¸à¸à¹à¸à¸²à¸¡à¸à¸²à¸£à¸£à¸²à¸¢à¸à¸²à¸!
+safebrowsing.reportedHarmfulSite=à¹à¸à¸à¹à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¸²à¸¡à¸à¸²à¸£à¸£à¸²à¸¢à¸à¸²à¸!
+
+# Ctrl-Tab
+# LOCALIZATION NOTE (ctrlTab.listAllTabs.label): #1 represents the number
+# of tabs in the current browser window. It will always be 2 at least.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+ctrlTab.listAllTabs.label=à¹à¸ªà¸à¸à¸£à¸²à¸¢à¸à¸²à¸£ #1 à¹à¸à¹à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+
+# LOCALIZATION NOTE (addKeywordTitleAutoFill): %S will be replaced by the page's title
+# Used as the bookmark name when saving a keyword for a search field.
+addKeywordTitleAutoFill=à¸à¹à¸à¸«à¸² %S
+
+# safeModeRestart
+safeModeRestartPromptTitle=à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¸à¸£à¹à¸à¸¡à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+safeModeRestartPromptMessage=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸¥à¸°à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹?
+safeModeRestartButton=à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (browser.menu.showCharacterEncoding): Set to the string
+# "true" (spelled and capitalized exactly that way) to show the "Text
+# Encoding" menu in the main Firefox button on Windows. Any other value will
+# hide it. Regardless of the value of this setting, the "Text Encoding"
+# menu will always be accessible via the "Web Developer" menu.
+# This is not a string to translate; it just controls whether the menu shows
+# up in the Firefox button. If users frequently use the "Text Encoding"
+# menu, set this to "true". Otherwise, you can leave it as "false".
+browser.menu.showCharacterEncoding=false
+
+# Mozilla data reporting notification (Telemetry, Firefox Health Report, etc)
+dataReportingNotification.message = %1$S สà¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸¢à¸±à¸ %2$S à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸à¸·à¹à¸à¹à¸«à¹à¹à¸£à¸²à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¸à¸£à¸°à¸ªà¸à¸à¸²à¸£à¸à¹à¸à¸à¸à¸à¸¸à¸
+dataReportingNotification.button.label = à¹à¸¥à¸·à¸à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸±à¸à¸à¸°à¹à¸à¹à¸à¸à¸±à¸
+dataReportingNotification.button.accessKey = ล
+
+# Process hang reporter
+processHang.label = หà¸à¹à¸²à¹à¸§à¹à¸à¸à¸³à¸¥à¸±à¸à¸à¸³à¹à¸«à¹à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸²à¸¥à¸ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¸à¸°à¹à¸£?
+# LOCALIZATION NOTE (processHang.add-on.label): %1$S is the name of the
+# extension. %2$S is the name of the product (e.g., Firefox)
+processHang.add-on.label = สà¸à¸£à¸´à¸à¸à¹à¹à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢ â%1$Sâ à¸à¸³à¸¥à¸±à¸à¸à¸³à¹à¸«à¹ %2$S à¸à¹à¸²à¸¥à¸
+processHang.add-on.learn-more.text = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+processHang.button_stop.label = หยุà¸
+processHang.button_stop.accessKey = ห
+processHang.button_stop_sandbox.label = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸à¸«à¸à¹à¸²à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+processHang.button_stop_sandbox.accessKey = à¸
+processHang.button_wait.label = รà¸
+processHang.button_wait.accessKey = ร
+processHang.button_debug.label = à¸à¸µà¸à¸±à¹à¸à¸ªà¸à¸£à¸´à¸à¸à¹
+processHang.button_debug.accessKey = à¸
+
+# LOCALIZATION NOTE (fullscreenButton.tooltip): %S is the keyboard shortcut for full screen
+fullscreenButton.tooltip=à¹à¸ªà¸à¸à¸à¸¥à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸à¹à¸¡à¸«à¸à¹à¸²à¸à¸ (%S)
+
+# These are visible when opening the popup inside the bookmarks sidebar
+sidebar.moveToLeft=ยà¹à¸²à¸¢à¹à¸à¸à¸à¹à¸²à¸à¹à¸à¸à¹à¸²à¸à¸à¹à¸²à¸¢
+sidebar.moveToRight=ยà¹à¸²à¸¢à¹à¸à¸à¸à¹à¸²à¸à¹à¸à¸à¹à¸²à¸à¸à¸§à¸²
+
+# LOCALIZATION NOTE (getUserMedia.shareCamera2.message,
+# getUserMedia.shareMicrophone2.message,
+# getUserMedia.shareScreen3.message,
+# getUserMedia.shareCameraAndMicrophone2.message,
+# getUserMedia.shareCameraAndAudioCapture2.message,
+# getUserMedia.shareScreenAndMicrophone3.message,
+# getUserMedia.shareScreenAndAudioCapture3.message,
+# getUserMedia.shareAudioCapture2.message):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.shareCamera2.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareMicrophone2.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareScreen3.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸«à¹à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareCameraAndMicrophone2.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareCameraAndAudioCapture2.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸à¸±à¸à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareScreenAndMicrophone3.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¹à¸«à¹à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareScreenAndAudioCapture3.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¸à¸±à¸à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸¥à¸°à¹à¸«à¹à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+getUserMedia.shareAudioCapture2.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¸à¸±à¸à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+# LOCALIZATION NOTE (getUserMedia.shareScreenWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %S will be the 'learn more' link
+getUserMedia.shareScreenWarning.message = à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸à¸à¹à¸à¸à¸²à¸°à¸à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¹à¸²à¸à¸±à¹à¸ à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸à¸à¸²à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸²à¸¡à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸à¹à¸¡à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸ %S
+# LOCALIZATION NOTE (getUserMedia.shareFirefoxWarning.message): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+# %1$S is brandShortName (eg. Firefox)
+# %2$S will be the 'learn more' link
+getUserMedia.shareFirefoxWarning.message = à¹à¸à¹à¸à¸à¸±à¸ %1$S à¹à¸à¸à¸²à¸°à¸à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¹à¸²à¸à¸±à¹à¸ à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸à¸à¸²à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸²à¸¡à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸à¹à¸¡à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸ %2$S
+# LOCALIZATION NOTE(getUserMedia.shareScreen.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+getUserMedia.shareScreen.learnMoreLabel = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+getUserMedia.selectWindowOrScreen.label=หà¸à¹à¸²à¸à¹à¸²à¸à¸«à¸£à¸·à¸à¸«à¸à¹à¸²à¸à¸à¸à¸µà¹à¸à¸°à¹à¸à¹à¸à¸à¸±à¸:
+getUserMedia.selectWindowOrScreen.accesskey=ห
+getUserMedia.pickWindowOrScreen.label = à¹à¸¥à¸·à¸à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸«à¸£à¸·à¸à¸«à¸à¹à¸²à¸à¸
+getUserMedia.shareEntireScreen.label = à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸
+# LOCALIZATION NOTE (getUserMedia.shareMonitor.label):
+# %S is screen number (digits 1, 2, etc)
+# Example: Screen 1, Screen 2,..
+getUserMedia.shareMonitor.label = หà¸à¹à¸²à¸à¸ %S
+# LOCALIZATION NOTE (getUserMedia.shareApplicationWindowCount.label):
+# Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# Replacement for #1 is the name of the application.
+# Replacement for #2 is the number of windows currently displayed by the application.
+getUserMedia.shareApplicationWindowCount.label=#1 (#2 หà¸à¹à¸²à¸à¹à¸²à¸)
+# LOCALIZATION NOTE (getUserMedia.allow.label,
+# getUserMedia.dontAllow.label):
+# These two buttons are the possible answers to the various prompts in the
+# "getUserMedia.share{device}.message" strings.
+getUserMedia.allow.label = à¸à¸à¸¸à¸à¸²à¸
+getUserMedia.allow.accesskey = à¸
+getUserMedia.dontAllow.label = à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+getUserMedia.dontAllow.accesskey = ม
+getUserMedia.remember=à¸à¸à¸à¸³à¸à¸²à¸£à¸à¸±à¸à¸ªà¸´à¸à¹à¸à¸à¸µà¹
+# LOCALIZATION NOTE (getUserMedia.reasonForNoPermanentAllow.screen3,
+# getUserMedia.reasonForNoPermanentAllow.audio,
+# getUserMedia.reasonForNoPermanentAllow.insecure):
+# %S is brandShortName
+getUserMedia.reasonForNoPermanentAllow.screen3=%S à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸à¸à¸²à¸§à¸£à¹à¸«à¹à¸à¸±à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¹
+getUserMedia.reasonForNoPermanentAllow.audio=%S à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸à¸²à¸§à¸£à¹à¸à¸¢à¹à¸¡à¹à¸à¸²à¸¡à¸§à¹à¸²à¸à¸°à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¹à¸à¹à¸«à¸
+getUserMedia.reasonForNoPermanentAllow.insecure=à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัย à¹à¸à¸·à¹à¸à¸à¸à¸à¹à¸à¸à¸à¸¸à¸ %S à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸à¸²à¸°à¹à¸à¸§à¸²à¸£à¸°à¸à¸µà¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+getUserMedia.sharingMenu.label = à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¹à¸
+getUserMedia.sharingMenu.accesskey = à¸
+# LOCALIZATION NOTE (getUserMedia.sharingMenuCamera
+# getUserMedia.sharingMenuMicrophone,
+# getUserMedia.sharingMenuAudioCapture,
+# getUserMedia.sharingMenuApplication,
+# getUserMedia.sharingMenuScreen,
+# getUserMedia.sharingMenuWindow,
+# getUserMedia.sharingMenuBrowser,
+# getUserMedia.sharingMenuCameraMicrophone,
+# getUserMedia.sharingMenuCameraMicrophoneApplication,
+# getUserMedia.sharingMenuCameraMicrophoneScreen,
+# getUserMedia.sharingMenuCameraMicrophoneWindow,
+# getUserMedia.sharingMenuCameraMicrophoneBrowser,
+# getUserMedia.sharingMenuCameraAudioCapture,
+# getUserMedia.sharingMenuCameraAudioCaptureApplication,
+# getUserMedia.sharingMenuCameraAudioCaptureScreen,
+# getUserMedia.sharingMenuCameraAudioCaptureWindow,
+# getUserMedia.sharingMenuCameraAudioCaptureBrowser,
+# getUserMedia.sharingMenuCameraApplication,
+# getUserMedia.sharingMenuCameraScreen,
+# getUserMedia.sharingMenuCameraWindow,
+# getUserMedia.sharingMenuCameraBrowser,
+# getUserMedia.sharingMenuMicrophoneApplication,
+# getUserMedia.sharingMenuMicrophoneScreen,
+# getUserMedia.sharingMenuMicrophoneWindow,
+# getUserMedia.sharingMenuMicrophoneBrowser,
+# getUserMedia.sharingMenuAudioCaptureApplication,
+# getUserMedia.sharingMenuAudioCaptureScreen,
+# getUserMedia.sharingMenuAudioCaptureWindow,
+# getUserMedia.sharingMenuAudioCaptureBrowser):
+# %S is the website origin (e.g. www.mozilla.org)
+getUserMedia.sharingMenuCamera = %S (à¸à¸¥à¹à¸à¸)
+getUserMedia.sharingMenuMicrophone = %S (à¹à¸¡à¹à¸à¸£à¹à¸à¸)
+getUserMedia.sharingMenuAudioCapture = %S (à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸)
+getUserMedia.sharingMenuApplication = %S (à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸)
+getUserMedia.sharingMenuScreen = %S (หà¸à¹à¸²à¸à¸)
+getUserMedia.sharingMenuWindow = %S (หà¸à¹à¸²à¸à¹à¸²à¸)
+getUserMedia.sharingMenuBrowser = %S (à¹à¸à¹à¸)
+getUserMedia.sharingMenuCameraMicrophone = %S (à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¹à¸¡à¹à¸à¸£à¹à¸à¸)
+getUserMedia.sharingMenuCameraMicrophoneApplication = %S (à¸à¸¥à¹à¸à¸, à¹à¸¡à¹à¸à¸£à¹à¸à¸ à¹à¸¥à¸°à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸)
+getUserMedia.sharingMenuCameraMicrophoneScreen = %S (à¸à¸¥à¹à¸à¸, à¹à¸¡à¹à¸à¸£à¹à¸à¸ à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¸)
+getUserMedia.sharingMenuCameraMicrophoneWindow = %S (à¸à¸¥à¹à¸à¸, à¹à¸¡à¹à¸à¸£à¹à¸à¸ à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸)
+getUserMedia.sharingMenuCameraMicrophoneBrowser = %S (à¸à¸¥à¹à¸à¸, à¹à¸¡à¹à¸à¸£à¹à¸à¸ à¹à¸¥à¸°à¹à¸à¹à¸)
+getUserMedia.sharingMenuCameraAudioCapture = %S (à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸)
+getUserMedia.sharingMenuCameraAudioCaptureApplication = %S (à¸à¸¥à¹à¸à¸, à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸ à¹à¸¥à¸°à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸)
+getUserMedia.sharingMenuCameraAudioCaptureScreen = %S (à¸à¸¥à¹à¸à¸, à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸ à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¸)
+getUserMedia.sharingMenuCameraAudioCaptureWindow = %S (à¸à¸¥à¹à¸à¸, à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸ à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸)
+getUserMedia.sharingMenuCameraAudioCaptureBrowser = %S (à¸à¸¥à¹à¸à¸, à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸ à¹à¸¥à¸°à¹à¸à¹à¸)
+getUserMedia.sharingMenuCameraApplication = %S (à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸)
+getUserMedia.sharingMenuCameraScreen = %S (à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¸)
+getUserMedia.sharingMenuCameraWindow = %S (à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸)
+getUserMedia.sharingMenuCameraBrowser = %S (à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¹à¸à¹à¸)
+getUserMedia.sharingMenuMicrophoneApplication = %S (à¹à¸¡à¹à¸à¸£à¹à¸à¸à¹à¸¥à¸°à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸)
+getUserMedia.sharingMenuMicrophoneScreen = %S (à¹à¸¡à¹à¸à¸£à¹à¸à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¸)
+getUserMedia.sharingMenuMicrophoneWindow = %S (à¹à¸¡à¹à¸à¸£à¹à¸à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸)
+getUserMedia.sharingMenuMicrophoneBrowser = %S (à¹à¸¡à¹à¸à¸£à¹à¸à¸à¹à¸¥à¸°à¹à¸à¹à¸)
+getUserMedia.sharingMenuAudioCaptureApplication = %S (à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¹à¸¥à¸°à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸)
+getUserMedia.sharingMenuAudioCaptureScreen = %S (à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¸)
+getUserMedia.sharingMenuAudioCaptureWindow = %S (à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸)
+getUserMedia.sharingMenuAudioCaptureBrowser = %S (à¹à¸ªà¸µà¸¢à¸à¸à¸à¸à¹à¸à¹à¸à¹à¸¥à¸°à¹à¸à¹à¸)
+# LOCALIZATION NOTE(getUserMedia.sharingMenuUnknownHost): this is used for the website
+# origin for the sharing menu if no readable origin could be deduced from the URL.
+getUserMedia.sharingMenuUnknownHost = à¹à¸¡à¹à¸à¸£à¸²à¸à¸à¸µà¹à¸¡à¸²
+
+# LOCALIZATION NOTE(emeNotifications.drmContentPlaying.message2): %S is brandShortName.
+emeNotifications.drmContentPlaying.message2 = à¹à¸ªà¸µà¸¢à¸à¸«à¸£à¸·à¸à¸§à¸´à¸à¸µà¹à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸à¸à¹à¹à¸§à¸£à¹ DRM à¸à¸¶à¹à¸à¸à¸²à¸à¸à¸°à¸à¸³à¸à¸±à¸à¸ªà¸´à¹à¸à¸à¸µà¹ %S สามารà¸à¹à¸«à¹à¸à¸¸à¸à¸à¸³à¹à¸à¹
+emeNotifications.drmContentPlaying.button.label = à¸à¸³à¸«à¸à¸à¸à¹à¸²â¦
+emeNotifications.drmContentPlaying.button.accesskey = à¸
+
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S will be the 'learn more' link
+emeNotifications.drmContentDisabled.message = à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ DRM à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¹à¸ªà¸µà¸¢à¸à¸«à¸£à¸·à¸à¸§à¸´à¸à¸µà¹à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹ %S
+emeNotifications.drmContentDisabled.button.label = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ DRM
+emeNotifications.drmContentDisabled.button.accesskey = à¸
+# LOCALIZATION NOTE(emeNotifications.drmContentDisabled.learnMoreLabel): NB: inserted via innerHTML, so please don't use <, > or & in this string.
+emeNotifications.drmContentDisabled.learnMoreLabel = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE(emeNotifications.drmContentCDMInstalling.message): NB: inserted via innerHTML, so please don't use <, > or & in this string. %S is brandShortName
+emeNotifications.drmContentCDMInstalling.message = %S à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¸µà¹à¸à¸³à¹à¸à¹à¸à¹à¸à¸à¸²à¸£à¹à¸¥à¹à¸à¹à¸ªà¸µà¸¢à¸à¸«à¸£à¸·à¸à¸§à¸´à¸à¸µà¹à¸à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹ à¹à¸à¸£à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¸ ายหลัà¸
+
+emeNotifications.unknownDRMSoftware = à¹à¸¡à¹à¸à¸£à¸²à¸
+
+# LOCALIZATION NOTE - %S is brandShortName
+slowStartup.message = %S à¸à¸¹à¹à¸«à¸¡à¸·à¸à¸à¸§à¹à¸²à¸à¸°à¹à¸£à¸´à¹à¸¡â¦ à¹à¸à¹â¦ à¸à¹à¸²
+slowStartup.helpButton.label = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µà¹à¸à¸´à¹à¸¡à¸à¸§à¸²à¸¡à¹à¸£à¹à¸§
+slowStartup.helpButton.accesskey = ร
+slowStartup.disableNotificationButton.label = à¹à¸¡à¹à¸à¹à¸à¸à¸à¸à¸à¸à¸±à¸à¸à¸µà¸
+slowStartup.disableNotificationButton.accesskey = ม
+
+# LOCALIZATION NOTE - %S is brandShortName
+flashHang.message = %S à¹à¸à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸² Adobe Flash à¸à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸·à¹à¸à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸
+flashHang.helpButton.label = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡â¦
+flashHang.helpButton.accesskey = ร
+
+# LOCALIZATION NOTE (customizeMode.tabTitle): %S is brandShortName
+customizeMode.tabTitle = à¸à¸£à¸±à¸à¹à¸à¹à¸ %S
+
+# LOCALIZATION NOTE (e10s.accessibilityNotice.mainMessage,
+# e10s.accessibilityNotice.enableAndRestart.label,
+# e10s.accessibilityNotice.enableAndRestart.accesskey):
+# These strings are related to the messages we display to offer e10s (Multi-process) to users
+# on the pre-release channels. They won't be used in release but they will likely be used in
+# beta starting from version 41, so it's still useful to have these strings properly localized.
+# %S is brandShortName
+e10s.accessibilityNotice.mainMessage2 = à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸à¸ªà¹à¸§à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸§à¸²à¸¡à¹à¸à¹à¸²à¸à¸±à¸à¹à¸à¹à¸à¸±à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸° %S à¹à¸«à¸¡à¹
+e10s.accessibilityNotice.acceptButton.label = à¸à¸à¸¥à¸
+e10s.accessibilityNotice.acceptButton.accesskey = à¸
+e10s.accessibilityNotice.enableAndRestart.label = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ (à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹)
+e10s.accessibilityNotice.enableAndRestart.accesskey = à¸
+
+# LOCALIZATION NOTE (e10s.accessibilityNotice.jawsMessage): %S is brandShortName
+e10s.accessibilityNotice.jawsMessage = à¸à¸²à¸£à¹à¸ªà¸à¸à¸à¸¥à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¹à¸à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸«à¸§à¹à¸²à¸ %S à¹à¸¥à¸°à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸à¸à¸à¸¸à¸ à¹à¸à¸£à¸à¸à¸±à¸à¹à¸à¸à¸à¸±à¸§à¸à¹à¸²à¸à¸«à¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¸ªà¸¥à¸±à¸à¹à¸à¹à¸ Firefox Extended Support Release
+
+# LOCALIZATION NOTE (userContextPersonal.label,
+# userContextWork.label,
+# userContextShopping.label,
+# userContextBanking.label,
+# userContextNone.label):
+# These strings specify the four predefined contexts included in support of the
+# Contextual Identity / Containers project. Each context is meant to represent
+# the context that the user is in when interacting with the site. Different
+# contexts will store cookies and other information from those sites in
+# different, isolated locations. You can enable the feature by typing
+# about:config in the URL bar and changing privacy.userContext.enabled to true.
+# Once enabled, you can open a new tab in a specific context by clicking
+# File > New Container Tab > (1 of 4 contexts). Once opened, you will see these
+# strings on the right-hand side of the URL bar.
+userContextPersonal.label = สà¹à¸§à¸à¸à¸¸à¸à¸à¸¥
+userContextWork.label = à¸à¸²à¸
+userContextBanking.label = à¸à¸à¸²à¸à¸²à¸£
+userContextShopping.label = à¸à¸²à¸£à¸à¸·à¹à¸à¸à¸à¸
+userContextNone.label = à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+
+userContextPersonal.accesskey = ส
+userContextWork.accesskey = à¸
+userContextBanking.accesskey = à¸
+userContextShopping.accesskey = à¸
+userContextNone.accesskey = ม
+
+userContext.aboutPage.label = à¸à¸±à¸à¸à¸²à¸£à¸à¸²à¸£à¹à¸¢à¸à¸à¹à¸à¸¡à¸¹à¸¥
+userContext.aboutPage.accesskey = ย
+
+userContextOpenLink.label = à¹à¸à¸´à¸à¸¥à¸´à¸à¸à¹à¹à¸à¹à¸à¹à¸ %S à¹à¸«à¸¡à¹
+
+muteTab.label = à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¹à¸
+muteTab.accesskey = ส
+unmuteTab.label = à¹à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¹à¸
+unmuteTab.accesskey = ส
+playTab.label = à¹à¸¥à¹à¸à¹à¸à¹à¸
+playTab.accesskey = ล
+
+muteSelectedTabs2.label = à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¹à¸
+# LOCALIZATION NOTE (muteSelectedTabs2.accesskey): The accesskey should
+# match the accesskey for muteTab.accesskey
+muteSelectedTabs2.accesskey = ส
+unmuteSelectedTabs2.label = à¹à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¹à¸
+# LOCALIZATION NOTE (unmuteSelectedTabs2.accesskey): The accesskey should
+# match the accesskey for unmuteTab.accesskey
+unmuteSelectedTabs2.accesskey = ส
+playTabs.label = à¹à¸¥à¹à¸à¹à¸à¹à¸
+playTabs.accesskey = ล
+
+# LOCALIZATION NOTE (sendTabsToDevice.label):
+# Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs sent to the device.
+sendTabsToDevice.label = สà¹à¸ #1 à¹à¸à¹à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹
+sendTabsToDevice.accesskey = ส
+
+# LOCALIZATION NOTE (pageAction.sendTabsToDevice.label):
+# Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs sent to the device.
+pageAction.sendTabsToDevice.label = สà¹à¸ #1 à¹à¸à¹à¸à¹à¸à¸¢à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹
+
+# LOCALIZATION NOTE (certErrorDetails*.label): These are text strings that
+# appear in the about:certerror page, so that the user can copy and send them to
+# the server administrators for troubleshooting.
+certErrorDetailsHSTS.label = HTTP Strict Transport Security: %S
+certErrorDetailsKeyPinning.label = HTTP Public Key Pinning: %S
+certErrorDetailsCertChain.label = สายà¹à¸à¸£à¸±à¸à¸£à¸à¸:
+
+# LOCALIZATION NOTE (pendingCrashReports2.label): Semi-colon list of plural forms
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of pending crash reports
+pendingCrashReports2.label = à¸à¸¸à¸à¸¡à¸µ #1 รายà¸à¸²à¸à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¸µà¹à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸ªà¹à¸
+pendingCrashReports.viewAll = à¸à¸¹
+pendingCrashReports.send = สà¹à¸
+pendingCrashReports.alwaysSend = สà¹à¸à¹à¸ªà¸¡à¸
+
+decoder.noCodecs.button = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µ
+decoder.noCodecs.accesskey = ร
+decoder.noCodecs.message = à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸§à¸´à¸à¸µà¹à¸ à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸´à¸à¸à¸±à¹à¸ Media Feature Pack à¸à¸à¸ Microsoft
+decoder.noCodecsLinux.message = à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸§à¸´à¸à¸µà¹à¸ à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸±à¸§à¸à¸à¸à¸£à¸«à¸±à¸ªà¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£
+decoder.noHWAcceleration.message = à¹à¸à¸·à¹à¸à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¸à¸¸à¸à¸ าà¸à¸§à¸´à¸à¸µà¹à¸ à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸´à¸à¸à¸±à¹à¸ Media Feature Pack à¸à¸à¸ Microsoft
+decoder.noPulseAudio.message = à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¹à¸ªà¸µà¸¢à¸ à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹ PulseAudio à¸à¸µà¹à¸à¸³à¹à¸à¹à¸
+decoder.unsupportedLibavcodec.message = libavcodec à¸à¸²à¸à¸¡à¸µà¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸ à¹à¸¥à¸°à¸à¸§à¸£à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸§à¸´à¸à¸µà¹à¸
+
+decoder.decodeError.message = à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¸à¸à¸à¸£à¸«à¸±à¸ªà¸à¸£à¸±à¸à¸¢à¸²à¸à¸£à¸ªà¸·à¹à¸
+decoder.decodeError.button = รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¹à¸à¸à¹
+decoder.decodeError.accesskey = ร
+decoder.decodeWarning.message = à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸¹à¹à¸à¸·à¸à¹à¸à¹à¸à¸à¸°à¸à¸à¸à¸£à¸«à¸±à¸ªà¸à¸£à¸±à¸à¸¢à¸²à¸à¸£à¸ªà¸·à¹à¸
+
+# LOCALIZATION NOTE (captivePortal.infoMessage3):
+# Shown in a notification bar when we detect a captive portal is blocking network access
+# and requires the user to log in before browsing.
+captivePortal.infoMessage3 = à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸µà¹à¸à¹à¸à¸à¸à¸µà¹à¸à¸¸à¸à¸à¸°à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¹à¸à¹
+# LOCALIZATION NOTE (captivePortal.showLoginPage2):
+# The label for a button shown in the info bar in all tabs except the login page tab.
+# The button shows the portal login page tab when clicked.
+captivePortal.showLoginPage2 = à¹à¸à¸´à¸à¸«à¸à¹à¸²à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢
+
+permissions.remove.tooltip = ลà¹à¸²à¸à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¸²à¸¡à¸à¸µà¸à¸à¸£à¸±à¹à¸
+
+# LOCALIZATION NOTE (aboutDialog.architecture.*):
+# The sixtyFourBit and thirtyTwoBit strings describe the architecture of the
+# current Firefox build: 32-bit or 64-bit. These strings are used in parentheses
+# between the Firefox version and the "What's new" link in the About dialog,
+# e.g.: "48.0.2 (32-bit) " or "51.0a1 (2016-09-05) (64-bit)".
+aboutDialog.architecture.sixtyFourBit = 64 à¸à¸´à¸
+aboutDialog.architecture.thirtyTwoBit = 32 à¸à¸´à¸
+
+# LOCALIZATION NOTE (certImminentDistrust.message):
+# Shown in the browser console when visiting a website that is trusted today,
+# but won't be in the future unless the site operator makes a change.
+certImminentDistrust.message = à¹à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¹à¸à¹à¹à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸°à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸§à¸²à¸¡à¹à¸à¸·à¹à¸à¸à¸·à¸à¹à¸à¸£à¸¸à¹à¸à¹à¸à¸´à¸à¸à¸±à¸§à¹à¸à¸à¸à¸²à¸à¸à¸à¸µà¸à¸à¹à¸à¹à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡ à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡ https://wiki.mozilla.org/CA/Upcoming_Distrust_Actions
+
+midi.Allow.label = à¸à¸à¸¸à¸à¸²à¸
+midi.Allow.accesskey = à¸
+midi.DontAllow.label = à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸
+midi.DontAllow.accesskey = ม
+midi.remember=à¸à¸à¸à¸³à¸à¸²à¸£à¸à¸±à¸à¸ªà¸´à¸à¹à¸à¸à¸µà¹
+midi.shareWithFile.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸¥à¹à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¸à¸à¸£à¸à¹ MIDI à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+# LOCALIZATION NOTE (midi.shareWithSite.message): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareWithSite.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¸à¸à¸£à¸à¹ MIDI à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+midi.shareSysexWithFile.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¸¥à¹à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¸à¸à¸£à¸à¹ MIDI à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸ªà¹à¸/รัà¸à¸à¹à¸à¸à¸§à¸²à¸¡ SysEx หรืà¸à¹à¸¡à¹?
+# LOCALIZATION NOTE (midi.shareSysexWithSite.message): %S is the name of the site URL (https://...) requesting MIDI access
+midi.shareSysexWithSite.message = à¸à¸¸à¸à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹ %S à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¸à¸à¸£à¸à¹ MIDI à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸ªà¹à¸/รัà¸à¸à¹à¸à¸à¸§à¸²à¸¡ SysEx หรืà¸à¹à¸¡à¹?
+
+# LOCALIZATION NOTE (panel.back):
+# This is used by screen readers to label the "back" button in various browser
+#Â popup panels, including the sliding subviews of the main menu.
+panel.back = ยà¹à¸à¸à¸à¸¥à¸±à¸
+
+storageAccess.Allow.label = à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+storageAccess.Allow.accesskey = à¸
+storageAccess.AllowOnAnySite.label = à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸à¹à¹à¸ à¹
+storageAccess.AllowOnAnySite.accesskey = à¸
+storageAccess.DontAllow.label = à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+storageAccess.DontAllow.accesskey = à¸
+# LOCALIZATION NOTE (storageAccess.message):
+# %1$S is the name of the site URL (www.site1.example) trying to track the user's activity.
+# %2$S is the name of the site URL (www.site2.example) that the user is visiting. This is the same domain name displayed in the address bar.
+storageAccess.message = à¸à¸¸à¸à¸à¸°à¸¡à¸à¸à¸ªà¸´à¸à¸à¸´à¹à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸«à¹à¸à¸±à¸ %1$S à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸²à¸¡à¸à¸´à¸à¸à¸£à¸£à¸¡à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸ %2$S หรืà¸à¹à¸¡à¹?
+# LOCALIZATION NOTE (storageAccess.description.label):
+# %1$S is the name of the site URL (www.site1.example) trying to track the user's activity.
+# %2$S will be replaced with the localized version of storageAccess.description.learnmore. This text will be converted into a hyper-link linking to the SUMO page explaining the concept of third-party trackers.
+storageAccess.description.label = à¸à¸¸à¸à¸à¸²à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ %1$S à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸²à¸à¸¸à¸à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸à¸«à¸£à¸·à¸à¹à¸à¸·à¹à¸à¸à¸·à¸ à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸ %2$S
+# LOCALIZATION NOTE (storageAccess.description.learnmore):
+# The value of this string is embedded inside storageAccess.description.label. See the localization note for storageAccess.description.label.
+storageAccess.description.learnmore = à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸ªà¸²à¸¡
+
+confirmationHint.sendToDevice.label = สà¹à¸à¹à¸¥à¹à¸§!
+confirmationHint.sendToDeviceOffline.label = à¸à¸¢à¸¹à¹à¹à¸à¸à¸´à¸§ (à¸à¸à¸à¹à¸¥à¸à¹)
+confirmationHint.copyURL.label = à¸à¸±à¸à¸¥à¸à¸à¹à¸à¸¢à¸±à¸à¸à¸¥à¸´à¸à¸à¸à¸£à¹à¸à¹à¸¥à¹à¸§!
+confirmationHint.pageBookmarked.label = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¢à¸±à¸à¸«à¹à¸à¸à¸ªà¸¡à¸¸à¸à¹à¸¥à¹à¸§!
+confirmationHint.addSearchEngine.label = à¹à¸à¸´à¹à¸¡à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸¥à¹à¸§!
+confirmationHint.pinTab.label = à¸à¸±à¸à¸«à¸¡à¸¸à¸à¹à¸¥à¹à¸§!
+confirmationHint.pinTab.description = à¸à¸¥à¸´à¸à¸à¸§à¸²à¸à¸µà¹à¹à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸à¸à¸«à¸¡à¸¸à¸
+
+# LOCALIZATION NOTE (livebookmarkMigration.title):
+# Used by the export of user's live bookmarks to an OPML file as a title for the file.
+# %S will be replaced with brandShortName
+livebookmarkMigration.title = à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸ %S
diff --git a/browser/chrome/browser/customizableui/customizableWidgets.properties b/browser/chrome/browser/customizableui/customizableWidgets.properties
new file mode 100644
index 00000000000..18ea8c15cf8
--- /dev/null
+++ b/browser/chrome/browser/customizableui/customizableWidgets.properties
@@ -0,0 +1,103 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+history-panelmenu.label = à¸à¸£à¸°à¸§à¸±à¸à¸´
+# LOCALIZATION NOTE(history-panelmenu.tooltiptext2): %S is the keyboard shortcut
+history-panelmenu.tooltiptext2 = à¹à¸ªà¸à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸à¸à¸à¸¸à¸ (%S)
+
+remotetabs-panelmenu.label = à¹à¸à¹à¸à¸à¸µà¹à¸à¸´à¸à¸à¹
+remotetabs-panelmenu.tooltiptext2 = à¹à¸ªà¸à¸à¹à¸à¹à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸·à¹à¸ à¹
+
+privatebrowsing-button.label = หà¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸«à¸¡à¹
+# LOCALIZATION NOTE(privatebrowsing-button.tooltiptext): %S is the keyboard shortcut
+privatebrowsing-button.tooltiptext = à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸«à¸¡à¹ (%S)
+
+save-page-button.label = à¸à¸±à¸à¸à¸¶à¸à¸«à¸à¹à¸²
+# LOCALIZATION NOTE(save-page-button.tooltiptext3): %S is the keyboard shortcut
+save-page-button.tooltiptext3 = à¸à¸±à¸à¸à¸¶à¸à¸«à¸à¹à¸²à¸à¸µà¹ (%S)
+
+find-button.label = à¸à¹à¸à¸«à¸²
+# LOCALIZATION NOTE(find-button.tooltiptext3): %S is the keyboard shortcut.
+find-button.tooltiptext3 = à¸à¹à¸à¸«à¸²à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹ (%S)
+
+open-file-button.label = à¹à¸à¸´à¸à¹à¸à¸¥à¹
+# LOCALIZATION NOTE (open-file-button.tooltiptext3): %S is the keyboard shortcut.
+open-file-button.tooltiptext3 = à¹à¸à¸´à¸à¹à¸à¸¥à¹ (%S)
+
+developer-button.label = à¸à¸±à¸à¸à¸±à¸à¸à¸²
+# LOCALIZATION NOTE(developer-button.tooltiptext): %S is the keyboard shortcut
+developer-button.tooltiptext2 = à¹à¸à¸´à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸±à¸à¸à¸±à¸à¸à¸²à¹à¸§à¹à¸ (%S)
+
+sidebar-button.label = à¹à¸à¸à¸à¹à¸²à¸
+sidebar-button.tooltiptext2 = à¹à¸ªà¸à¸à¹à¸à¸à¸à¹à¸²à¸
+
+add-ons-button.label = สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+# LOCALIZATION NOTE(add-ons-button.tooltiptext3): %S is the keyboard shortcut
+add-ons-button.tooltiptext3 = à¸à¸±à¸à¸à¸²à¸£à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸à¸à¸à¸¸à¸ (%S)
+
+preferences-button.label = à¸à¹à¸²à¸à¸³à¸«à¸à¸
+preferences-button.tooltiptext2 = à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+preferences-button.tooltiptext.withshortcut = à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸ (%S)
+# LOCALIZATION NOTE (preferences-button.labelWin): Windows-only label for Options
+preferences-button.labelWin = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+# LOCALIZATION NOTE (preferences-button.tooltipWin): Windows-only tooltip for Options
+preferences-button.tooltipWin2 = à¹à¸à¸´à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+
+zoom-controls.label = à¸à¸¸à¹à¸¡à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¸à¸¹à¸¡
+zoom-controls.tooltiptext2 = à¸à¸¸à¹à¸¡à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¸à¸¹à¸¡
+
+zoom-out-button.label = à¸à¸¹à¸¡à¸à¸à¸
+# LOCALIZATION NOTE(zoom-out-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-out-button.tooltiptext2 = à¸à¸¹à¸¡à¸à¸à¸ (%S)
+
+# LOCALIZATION NOTE(zoom-reset-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-reset-button.tooltiptext2 = à¸à¸¥à¸±à¸à¸à¹à¸²à¹à¸à¸´à¸¡à¸à¸à¸à¸£à¸°à¸à¸±à¸à¸à¸²à¸£à¸à¸¹à¸¡ (%S)
+
+zoom-in-button.label = à¸à¸¹à¸¡à¹à¸à¹à¸²
+# LOCALIZATION NOTE(zoom-in-button.tooltiptext2): %S is the keyboard shortcut.
+zoom-in-button.tooltiptext2 = à¸à¸¹à¸¡à¹à¸à¹à¸² (%S)
+
+edit-controls.label = à¸à¸¸à¹à¸¡à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¹à¸
+edit-controls.tooltiptext2 = à¸à¸¸à¹à¸¡à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¹à¸
+
+cut-button.label = à¸à¸±à¸
+# LOCALIZATION NOTE(cut-button.tooltiptext2): %S is the keyboard shortcut.
+cut-button.tooltiptext2 = à¸à¸±à¸ (%S)
+
+copy-button.label = à¸à¸±à¸à¸¥à¸à¸
+# LOCALIZATION NOTE(copy-button.tooltiptext2): %S is the keyboard shortcut.
+copy-button.tooltiptext2 = à¸à¸±à¸à¸¥à¸à¸ (%S)
+
+paste-button.label = วาà¸
+# LOCALIZATION NOTE(paste-button.tooltiptext2): %S is the keyboard shortcut.
+paste-button.tooltiptext2 = วาภ(%S)
+
+# LOCALIZATION NOTE (characterencoding-button2.label): The \u00ad text at the beginning
+# of the string is used to disable auto hyphenation on the button text when it is displayed
+# in the menu panel.
+characterencoding-button2.label = \u00adรหัสà¸à¸±à¸à¸à¸£à¸°
+characterencoding-button2.tooltiptext = à¹à¸ªà¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸£à¸«à¸±à¸ªà¸à¸±à¸à¸à¸£à¸°
+
+email-link-button.label = สà¹à¸à¸à¸µà¹à¸¡à¸¥à¸¥à¸´à¸à¸à¹
+email-link-button.tooltiptext3 = สà¹à¸à¸à¸µà¹à¸¡à¸¥à¸¥à¸´à¸à¸à¹à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸à¸µà¹
+
+# LOCALIZATION NOTE(quit-button.tooltiptext.linux2): %1$S is the brand name (e.g. Firefox),
+# %2$S is the keyboard shortcut
+quit-button.tooltiptext.linux2 = à¸à¸à¸à¸à¸²à¸ %1$S (%2$S)
+# LOCALIZATION NOTE(quit-button.tooltiptext.mac): %1$S is the brand name (e.g. Firefox),
+# %2$S is the keyboard shortcut
+quit-button.tooltiptext.mac = à¸à¸à¸à¸à¸²à¸ %1$S (%2$S)
+
+panic-button.label = ลืม
+panic-button.tooltiptext = ลืมà¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¸à¸²à¸à¸ªà¹à¸§à¸
+
+# LOCALIZATION NOTE(devtools-webide-button.label, devtools-webide-button.tooltiptext):
+# widget is only visible after WebIDE has been started once (Tools > Web Developers > WebIDE)
+# %S is the keyboard shortcut
+devtools-webide-button2.label = WebIDE
+devtools-webide-button2.tooltiptext = à¹à¸à¸´à¸ WebIDE (%S)
+
+toolbarspring.label = à¸à¹à¸à¸à¸§à¹à¸²à¸à¹à¸à¸à¸¢à¸·à¸à¸«à¸¢à¸¸à¹à¸
+toolbarseparator.label = à¸à¸±à¸§à¹à¸à¹à¸
+toolbarspacer.label = à¸à¹à¸à¸à¸§à¹à¸²à¸
diff --git a/browser/chrome/browser/downloads/downloads.dtd b/browser/chrome/browser/downloads/downloads.dtd
new file mode 100644
index 00000000000..c63587c8d30
--- /dev/null
+++ b/browser/chrome/browser/downloads/downloads.dtd
@@ -0,0 +1,139 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/downloads/downloads.properties b/browser/chrome/browser/downloads/downloads.properties
new file mode 100644
index 00000000000..ef0732e4126
--- /dev/null
+++ b/browser/chrome/browser/downloads/downloads.properties
@@ -0,0 +1,99 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this file,
+# You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (stateStarting):
+# Indicates that the download is starting.
+stateStarting=à¸à¸³à¸¥à¸±à¸à¹à¸£à¸´à¹à¸¡â¦
+# LOCALIZATION NOTE (stateScanning):
+# Indicates that an external program is scanning the download for viruses.
+stateScanning=à¸à¸³à¸¥à¸±à¸à¸ªà¹à¸à¸à¹à¸§à¸£à¸±à¸ªâ¦
+# LOCALIZATION NOTE (stateFailed):
+# Indicates that the download failed because of an error.
+stateFailed=ลà¹à¸¡à¹à¸«à¸¥à¸§
+# LOCALIZATION NOTE (statePaused):
+# Indicates that the download was paused by the user.
+statePaused=หยุà¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§à¸à¸¢à¸¹à¹
+# LOCALIZATION NOTE (stateCanceled):
+# Indicates that the download was canceled by the user.
+stateCanceled=ยà¸à¹à¸¥à¸´à¸à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (stateCompleted):
+# Indicates that the download was completed.
+stateCompleted=à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+# LOCALIZATION NOTE (stateBlockedParentalControls):
+# Indicates that the download was blocked by the Parental Controls feature of
+# Windows. "Parental Controls" should be consistently named and capitalized
+# with the display of this feature in Windows. The following article can
+# provide a reference for the translation of "Parental Controls" in various
+# languages:
+# http://windows.microsoft.com/en-US/windows-vista/Set-up-Parental-Controls
+stateBlockedParentalControls=à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸¢à¸à¸²à¸£à¸à¸§à¸à¸à¸¸à¸¡à¹à¸à¸¢à¸à¸¹à¹à¸à¸à¸à¸£à¸à¸
+# LOCALIZATION NOTE (blockedMalware, blockedPotentiallyUnwanted,
+# blockedUncommon2):
+# These strings are shown in the panel for some types of blocked downloads. You
+# may need to adjust "downloads.width" in "downloads.dtd" if this turns out to
+# be longer than the other existing status strings.
+blockedMalware=à¹à¸à¸¥à¹à¸à¸µà¹à¸¡à¸µà¹à¸§à¸£à¸±à¸ªà¸«à¸£à¸·à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹
+blockedPotentiallyUnwanted=à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+blockedUncommon2=à¹à¸à¸¥à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸±à¸à¹à¸à¸¢à¸à¸±à¹à¸§à¹à¸
+
+# LOCALIZATION NOTE (fileMovedOrMissing):
+# Displayed when a complete download which is not at the original folder.
+fileMovedOrMissing=à¹à¸à¸¥à¹à¸à¸¹à¸à¸¢à¹à¸²à¸¢à¸«à¸£à¸·à¸à¸«à¸²à¸¢à¹à¸
+
+# LOCALIZATION NOTE (unblockHeaderUnblock, unblockHeaderOpen,
+# unblockTypeMalware, unblockTypePotentiallyUnwanted2,
+# unblockTypeUncommon2, unblockTip2, unblockButtonOpen,
+# unblockButtonUnblock, unblockButtonConfirmBlock):
+# These strings are displayed in the dialog shown when the user asks a blocked
+# download to be unblocked. The severity of the threat is expressed in
+# descending order by the unblockType strings, it is higher for files detected
+# as malware and lower for uncommon downloads.
+unblockHeaderUnblock=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸µà¹?
+unblockHeaderOpen=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸µà¹?
+unblockTypeMalware=à¹à¸à¸¥à¹à¸à¸µà¹à¸¡à¸µà¹à¸§à¸£à¸±à¸ªà¸«à¸£à¸·à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸·à¹à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¸à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+unblockTypePotentiallyUnwanted2=à¹à¸à¸¥à¹à¸à¸µà¹à¹à¸à¹à¸à¸¥à¸à¸¡à¸à¸±à¸§à¹à¸à¹à¸à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸µà¹à¸¡à¸µà¸à¸£à¸°à¹à¸¢à¸à¸à¹ à¹à¸à¹à¸¡à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¹à¸à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸²à¸à¹à¸§à¹à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸¥à¸°à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸à¸à¸à¸¸à¸
+unblockTypeUncommon2=à¹à¸à¸¥à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸±à¸à¹à¸à¸¢à¸à¸±à¹à¸§à¹à¸à¹à¸¥à¸°à¸à¸²à¸à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸à¸°à¹à¸à¸´à¸ à¹à¸à¸¥à¹à¸à¸²à¸à¸¡à¸µà¹à¸§à¸£à¸±à¸ªà¸«à¸£à¸·à¸à¸à¸³à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸²à¸à¸à¸´à¸à¸à¸±à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¹à¸¥à¸°à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸à¸à¸à¸¸à¸
+unblockTip2=à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸à¸«à¸²à¹à¸«à¸¥à¹à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸à¸·à¹à¸ หรืà¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¸ ายหลัà¸
+unblockButtonOpen=à¹à¸à¸´à¸
+unblockButtonUnblock=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+unblockButtonConfirmBlock=à¹à¸à¸²à¹à¸à¸¥à¹à¸à¸à¸
+
+# LOCALIZATION NOTE (sizeWithUnits):
+# %1$S is replaced with the size number, and %2$S with the measurement unit.
+sizeWithUnits=%1$S %2$S
+sizeUnknown=à¹à¸¡à¹à¸à¸£à¸²à¸à¸à¸à¸²à¸
+
+# LOCALIZATION NOTE (statusSeparator, statusSeparatorBeforeNumber):
+# These strings define templates for the separation of different elements in the
+# status line of a download item. As a separator, by default we use the Unicode
+# character U+2014 'EM DASH' (long dash). Examples of status lines include
+# "Canceled - 222.net", "1.1 MB - website2.com", or "Paused - 1.1 MB". Note
+# that we use a wider space after the separator when it is followed by a number,
+# just to avoid visually confusing it with with a minus sign with some fonts.
+# If you use a different separator, this might not be necessary. However, there
+# is usually no need to change the separator or the order of the substitutions,
+# even for right-to-left languages, unless the defaults are not suitable.
+statusSeparator=%1$S \u2014 %2$S
+statusSeparatorBeforeNumber=%1$S \u2014 %2$S
+
+# LOCALIZATION NOTE (otherDownloads3):
+# This is displayed in an item at the bottom of the Downloads Panel when
+# there are more downloads than can fit in the list in the panel. Use a
+# semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/Localization_and_Plurals
+otherDownloads3=à¸à¸³à¸¥à¸±à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸ %1$S à¹à¸à¸¥à¹
+
+# LOCALIZATION NOTE (showLabel, showMacLabel):
+# This is displayed when you hover a download item in the Library widget view.
+# showMacLabel is only shown on Mac OSX.
+showLabel=à¹à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸£à¸£à¸à¸¸
+showMacLabel=à¹à¸à¸´à¸à¹à¸ Finder
+# LOCALIZATION NOTE (openFileLabel):
+# Displayed when hovering a complete download, indicates that it's possible to
+# open the file using an app available in the system.
+openFileLabel=à¹à¸à¸´à¸à¹à¸à¸¥à¹
+# LOCALIZATION NOTE (retryLabel):
+# Displayed when hovering a download which is able to be retried by users,
+# indicates that it's possible to download this file again.
+retryLabel=ลà¸à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹
diff --git a/browser/chrome/browser/feeds/subscribe.properties b/browser/chrome/browser/feeds/subscribe.properties
new file mode 100644
index 00000000000..d1f244b5413
--- /dev/null
+++ b/browser/chrome/browser/feeds/subscribe.properties
@@ -0,0 +1,57 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+linkTitleTextFormat=à¹à¸à¸¢à¸±à¸ %S
+addHandler=à¹à¸à¸´à¹à¸¡ â%Sâ (%S) à¹à¸à¹à¸à¸à¸±à¸§à¸à¹à¸²à¸à¸à¸µà¸?
+addHandlerAddButton=à¹à¸à¸´à¹à¸¡à¸à¸±à¸§à¸à¹à¸²à¸à¸à¸µà¸
+addHandlerAddButtonAccesskey=à¸
+handlerRegistered=â%Sâ à¸à¸¹à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸à¹à¸à¹à¸à¸à¸±à¸§à¸à¹à¸²à¸à¸à¸µà¸à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§
+liveBookmarks=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸
+subscribeNow=à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¸à¸µà¹
+chooseApplicationMenuItem=à¹à¸¥à¸·à¸à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸â¦
+chooseApplicationDialogTitle=à¹à¸¥à¸·à¸à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+alwaysUse=à¹à¸à¹ %S à¹à¸à¸·à¹à¸à¸à¸à¸à¸£à¸±à¸à¸à¸µà¸à¹à¸ªà¸¡à¸
+mediaLabel=à¹à¸à¸¥à¹à¸ªà¸·à¹à¸
+
+# LOCALIZATION NOTE: The next string is for the size of the enclosed media.
+# e.g. enclosureSizeText : "50.23 MB"
+# %1$S = size (in bytes or megabytes, ...)
+# %2$S = unit of measure (bytes, KB, MB, ...)
+enclosureSizeText=%1$S %2$S
+
+bytes=à¹à¸à¸à¹
+kilobyte=KB
+megabyte=MB
+gigabyte=GB
+
+# LOCALIZATION NOTE: The next three strings explains to the user what they're
+# doing.
+# e.g. alwaysUseForVideoPodcasts : "Always use Miro to subscribe to video podcasts."
+# %S = application to use (Miro, iTunes, ...)
+alwaysUseForFeeds=à¹à¸à¹ %S à¹à¸à¸·à¹à¸à¸à¸à¸à¸£à¸±à¸à¸à¸µà¸à¹à¸ªà¸¡à¸
+alwaysUseForAudioPodcasts=à¹à¸à¹ %S à¹à¸à¸·à¹à¸à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¹à¸à¸ªà¸à¹à¹à¸ªà¸¡à¸
+alwaysUseForVideoPodcasts=à¹à¸à¹ %S à¹à¸à¸·à¹à¸à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¹à¸à¸ªà¸à¹à¸§à¸´à¸à¸µà¹à¸à¹à¸ªà¸¡à¸
+
+subscribeFeedUsing=à¸à¸à¸à¸£à¸±à¸à¸à¸µà¸à¸à¸µà¹à¹à¸à¸¢à¹à¸à¹\u0020
+subscribeAudioPodcastUsing=à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¹à¸à¸ªà¸à¹à¸à¸µà¹à¹à¸à¸¢à¹à¸à¹\u0020
+subscribeVideoPodcastUsing=à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¹à¸à¸ªà¸à¹à¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¹à¸à¸¢à¹à¸à¹\u0020
+
+feedSubscriptionFeed1=à¸à¸µà¹à¸à¸·à¸ âà¸à¸µà¸â à¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¹à¸à¸¢à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+feedSubscriptionAudioPodcast1=à¸à¸µà¹à¸à¸·à¸ âà¸à¸à¸à¹à¸à¸ªà¸à¹â à¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¹à¸à¸¢à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+feedSubscriptionVideoPodcast1=à¸à¸µà¹à¸à¸·à¸ âà¸à¸à¸à¹à¸à¸ªà¸à¹à¸§à¸´à¸à¸µà¹à¸â à¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¹à¸à¸¢à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+
+feedSubscriptionFeed2=à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸à¸à¸£à¸±à¸à¸à¸µà¸à¸à¸µà¹à¹à¸à¸·à¹à¸à¸£à¸±à¸à¸à¸²à¸£à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¹à¸¡à¸·à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+feedSubscriptionAudioPodcast2=à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¹à¸à¸ªà¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸£à¸±à¸à¸à¸²à¸£à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¹à¸¡à¸·à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+feedSubscriptionVideoPodcast2=à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸à¸à¸£à¸±à¸à¸à¸à¸à¹à¸à¸ªà¸à¹à¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¹à¸à¸·à¹à¸à¸£à¸±à¸à¸à¸²à¸£à¸à¸£à¸±à¸à¸à¸£à¸¸à¸à¹à¸¡à¸·à¹à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸
+
+# Protocol Handling
+# "Add %appName (%appDomain) as an application for %protocolType links?"
+addProtocolHandler=à¹à¸à¸´à¹à¸¡ %S (%S) à¹à¸à¹à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸¥à¸´à¸à¸à¹ %S?
+
+# LOCALIZATION NOTE (addProtocolHandlerMessage):
+# Message displayed when adding a protocol handler:
+# %1$S is the application's domain, %2$S is the type of protocol
+addProtocolHandlerMessage=à¹à¸à¸´à¹à¸¡ â%1$Sâ à¹à¸à¹à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸¥à¸´à¸à¸à¹ %2$S?
+addProtocolHandlerAddButton=à¹à¸à¸´à¹à¸¡à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+addProtocolHandlerAddButtonAccesskey=à¸
diff --git a/browser/chrome/browser/lightweightThemes.properties b/browser/chrome/browser/lightweightThemes.properties
new file mode 100644
index 00000000000..9bd678e1246
--- /dev/null
+++ b/browser/chrome/browser/lightweightThemes.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+lightweightThemes.recommended-1.name=A Web Browser Renaissance
+lightweightThemes.recommended-1.description=A Web Browser Renaissance is (C) Sean.Martell. Available under CC-BY-SA. No warranty.
+
+lightweightThemes.recommended-2.name=Space Fantasy
+lightweightThemes.recommended-2.description=Space Fantasy is (C) fx5800p. Available under CC-BY-SA. No warranty.
+
+lightweightThemes.recommended-4.name=Pastel Gradient
+lightweightThemes.recommended-4.description=Pastel Gradient is (C) darrinhenein. Available under CC-BY. No warranty.
diff --git a/browser/chrome/browser/migration/migration.dtd b/browser/chrome/browser/migration/migration.dtd
new file mode 100644
index 00000000000..7c5d0c2a2d5
--- /dev/null
+++ b/browser/chrome/browser/migration/migration.dtd
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/migration/migration.properties b/browser/chrome/browser/migration/migration.properties
new file mode 100644
index 00000000000..5e02a376a9a
--- /dev/null
+++ b/browser/chrome/browser/migration/migration.properties
@@ -0,0 +1,75 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+profileName_format=%S %S
+
+# Browser Specific
+sourceNameIE=Internet Explorer
+sourceNameEdge=Microsoft Edge
+sourceNameSafari=Safari
+sourceNameCanary=Google Chrome Canary
+sourceNameChrome=Google Chrome
+sourceNameChromeBeta=Google Chrome Beta
+sourceNameChromeDev=Google Chrome Dev
+sourceNameChromium=Chromium
+sourceNameFirefox=Mozilla Firefox
+sourceName360se=360 Secure Browser
+
+importedBookmarksFolder=à¸à¸²à¸ %S
+
+importedSafariReadingList=รายà¸à¸²à¸£à¸à¹à¸²à¸ (à¸à¸²à¸ Safari)
+importedEdgeReadingList=รายà¸à¸²à¸£à¸à¹à¸²à¸ (à¸à¸²à¸ Edge)
+
+# Import Sources
+# Note: When adding an import source for profile reset, add the string name to
+# resetProfile.js if it should be listed in the reset dialog.
+1_ie=à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸
+1_edge=à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²
+1_safari=à¸à¹à¸²à¸à¸³à¸«à¸à¸
+1_chrome=à¸à¹à¸²à¸à¸³à¸«à¸à¸
+1_360se=à¸à¹à¸²à¸à¸³à¸«à¸à¸
+
+2_ie=à¸à¸¸à¸à¸à¸µà¹
+2_edge=à¸à¸¸à¸à¸à¸µà¹
+2_safari=à¸à¸¸à¸à¸à¸µà¹
+2_chrome=à¸à¸¸à¸à¸à¸µà¹
+2_firefox=à¸à¸¸à¸à¸à¸µà¹
+2_360se=à¸à¸¸à¸à¸à¸µà¹
+
+4_ie=à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+4_edge=à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+4_safari=à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+4_chrome=à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+4_firefox_history_and_bookmarks=à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸¥à¸°à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+4_360se=à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹
+
+8_ie=à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+8_edge=à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+8_safari=à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+8_chrome=à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+8_firefox=à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+8_360se=à¸à¸£à¸°à¸§à¸±à¸à¸´à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+
+16_ie=รหัสà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+16_edge=รหัสà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+16_safari=รหัสà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+16_chrome=รหัสà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+16_firefox=รหัสà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+16_360se=รหัสà¸à¹à¸²à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+
+32_ie=รายà¸à¸²à¸£à¹à¸à¸£à¸
+32_edge=รายà¸à¸²à¸£à¹à¸à¸£à¸
+32_safari=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+32_chrome=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+32_360se=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+
+64_ie=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸ à¹
+64_edge=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸ à¹
+64_safari=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸ à¹
+64_chrome=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸ à¹
+64_firefox_other=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸ à¹
+64_360se=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¹à¸ à¹
+
+128_firefox=หà¸à¹à¸²à¸à¹à¸²à¸à¹à¸¥à¸°à¹à¸à¹à¸
+
diff --git a/browser/chrome/browser/newInstall.dtd b/browser/chrome/browser/newInstall.dtd
new file mode 100644
index 00000000000..ed697d61646
--- /dev/null
+++ b/browser/chrome/browser/newInstall.dtd
@@ -0,0 +1,15 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/pageInfo.dtd b/browser/chrome/browser/pageInfo.dtd
new file mode 100644
index 00000000000..f0575370f8c
--- /dev/null
+++ b/browser/chrome/browser/pageInfo.dtd
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/pageInfo.properties b/browser/chrome/browser/pageInfo.properties
new file mode 100644
index 00000000000..eaa42919e7e
--- /dev/null
+++ b/browser/chrome/browser/pageInfo.properties
@@ -0,0 +1,62 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+pageInfo.page.title=à¸à¹à¸à¸¡à¸¹à¸¥à¸«à¸à¹à¸² - %S
+pageInfo.frame.title=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸£à¸à¸ - %S
+
+noPageTitle=หà¸à¹à¸²à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸:
+unknown=à¹à¸¡à¹à¸à¸£à¸²à¸
+notset=à¹à¸¡à¹à¸£à¸°à¸à¸¸
+yes=à¹à¸à¹
+no=à¹à¸¡à¹
+
+mediaImg=ภาà¸
+mediaVideo=วิà¸à¸µà¹à¸
+mediaAudio=à¹à¸ªà¸µà¸¢à¸
+mediaBGImg=à¸à¸·à¹à¸à¸«à¸¥à¸±à¸
+mediaBorderImg=à¸à¸à¸
+mediaListImg=à¸à¸¸à¸à¸à¸³
+mediaCursor=à¹à¸à¸à¸£à¹à¹à¸à¸à¸£à¹
+mediaObject=วัà¸à¸à¸¸
+mediaEmbed=à¸à¸±à¸à¸à¸±à¸§
+mediaLink=à¹à¸à¸à¸à¸
+mediaInput=à¸à¹à¸²à¹à¸à¹à¸²
+mediaFileSize=%S KB
+mediaSize=%Spx à %Spx
+mediaSelectFolder=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸°à¸à¸±à¸à¸à¸¶à¸à¸ าà¸
+mediaBlockImage=à¸à¸´à¸à¸à¸±à¹à¸à¸ าà¸à¸à¸²à¸ %S
+mediaUnknownNotCached=à¹à¸¡à¹à¸à¸£à¸²à¸ (à¹à¸¡à¹à¸à¸¹à¸à¹à¸à¸)
+mediaImageType=ภาภ%S
+mediaAnimatedImageType=ภาภ%S (à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§, %S à¹à¸à¸£à¸¡)
+mediaDimensions=%Spx à %Spx
+mediaDimensionsScaled=%Spx à %Spx (à¸à¸£à¸±à¸à¸à¸à¸²à¸à¹à¸à¹à¸ %Spx à %Spx)
+
+generalQuirksMode=à¹à¸«à¸¡à¸à¹à¸¡à¹à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸
+generalStrictMode=à¹à¸«à¸¡à¸à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸
+generalSize=%S KB (%S à¹à¸à¸à¹)
+generalMetaTag=Meta (1 à¹à¸à¹à¸)
+generalMetaTags=Meta (%S à¹à¸à¹à¸)
+
+securityNoOwner=à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸
+# LOCALIZATION NOTE (securityVisitsNumber):
+# Semi-colon list of plural forms.
+# See: https://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of visits and can be used in all plural forms as needed, e.g.
+# for '1': 'Yes, #1 time'
+securityVisitsNumber=à¹à¸à¹, #1 à¸à¸£à¸±à¹à¸
+securityNoVisits=à¹à¸¡à¹
+
+# LOCALIZATION NOTE(securitySiteDataCookies,securitySiteDataOnly): This is for site data disk usage.
+# It confirms that a website is indeed using this much space.
+# e.g. Is this website storing site data? "Yes, 50.23 MB"
+# %1$S = size (in bytes or megabytes, ...)
+# %2$S = unit of measure (bytes, KB, MB, ...)
+securitySiteDataCookies=à¹à¸à¹, à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹ %1$S %2$S
+securitySiteDataOnly=à¹à¸à¹, à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹ %1$S %2$S
+# LOCALIZATION NOTE(securitySiteDataCookiesOnly,securitySiteDataNo):
+# This is for site data and cookies usage. It answers the question "Is this website storing cookies and/or site data?"
+securitySiteDataCookiesOnly=à¹à¸à¹, à¸à¸¸à¸à¸à¸µà¹
+securitySiteDataNo=à¹à¸¡à¹
+
+permissions.useDefault=à¹à¸à¹à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸
diff --git a/browser/chrome/browser/places/bookmarkProperties.properties b/browser/chrome/browser/places/bookmarkProperties.properties
new file mode 100644
index 00000000000..5baf2e4c08a
--- /dev/null
+++ b/browser/chrome/browser/places/bookmarkProperties.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+dialogAcceptLabelAddItem=à¹à¸à¸´à¹à¸¡
+dialogAcceptLabelSaveItem=à¸à¸±à¸à¸à¸¶à¸
+dialogAcceptLabelAddLivemark=à¸à¸à¸à¸£à¸±à¸
+dialogAcceptLabelAddMulti=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+dialogAcceptLabelEdit=à¸à¸±à¸à¸à¸¶à¸
+dialogTitleAddBookmark=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+dialogTitleAddLivemark=à¸à¸à¸à¸£à¸±à¸à¸à¹à¸§à¸¢à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸
+dialogTitleAddFolder=à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹
+dialogTitleAddMulti=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+dialogTitleEdit=à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸à¸à¸ â%Sâ
+
+bookmarkAllTabsDefault=[à¸à¸·à¹à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹]
+newFolderDefault=à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹
+newBookmarkDefault=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹
+newLivemarkDefault=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸à¹à¸«à¸¡à¹
diff --git a/browser/chrome/browser/places/editBookmarkOverlay.dtd b/browser/chrome/browser/places/editBookmarkOverlay.dtd
new file mode 100644
index 00000000000..6167788d037
--- /dev/null
+++ b/browser/chrome/browser/places/editBookmarkOverlay.dtd
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/places/places.dtd b/browser/chrome/browser/places/places.dtd
new file mode 100644
index 00000000000..c3653796894
--- /dev/null
+++ b/browser/chrome/browser/places/places.dtd
@@ -0,0 +1,115 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Z">
+
+ A">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/places/places.properties b/browser/chrome/browser/places/places.properties
new file mode 100644
index 00000000000..1229a1a6ad4
--- /dev/null
+++ b/browser/chrome/browser/places/places.properties
@@ -0,0 +1,87 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+load-js-data-url-error=à¸à¹à¸§à¸¢à¹à¸«à¸à¸¸à¸à¸¥à¸à¸§à¸²à¸¡à¸¡à¸±à¹à¸à¸à¸ à¸à¸µà¹à¸à¸±à¹à¸ URL à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸«à¸£à¸·à¸à¸à¸²à¸§à¸²à¸ªà¸à¸£à¸´à¸à¸à¹ à¸à¸°à¹à¸¡à¹à¸à¸¹à¸à¹à¸«à¸¥à¸à¸à¸²à¸à¹à¸à¸à¸à¹à¸²à¸à¸«à¸£à¸·à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´
+noTitle=(à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸)
+
+bookmarksMenuEmptyFolder=(วà¹à¸²à¸)
+
+bookmarksBackupTitle=à¸à¸·à¹à¸à¹à¸à¸¥à¹à¸ªà¸³à¸£à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+
+bookmarksRestoreAlertTitle=à¸à¸·à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸¥à¸±à¸
+bookmarksRestoreAlert=สิà¹à¸à¸à¸µà¹à¸à¸°à¹à¸à¸à¸à¸µà¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸à¸¸à¸à¸à¹à¸§à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¸³à¸£à¸à¸ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+bookmarksRestoreTitle=à¹à¸¥à¸·à¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸ªà¸³à¸£à¸à¸à¹à¸§à¹
+bookmarksRestoreFilterName=JSON
+
+bookmarksRestoreFormatError=à¸à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸µà¹à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸
+bookmarksRestoreParseError=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¹à¸à¸¥à¹à¸ªà¸³à¸£à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥
+
+sortByName=à¹à¸£à¸µà¸¢à¸ â%Sâ à¸à¸²à¸¡à¸à¸·à¹à¸
+sortByNameGeneric=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸à¸·à¹à¸
+# LOCALIZATION NOTE (view.sortBy.1.name.label): sortBy properties are versioned.
+# When any of these changes, all of the properties must be bumped, and the
+# change must be annotated here. Both label and accesskey must be updated.
+# - version 1: changed view.sortBy.1.date.
+view.sortBy.1.name.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸à¸·à¹à¸
+view.sortBy.1.name.accesskey=ร
+view.sortBy.1.url.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+view.sortBy.1.url.accesskey=à¸
+view.sortBy.1.date.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸§à¸±à¸à¸à¸µà¹à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¸¥à¹à¸²à¸ªà¸¸à¸
+view.sortBy.1.date.accesskey=à¸
+view.sortBy.1.visitCount.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸à¸³à¸à¸§à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¡
+view.sortBy.1.visitCount.accesskey=ม
+view.sortBy.1.dateAdded.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸§à¸±à¸à¸à¸µà¹à¹à¸à¸´à¹à¸¡
+view.sortBy.1.dateAdded.accesskey=ว
+view.sortBy.1.lastModified.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸§à¸±à¸à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+view.sortBy.1.lastModified.accesskey=à¸
+view.sortBy.1.tags.label=à¹à¸£à¸µà¸¢à¸à¸à¸²à¸¡à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸
+view.sortBy.1.tags.accesskey=ย
+
+searchBookmarks=à¸à¹à¸à¸«à¸²à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+searchHistory=à¸à¹à¸à¸«à¸²à¸à¸£à¸°à¸§à¸±à¸à¸´
+searchDownloads=à¸à¹à¸à¸«à¸²à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+
+SelectImport=à¸à¸³à¹à¸à¹à¸²à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+EnterExport=สà¹à¸à¸à¸à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+
+detailsPane.noItems=à¹à¸¡à¹à¸¡à¸µà¸£à¸²à¸¢à¸à¸²à¸£
+# LOCALIZATION NOTE (detailsPane.itemsCountLabel): Semicolon-separated list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 number of items
+# example: 111 items
+detailsPane.itemsCountLabel=#1 รายà¸à¸²à¸£
+
+# LOCALIZATION NOTE (tagResultLabel, bookmarkResultLabel, switchtabResultLabel,
+# keywordResultLabel, searchengineResultLabel)
+# Noun used to describe the location bar autocomplete result type
+# to users with screen readers
+# See createResultLabel() in urlbarBindings.xml
+tagResultLabel=à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸
+bookmarkResultLabel=à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+switchtabResultLabel=à¹à¸à¹à¸
+keywordResultLabel=à¸à¸³à¸ªà¸³à¸à¸±à¸
+searchengineResultLabel=à¸à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (lockPrompt.text)
+# %S will be replaced with the application name.
+lockPrompt.title=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+lockPrompt.text=ระà¸à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸¥à¸°à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸°à¹à¸¡à¹à¸à¸³à¸à¸²à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¸¶à¹à¸à¹à¸à¹à¸à¸¥à¹à¸à¸à¸ %S มีà¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¹à¸à¸¢à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸·à¹à¸ à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸²à¸à¸à¸±à¸§à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸à¹à¸«à¹à¹à¸à¸´à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹
+lockPromptInfoButton.label=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+lockPromptInfoButton.accessKey=ร
+
+# LOCALIZATION NOTE (cmd.deleteSinglePage.accesskey,
+# cmd.deleteMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.deleteSinglePage.label=ลà¸à¸«à¸à¹à¸²
+cmd.deleteSinglePage.accesskey=ล
+cmd.deleteMultiplePages.label=ลà¸à¸«à¸à¹à¸²
+cmd.deleteMultiplePages.accesskey=ล
+
+# LOCALIZATION NOTE (cmd.bookmarkSinglePage.accesskey,
+# cmd.bookmarkMultiplePages.accesskey): these accesskeys can use the same
+# character, since they're never displayed at the same time
+cmd.bookmarkSinglePage.label=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¸«à¸à¹à¸²
+cmd.bookmarkSinglePage.accesskey=à¸
+cmd.bookmarkMultiplePages.label=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸³à¸«à¸£à¸±à¸à¸«à¸à¹à¸²
+cmd.bookmarkMultiplePages.accesskey=à¸
diff --git a/browser/chrome/browser/pocket.properties b/browser/chrome/browser/pocket.properties
new file mode 100644
index 00000000000..ec3a64b5d9b
--- /dev/null
+++ b/browser/chrome/browser/pocket.properties
@@ -0,0 +1,33 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+addtags = à¹à¸à¸´à¹à¸¡à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸
+alreadyhaveacct = à¹à¸à¹à¸à¸à¸¹à¹à¹à¸à¹ Pocket à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§?
+continueff = à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¸¢ Firefox
+errorgeneric = à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¢à¸±à¸ Pocket
+learnmore = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+loginnow = à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸
+maxtaglength = à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸à¸à¸¹à¸à¸à¸³à¸à¸±à¸à¹à¸§à¹à¸à¸µà¹ 25 à¸à¸±à¸§à¸à¸±à¸à¸©à¸£
+mustbeconnected = à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸°à¸à¸±à¸à¸à¸¶à¸ Pocket à¹à¸à¸£à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+onlylinkssaved = ลิà¸à¸à¹à¹à¸à¹à¸²à¸à¸±à¹à¸à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸¹à¸à¸à¸±à¸à¸à¸¶à¸à¹à¸à¹
+pagenotsaved = หà¸à¹à¸²à¹à¸¡à¹à¸à¸¹à¸à¸à¸±à¸à¸à¸¶à¸
+pageremoved = ลà¸à¸«à¸à¹à¸²à¹à¸¥à¹à¸§
+pagesaved = à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¢à¸±à¸ Pocket à¹à¸¥à¹à¸§
+processingremove = à¸à¸³à¸¥à¸±à¸à¸¥à¸à¸«à¸à¹à¸²â¦
+processingtags = à¸à¸³à¸¥à¸±à¸à¹à¸à¸´à¹à¸¡à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸â¦
+removepage = ลà¸à¸«à¸à¹à¸²
+save = à¸à¸±à¸à¸à¸¶à¸
+saving = à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¸à¸¶à¸â¦
+signupemail = ลà¸à¸à¸°à¹à¸à¸µà¸¢à¸à¸à¹à¸§à¸¢à¸à¸µà¹à¸¡à¸¥
+signuptosave = ลà¸à¸à¸°à¹à¸à¸µà¸¢à¸ Pocket à¸à¸£à¸µ
+suggestedtags = à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸à¸à¸µà¹à¸à¸¹à¸à¹à¸à¸°à¸à¸³
+tagline = à¸à¸±à¸à¸à¸¶à¸à¸à¸à¸à¸§à¸²à¸¡à¹à¸¥à¸°à¸§à¸´à¸à¸µà¹à¸à¸à¸²à¸ Firefox à¹à¸à¸·à¹à¸à¸à¸¹à¹à¸ Pocket à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¹à¸²à¸ ๠à¹à¸§à¸¥à¸²à¹à¸«à¸à¸à¹à¹à¸à¹
+taglinestory_one = à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ Pocket à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸¶à¸à¸à¸à¸à¸§à¸²à¸¡ วิà¸à¸µà¹à¸ หรืà¸à¸«à¸à¹à¸²à¸à¸²à¸ Firefox
+taglinestory_two = à¸à¸¹à¹à¸ Pocket à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¹à¸²à¸ ๠à¹à¸§à¸¥à¸²à¹à¸«à¸à¸à¹à¹à¸à¹
+tagssaved = à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸à¸à¸¹à¸à¹à¸à¸´à¹à¸¡à¹à¸¥à¹à¸§
+tos = หาà¸à¸à¸à¸¥à¸ หมายà¸à¸§à¸²à¸¡à¸§à¹à¸² à¸à¸¸à¸à¸¢à¸à¸¡à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸à¹à¸à¸à¸²à¸£à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£ à¹à¸¥à¸°à¸à¹à¸¢à¸à¸²à¸¢à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸ Pocket
+tryitnow = ลà¸à¸à¹à¸¥à¸¢à¸à¸à¸à¸à¸µà¹
+signinfirefox = ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¹à¸§à¸¢ Firefox
+signupfirefox = ลà¸à¸à¸°à¹à¸à¸µà¸¢à¸à¸à¹à¸§à¸¢ Firefox
+viewlist = à¸à¸¹à¸£à¸²à¸¢à¸à¸²à¸£
diff --git a/browser/chrome/browser/preferences/preferences.properties b/browser/chrome/browser/preferences/preferences.properties
new file mode 100644
index 00000000000..4ea326c126c
--- /dev/null
+++ b/browser/chrome/browser/preferences/preferences.properties
@@ -0,0 +1,79 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#### Security
+
+# LOCALIZATION NOTE: phishBefore uses %S to represent the name of the provider
+# whose privacy policy must be accepted (for enabling
+# check-every-page-as-I-load-it phishing protection).
+phishBeforeText=à¹à¸¡à¸·à¹à¸à¹à¸¥à¸·à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸µà¹ à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸°à¸ªà¹à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸à¸à¸µà¹à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¸¢à¸¹à¹à¹à¸à¸à¸µà¹ %S à¹à¸à¸£à¸à¸à¹à¸²à¸à¹à¸¥à¸°à¸¢à¸à¸¡à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸à¹à¸à¸à¸²à¸£à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+
+#### Master Password
+
+pw_change2empty_in_fips_mode=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸¹à¹à¹à¸à¹à¸«à¸¡à¸ FIPS à¸à¸¶à¹à¸ FIPS à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸¡à¸µà¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¸¥à¸±à¸à¸à¸µà¹à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸¥à¹à¸²
+pw_change_failed_title=à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+
+#### Downloads
+
+desktopFolderName=à¹à¸à¸ªà¸à¹à¸à¹à¸à¸
+downloadsFolderName=à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+chooseDownloadFolderTitle=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸²à¸£à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸:
+
+#### Applications
+
+fileEnding=à¹à¸à¸¥à¹ %S
+saveFile=à¸à¸±à¸à¸à¸¶à¸à¹à¸à¸¥à¹
+
+# LOCALIZATION NOTE (useApp, useDefault): %S = Application name
+useApp=à¹à¸à¹ %S
+useDefault=à¹à¸à¹ %S (à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸)
+
+useOtherApp=à¹à¸à¹à¸à¸±à¸§à¸à¸·à¹à¸â¦
+fpTitleChooseApp=à¹à¸¥à¸·à¸à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸±à¸§à¸à¹à¸§à¸¢
+manageApp=รายละà¹à¸à¸µà¸¢à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸â¦
+webFeed=à¸à¸µà¸à¹à¸§à¹à¸
+videoPodcastFeed=à¸à¸à¸à¹à¸à¸ªà¸à¹à¸§à¸´à¸à¸µà¹à¸
+audioPodcastFeed=à¸à¸à¸à¹à¸à¸ªà¸à¹
+alwaysAsk=à¸à¸²à¸¡à¹à¸ªà¸¡à¸
+portableDocumentFormat=Portable Document Format (PDF)
+
+# LOCALIZATION NOTE (usePluginIn):
+# %1$S = plugin name (for example "QuickTime Plugin-in 7.2")
+# %2$S = brandShortName from brand.properties (for example "Minefield")
+usePluginIn=à¹à¸à¹ %S (à¹à¸ %S)
+
+# LOCALIZATION NOTE (previewInApp): %S = brandShortName
+previewInApp=à¹à¸ªà¸à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¹à¸ %S
+addLiveBookmarksInApp=à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¸ªà¸à¹à¸ %S
+
+# LOCALIZATION NOTE (typeDescriptionWithType):
+# %1$S = type description (for example "Portable Document Format")
+# %2$S = type (for example "application/pdf")
+typeDescriptionWithType=%S (%S)
+
+#### Permission labels
+
+can=à¸à¸à¸¸à¸à¸²à¸
+canAccessFirstParty=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸¥à¸à¸µà¹à¸«à¸à¸¶à¹à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+canSession=à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸§à¸²à¸£à¸°
+cannot=à¸à¸´à¸à¸à¸±à¹à¸
+prompt=à¸à¸²à¸¡à¹à¸ªà¸¡à¸
+
+spaceAlert.learnMoreButton.label=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+spaceAlert.learnMoreButton.accesskey=ร
+spaceAlert.over5GB.prefButton.label=à¹à¸à¸´à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸
+spaceAlert.over5GB.prefButton.accesskey=à¸
+# LOCALIZATION NOTE (spaceAlert.over5GB.prefButtonWin.label): On Windows Preferences is called Options
+spaceAlert.over5GB.prefButtonWin.label=à¹à¸à¸´à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+spaceAlert.over5GB.prefButtonWin.accesskey=à¸
+# LOCALIZATION NOTE (spaceAlert.over5GB.message1): %S = brandShortName
+spaceAlert.over5GB.message1=à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¸à¸à¸ %S à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¹à¸¡ à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹à¹à¸à¹à¹à¸ à¸à¹à¸²à¸à¸³à¸«à¸à¸ > à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย > à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+# LOCALIZATION NOTE (spaceAlert.over5GB.messageWin1):
+# - On Windows Preferences is called Options
+# - %S = brandShortName
+spaceAlert.over5GB.messageWin1=à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¸à¸à¸ %S à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¹à¸¡ à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹à¹à¸à¹à¹à¸ à¸à¸±à¸§à¹à¸¥à¸·à¸à¸ > à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย > à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹
+spaceAlert.under5GB.okButton.label=à¸à¸à¸¥à¸ à¹à¸à¹à¸²à¹à¸à¹à¸¥à¹à¸§
+spaceAlert.under5GB.okButton.accesskey=à¸
+# LOCALIZATION NOTE (spaceAlert.under5GB.message): %S = brandShortName
+spaceAlert.under5GB.message=à¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¸à¸à¸ %S à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¹à¸¡ à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡ âà¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡â à¹à¸à¸·à¹à¸à¹à¸à¸´à¹à¸¡à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¸à¸´à¸ªà¸à¹à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸£à¸°à¸ªà¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸µà¹à¸à¸µà¸à¸¶à¹à¸
diff --git a/browser/chrome/browser/preferences/security.dtd b/browser/chrome/browser/preferences/security.dtd
new file mode 100644
index 00000000000..44cfaafe43b
--- /dev/null
+++ b/browser/chrome/browser/preferences/security.dtd
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/safebrowsing/phishing-afterload-warning-message.dtd b/browser/chrome/browser/safebrowsing/phishing-afterload-warning-message.dtd
new file mode 100644
index 00000000000..8ad2426bae3
--- /dev/null
+++ b/browser/chrome/browser/safebrowsing/phishing-afterload-warning-message.dtd
@@ -0,0 +1,65 @@
+
+
+
+
+
+
+
+
+
+
+
+">
+
+
+
+
+
+
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸ หรืภà¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹">
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸">
+
+StopBadware.org à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸à¸ &brandShortName; à¹à¸à¹à¸à¸µà¹ support.mozilla.org">
+
+
+
+
+
+
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ à¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹">
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢">
+
+à¸à¹à¸¢à¸à¸²à¸¢à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸£ à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¹à¸à¹à¸à¸µà¹ support.mozilla.org">
+
+
+
+
+
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸ หรืภà¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹">
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸²à¸£à¸à¸£à¸§à¸à¸à¸">
+
+www.antiphishing.org à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸£à¸°à¸à¸à¸à¸´à¸à¸à¸´à¹à¸à¹à¸¥à¸°à¸£à¸°à¸à¸à¸à¹à¸à¸à¸à¸±à¸à¸¡à¸±à¸¥à¹à¸§à¸£à¹à¸à¸à¸ &brandShortName; à¹à¸à¹à¸à¸µà¹ support.mozilla.org">
+
+
+
+
+
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸ à¹à¸¡à¹à¸ªà¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸ à¹à¸¥à¸°à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹">
+
+ à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¸¡à¸µà¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢">
+
+support.mozilla.org">
diff --git a/browser/chrome/browser/safebrowsing/report-phishing.dtd b/browser/chrome/browser/safebrowsing/report-phishing.dtd
new file mode 100644
index 00000000000..c0a99673a9e
--- /dev/null
+++ b/browser/chrome/browser/safebrowsing/report-phishing.dtd
@@ -0,0 +1,13 @@
+
+
+
+
+
+
diff --git a/browser/chrome/browser/safebrowsing/safebrowsing.properties b/browser/chrome/browser/safebrowsing/safebrowsing.properties
new file mode 100644
index 00000000000..d246b942aac
--- /dev/null
+++ b/browser/chrome/browser/safebrowsing/safebrowsing.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+errorReportFalseDeceptiveTitle=à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸
+errorReportFalseDeceptiveMessage=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸²à¸¢à¸à¸²à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¹à¹à¸à¸à¸à¸°à¸à¸µà¹
diff --git a/browser/chrome/browser/search.properties b/browser/chrome/browser/search.properties
new file mode 100644
index 00000000000..d04f19e0b7a
--- /dev/null
+++ b/browser/chrome/browser/search.properties
@@ -0,0 +1,66 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+searchtip=à¸à¹à¸à¸«à¸²à¹à¸à¸¢à¹à¸à¹ %S
+
+# LOCALIZATION NOTE (searchPlaceholder): this is shown in the searchbox when
+# the user hasn't typed anything yet.
+searchPlaceholder=à¸à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (searchHeader): this is displayed at the top of the panel
+# showing search suggestions.
+# %S is replaced with the name of the current default search engine.
+searchHeader=à¸à¹à¸à¸«à¸² %S
+
+# LOCALIZATION NOTE (cmd_pasteAndSearch): "Search" is a verb, this is the
+# search bar equivalent to the url bar's "Paste & Go"
+cmd_pasteAndSearch=วาà¸à¹à¸¥à¹à¸§à¸à¹à¸à¸«à¸²
+
+cmd_clearHistory=ลà¹à¸²à¸à¸à¸£à¸°à¸§à¸±à¸à¸´à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+cmd_clearHistory_accesskey=à¸
+
+cmd_showSuggestions=à¹à¸ªà¸à¸à¸à¹à¸à¹à¸ªà¸à¸à¹à¸à¸°
+cmd_showSuggestions_accesskey=ส
+
+# LOCALIZATION NOTE (cmd_addFoundEngine): %S is replaced by the name of
+# a search engine offered by a web page. Each engine is displayed as a
+# menuitem at the bottom of the search panel.
+cmd_addFoundEngine=à¹à¸à¸´à¹à¸¡ â%Sâ
+# LOCALIZATION NOTE (cmd_addFoundEngineMenu): When more than 5 engines
+# are offered by a web page, instead of listing all of them in the
+# search panel using the cmd_addFoundEngine string, they will be
+# grouped in a submenu using cmd_addFoundEngineMenu as a label.
+cmd_addFoundEngineMenu=à¹à¸à¸´à¹à¸¡à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²
+
+searchAddFoundEngine2=à¹à¸à¸´à¹à¸¡à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (searchForSomethingWith2):
+# This string is used to build the header above the list of one-click
+# search providers: "Search for with:"
+searchForSomethingWith2=à¸à¹à¸à¸«à¸² %S à¸à¹à¸§à¸¢:
+
+# LOCALIZATION NOTE (searchWithHeader):
+# The wording of this string should be as close as possible to
+# searchForSomethingWith2. This string will be used when the user
+# has not typed anything.
+searchWithHeader=à¸à¹à¸à¸«à¸²à¸à¹à¸§à¸¢:
+
+# LOCALIZATION NOTE (searchSettings):
+# This is the label for the button that opens Search preferences.
+searchSettings=à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸²à¸£à¸à¹à¸à¸«à¸²
+
+# LOCALIZATION NOTE (searchReset.intro):
+# %S is the name of the user's current search engine.
+searchReset.intro=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¹à¸à¸¢à¹à¸à¹ %S หรืà¸à¹à¸¡à¹?
+# LOCALIZATION NOTE (searchReset.message):
+# %1$S is brandShortName. %2$S is the name of the user's current search engine.
+searchReset.message=à¸à¸¹à¹à¸«à¸¡à¸·à¸à¸à¸§à¹à¸²à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸ à¸à¸§à¸£à¹à¸«à¹ %1$S à¸à¸³ %2$S à¹à¸à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸?
+# LOCALIZATION NOTE (searchReset.doNotResetButton):
+# This string is used as a button label in a notification popup.
+searchReset.doNotResetButton=à¹à¸¡à¹ à¸à¸à¸à¸à¸¸à¸
+# LOCALIZATION NOTE (searchReset.resetButton):
+# %S is the name of the user's current search engine. This string is used as a
+# button label in a notification popup, where space is limited. If necessary,
+# translate simply as "Yes, Use %S" (e.g., "Yes, use Google")
+searchReset.resetButton=à¹à¸à¹ à¹à¸à¹ %S à¹à¸à¸à¸²à¸£à¸à¹à¸à¸«à¸²
diff --git a/browser/chrome/browser/setDesktopBackground.dtd b/browser/chrome/browser/setDesktopBackground.dtd
new file mode 100644
index 00000000000..8af8d47878e
--- /dev/null
+++ b/browser/chrome/browser/setDesktopBackground.dtd
@@ -0,0 +1,21 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/shellservice.properties b/browser/chrome/browser/shellservice.properties
new file mode 100644
index 00000000000..b484ac52e5b
--- /dev/null
+++ b/browser/chrome/browser/shellservice.properties
@@ -0,0 +1,31 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+optionsLabel=&à¸à¸±à¸§à¹à¸¥à¸·à¸à¸ %S
+safeModeLabel=&à¹à¸«à¸¡à¸à¸à¸¥à¸à¸à¸ ัย %S
+
+# LOCALIZATION NOTE (setDefaultBrowserMessage2, setDefaultBrowserConfirm.label):
+# %S will be replaced by brandShortName
+setDefaultBrowserMessage2 = รัà¸à¸à¸£à¸°à¹à¸¢à¸à¸à¹à¸ªà¸¹à¸à¸ªà¸¸à¸à¸à¸²à¸ %S à¹à¸à¸¢à¸à¸²à¸£à¸à¸±à¹à¸à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸
+setDefaultBrowserConfirm.label = à¹à¸à¹ %S à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸±à¸
+setDefaultBrowserConfirm.accesskey = à¸
+setDefaultBrowserOptions.label = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+setDefaultBrowserOptions.accesskey = à¸
+setDefaultBrowserNotNow.label = à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+setDefaultBrowserNotNow.accesskey = ม
+setDefaultBrowserNever.label = à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸¡à¸à¸±à¸à¸à¸µà¸
+setDefaultBrowserNever.accesskey = à¸
+
+# LOCALIZATION NOTE (setDefaultBrowserTitle, setDefaultBrowserMessage, setDefaultBrowserDontAsk, setDefaultBrowserAlertConfirm.label, setDefaultBrowserAlertNotNow.label):
+# These strings are used as an alternative to the ones above, in a modal dialog.
+# %S will be replaced by brandShortName
+setDefaultBrowserTitle=à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+setDefaultBrowserMessage=%S à¹à¸¡à¹à¹à¸à¹à¸à¸¹à¸à¸à¸±à¹à¸à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸«à¹à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+setDefaultBrowserDontAsk=à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸ªà¸¡à¸à¹à¸¡à¸·à¹à¸à¹à¸£à¸´à¹à¸¡ %S
+setDefaultBrowserAlertConfirm.label=à¹à¸à¹ %S à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸±à¸
+setDefaultBrowserAlertNotNow.label=à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸µà¹
+
+desktopBackgroundLeafNameWin=à¸à¸·à¹à¸à¸«à¸¥à¸±à¸à¹à¸à¸ªà¸à¹à¸à¹à¸à¸.bmp
+DesktopBackgroundDownloading=à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¸à¸¶à¸à¸£à¸¹à¸à¸ าà¸â¦
+DesktopBackgroundSet=à¸à¸±à¹à¸à¸à¸·à¹à¸à¸«à¸¥à¸±à¸à¹à¸à¸ªà¸à¹à¸à¹à¸à¸
diff --git a/browser/chrome/browser/siteData.properties b/browser/chrome/browser/siteData.properties
new file mode 100644
index 00000000000..8c816451e06
--- /dev/null
+++ b/browser/chrome/browser/siteData.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+clearSiteDataPromptTitle=ลà¹à¸²à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+# LOCALIZATION NOTE (clearSiteDataPromptText): %S = brandShortName
+clearSiteDataPromptText=à¸à¸²à¸£à¹à¸¥à¸·à¸à¸ âลà¹à¸²à¸à¸à¸à¸à¸à¸µà¹â à¸à¸°à¸¥à¹à¸²à¸à¸à¸¸à¸à¸à¸µà¹à¹à¸¥à¸°à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸à¸¢ %S สิà¹à¸à¸à¸µà¹à¸à¸²à¸à¸¥à¸à¸à¸·à¹à¸à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸¥à¸°à¹à¸à¸²à¹à¸à¸·à¹à¸à¸«à¸²à¹à¸§à¹à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸
+clearSiteDataNow=ลà¹à¸²à¸à¸à¸à¸à¸à¸µà¹
diff --git a/browser/chrome/browser/sitePermissions.properties b/browser/chrome/browser/sitePermissions.properties
new file mode 100644
index 00000000000..cbf9f49e226
--- /dev/null
+++ b/browser/chrome/browser/sitePermissions.properties
@@ -0,0 +1,51 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (state.current.allowed,
+# state.current.allowedForSession,
+# state.current.allowedTemporarily,
+# state.current.blockedTemporarily,
+# state.current.blocked,
+# state.current.hide):
+# This label is used to display active permission states in the site
+# identity popup (which does not have a lot of screen space).
+state.current.allowed = à¸à¸à¸¸à¸à¸²à¸à¹à¸¥à¹à¸§
+state.current.allowedForSession = à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸§à¸²à¸£à¸°
+state.current.allowedTemporarily = à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+state.current.blockedTemporarily = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¹à¸§à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+state.current.blocked = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¹à¸§
+state.current.prompt = à¸à¸²à¸¡à¹à¸ªà¸¡à¸
+state.current.hide = à¸à¹à¸à¸à¸à¸²à¸£à¸à¸²à¸¡
+
+# LOCALIZATION NOTE (state.multichoice.alwaysAsk,
+# state.multichoice.allow,
+# state.multichoice.allowForSession,
+# state.multichoice.block):
+# Used to label permission state checkboxes in the page info dialog.
+state.multichoice.alwaysAsk = à¸à¸²à¸¡à¹à¸ªà¸¡à¸
+state.multichoice.allow = à¸à¸à¸¸à¸à¸²à¸
+state.multichoice.allowForSession = à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸§à¸²à¸£à¸°
+state.multichoice.block = à¸à¸´à¸à¸à¸±à¹à¸
+
+state.multichoice.autoplayblock = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸µà¸¢à¸
+state.multichoice.autoplayblockall = à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸µà¸¢à¸à¹à¸¥à¸°à¸§à¸´à¸à¸µà¹à¸
+state.multichoice.autoplayallow = à¸à¸à¸¸à¸à¸²à¸à¹à¸ªà¸µà¸¢à¸à¹à¸¥à¸°à¸§à¸´à¸à¸µà¹à¸
+
+permission.autoplay-media2.label = à¹à¸¥à¹à¸à¹à¸ªà¸µà¸¢à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+permission.cookie.label = à¸à¸±à¹à¸à¸à¸¸à¸à¸à¸µà¹
+permission.desktop-notification3.label = สà¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸
+permission.image.label = à¹à¸«à¸¥à¸à¸ าà¸
+permission.camera.label = à¹à¸à¹à¸à¸¥à¹à¸à¸
+permission.microphone.label = à¹à¸à¹à¹à¸¡à¹à¸à¸£à¹à¸à¸
+permission.screen.label = à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸à¸
+permission.install.label = à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+permission.popup.label = à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸±à¸
+permission.geo.label = à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸à¸à¸à¸¸à¸
+permission.shortcuts.label = à¹à¸à¸µà¸¢à¸à¸à¸±à¸à¹à¸à¹à¸à¸à¸´à¸¡à¸à¹à¸¥à¸±à¸
+permission.focus-tab-by-prompt.label = สลัà¸à¹à¸à¸¢à¸±à¸à¹à¸à¹à¸à¸à¸µà¹
+permission.persistent-storage.label = à¸à¸±à¸à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸§à¸£
+permission.canvas.label = สà¹à¸à¸à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸·à¸à¸à¹à¸²à¹à¸
+permission.flash-plugin.label = à¹à¸£à¸µà¸¢à¸à¹à¸à¹ Adobe Flash
+permission.midi.label = à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¸à¸à¸£à¸à¹ MIDI
+permission.midi-sysex.label = à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¸à¸à¸à¸£à¸à¹ MIDI à¸à¸£à¹à¸à¸¡à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸ SysEx
diff --git a/browser/chrome/browser/syncBrand.dtd b/browser/chrome/browser/syncBrand.dtd
new file mode 100644
index 00000000000..23175b3cace
--- /dev/null
+++ b/browser/chrome/browser/syncBrand.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/browser/chrome/browser/syncSetup.properties b/browser/chrome/browser/syncSetup.properties
new file mode 100644
index 00000000000..439f5342b79
--- /dev/null
+++ b/browser/chrome/browser/syncSetup.properties
@@ -0,0 +1,22 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Several other strings are used (via Weave.Status.login), but they come from
+# /services/sync
+
+# Firefox Accounts based setup.
+continue.label = à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+
+# LOCALIZATION NOTE (disconnect.label, disconnect.verify.title, disconnect.verify.bodyHeading, disconnect.verify.bodyText):
+# These strings are used in the confirmation dialog shown when the user hits the disconnect button
+# LOCALIZATION NOTE (disconnect.label): This is the label for the disconnect button
+disconnect.label = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+disconnect.verify.title = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+disconnect.verify.bodyHeading = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸ Sync?
+disconnect.verify.bodyText = à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸à¸à¸à¸¸à¸à¸à¸°à¸¢à¸±à¸à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸µà¹ à¹à¸à¹à¸à¸°à¹à¸¡à¹à¸à¸´à¸à¸à¹à¸à¸±à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¸à¸µà¸à¸à¹à¸à¹à¸
+
+relinkVerify.title = à¸à¸³à¹à¸à¸·à¸à¸à¸à¸²à¸£à¸à¸ªà¸²à¸
+relinkVerify.heading = à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¸à¸·à¹à¸à¹à¸à¹à¸² Sync?
+# LOCALIZATION NOTE (relinkVerify.description): Email address of a user previously signed into sync.
+relinkVerify.description = à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¸à¹à¸²à¸à¸à¸±à¸à¹à¸à¹à¸¥à¸à¸à¸·à¹à¸à¹à¸à¹à¸² Sync à¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸µà¹ à¸à¸²à¸£à¸¥à¸à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¸°à¸à¸ªà¸²à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸², รหัสà¸à¹à¸²à¸ à¹à¸¥à¸°à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸·à¹à¸ ๠à¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸±à¸ %S
diff --git a/browser/chrome/browser/tabbrowser.properties b/browser/chrome/browser/tabbrowser.properties
new file mode 100644
index 00000000000..eac661b4bfe
--- /dev/null
+++ b/browser/chrome/browser/tabbrowser.properties
@@ -0,0 +1,132 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+tabs.emptyTabTitle=à¹à¸à¹à¸à¹à¸«à¸¡à¹
+tabs.emptyPrivateTabTitle=à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+tabs.closeTab=à¸à¸´à¸à¹à¸à¹à¸
+tabs.close=à¸à¸´à¸
+tabs.closeTitleTabs=à¸à¸´à¸à¹à¸à¹à¸?
+tabs.closeAndQuitTitleTabs=à¸à¸à¸à¹à¸¥à¸°à¸à¸´à¸à¹à¸à¹à¸?
+tabs.closeAndQuitTitleTabsWin=à¸à¸à¸à¹à¸¥à¸°à¸à¸´à¸à¹à¸à¹à¸?
+# LOCALIZATION NOTE (tabs.closeWarningMultiple):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is not considered since this string is used only for
+# multiple tabs.
+tabs.closeWarningMultiple=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸°à¸à¸´à¸ #1 à¹à¸à¹à¸ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸?
+# LOCALIZATION NOTE (tabs.closeWarningMultipleSessionRestore2):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The forms for 0 or 1 items are not considered since this string is used only
+# for multiple tabs.
+# If
+# "Tabs in non-private windows will be restored when you restart"
+# is difficult to translate, you could translate
+# "Tabs (except those in private windows) will be restored when you restart"
+# instead.
+tabs.closeWarningMultipleSessionRestore2=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸°à¸à¸´à¸ #1 à¹à¸à¹à¸ à¹à¸à¹à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸¡à¹à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸°à¸à¸¹à¸à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸?
+tabs.closeButtonMultiple=à¸à¸´à¸à¹à¸à¹à¸
+tabs.closeWarningPromptMe=à¹à¸à¸·à¸à¸à¹à¸¡à¸·à¹à¸à¸à¸°à¸à¸´à¸à¹à¸à¹à¸à¸«à¸¥à¸²à¸¢à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindows):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The forms for 0 or 1 items are not considered since this string is used only for
+# multiple windows. The %S replacement form will be replaced with the contents
+# of tabs.closeWarningMultipleWindowsTabSnippet, which will contain the number
+# of tabs in these windows.
+# Note that every one of these plural forms must contain one instance of '%S'.
+tabs.closeWarningMultipleWindows=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸°à¸à¸´à¸ #1 หà¸à¹à¸²à¸à¹à¸²à¸ %S à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸?
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindowsSessionRestore2):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The forms for 0 or 1 items are not considered since this string is used only for
+# multiple windows. The %S replacement form will be replaced with the contents
+# of tabs.closeWarningMultipleWindowsTabSnippet, which will contain the number
+# of tabs in these windows.
+# If
+# "Tabs in non-private windows will be restored when you restart"
+# is difficult to translate, you could translate
+# "Tabs (except those in private windows) will be restored when you restart"
+# instead.
+# Note that every one of these plural forms must contain one instance of '%S'.
+tabs.closeWarningMultipleWindowsSessionRestore2=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸°à¸à¸´à¸ #1 หà¸à¹à¸²à¸à¹à¸²à¸ %S à¹à¸à¹à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸¡à¹à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸°à¸à¸¹à¸à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸¡à¸·à¹à¸à¸à¸¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸?
+
+# LOCALIZATION NOTE (tabs.closeWarningMultipleWindowsTabSnippet):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# The singular form is not considered since this string is used only for
+# multiple windows which must contain multiple tabs (in total).
+# This string will be inserted in tabs.closeWarningMultipleWindows
+tabs.closeWarningMultipleWindowsTabSnippet=à¸à¸±à¸ #1 à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (tabs.closeTabs.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be closed. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.closeTabs.tooltip=à¸à¸´à¸ #1 à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (tabs.closeSelectedTabs.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %S is the keyboard shortcut for closing the current tab.
+# #1 is the number of tabs that will be closed. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.closeSelectedTabs.tooltip=à¸à¸´à¸ #1 à¹à¸à¹à¸ (%S)
+
+# LOCALIZATION NOTE (tabs.muteAudio2.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %S is the keyboard shortcut for "Mute tab".
+# #1 is the number of tabs that will be muted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.muteAudio2.tooltip=à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸ #1 à¹à¸à¹à¸ (%S)
+
+# LOCALIZATION NOTE (tabs.unmuteAudio2.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %S is the keyboard shortcut for "Unmute tab".
+# #1 is the number of tabs that will be unmuted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.unmuteAudio2.tooltip=à¹à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸ #1 à¹à¸à¹à¸ (%S)
+
+# LOCALIZATION NOTE (tabs.muteAudio2.background.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be muted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.muteAudio2.background.tooltip=à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸ #1 à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (tabs.unmuteAudio2.background.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will be unmuted. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.unmuteAudio2.background.tooltip=à¹à¸à¸´à¸à¹à¸ªà¸µà¸¢à¸ #1 à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (tabs.unblockAudio2.tooltip):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# #1 is the number of tabs that will have their audio unblocked. This is ignored for the
+# single tab case in English, but can be used by other locales as necessary.
+tabs.unblockAudio2.tooltip=à¹à¸¥à¹à¸ #1 à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (tabs.allowTabFocusByPromptForSite):
+# %S is the hostname of the site where dialogs are allowed to switch tabs
+tabs.allowTabFocusByPromptForSite=à¸à¸à¸¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¸à¸à¸²à¸ %S à¹à¸à¸·à¹à¸à¸à¸³à¸à¸¸à¸à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (tabs.containers.tooltip):
+# Displayed as a tooltip on container tabs
+# %1$S is the title of the current tab
+# %2$S is the name of the current container
+tabs.containers.tooltip=%1$S - %2$S
+
+# LOCALIZATION NOTE (tabs.openWarningTitle, tabs.openWarningMultipleBranded, tabs.openButtonMultiple, tabs.openWarningPromptMeBranded):
+# These items are moved from chrome/browser/places/places.properties
+# Now they are not specific to bookmark.
+tabs.openWarningTitle=ยืà¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¸´à¸
+tabs.openWarningMultipleBranded=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸°à¹à¸à¸´à¸ %S à¹à¸à¹à¸ à¸à¸¶à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹ %S à¸à¹à¸²à¸¥à¸à¸à¸à¸°à¸à¸µà¹à¸«à¸à¹à¸²à¸à¸³à¸¥à¸±à¸à¹à¸«à¸¥à¸ à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸?
+tabs.openButtonMultiple=à¹à¸à¸´à¸à¹à¸à¹à¸
+tabs.openWarningPromptMeBranded=à¹à¸à¸·à¸à¸à¸à¸±à¸à¹à¸¡à¸·à¹à¸à¸à¸²à¸£à¹à¸à¸´à¸à¸«à¸¥à¸²à¸¢à¹à¸à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¹ %S à¸à¹à¸²à¸¥à¸
diff --git a/browser/chrome/browser/taskbar.properties b/browser/chrome/browser/taskbar.properties
new file mode 100644
index 00000000000..ab5be22ea41
--- /dev/null
+++ b/browser/chrome/browser/taskbar.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+taskbar.tasks.newTab.label=à¹à¸à¸´à¸à¹à¸à¹à¸à¹à¸«à¸¡à¹
+taskbar.tasks.newTab.description=à¹à¸à¸´à¸à¹à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹
+taskbar.tasks.newWindow.label=à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹
+taskbar.tasks.newWindow.description=à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹
+taskbar.tasks.newPrivateWindow.label=หà¸à¹à¸²à¸à¹à¸²à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¹à¸«à¸¡à¹
+taskbar.tasks.newPrivateWindow.description=à¹à¸à¸´à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¹à¸«à¸¡à¸à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§
+taskbar.frequent.label=à¹à¸à¹à¸à¹à¸à¸¢
+taskbar.recent.label=ลà¹à¸²à¸ªà¸¸à¸
diff --git a/browser/chrome/browser/translation.dtd b/browser/chrome/browser/translation.dtd
new file mode 100644
index 00000000000..47598885637
--- /dev/null
+++ b/browser/chrome/browser/translation.dtd
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/browser/chrome/browser/translation.properties b/browser/chrome/browser/translation.properties
new file mode 100644
index 00000000000..ac1c2513132
--- /dev/null
+++ b/browser/chrome/browser/translation.properties
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (translation.options.neverForLanguage.label):
+# %S is a language name coming from the global/languageNames.properties file.
+translation.options.neverForLanguage.label=à¹à¸¡à¹à¹à¸à¸¥ %S à¹à¸ªà¸¡à¸
+
+# LOCALIZATION NOTE (translation.options.neverForLanguage.accesskey):
+# The accesskey value used here should not clash with the values used for
+# translation.options.*.accesskey in translation.dtd
+translation.options.neverForLanguage.accesskey=ม
diff --git a/browser/chrome/browser/uiDensity.properties b/browser/chrome/browser/uiDensity.properties
new file mode 100644
index 00000000000..77a901446d0
--- /dev/null
+++ b/browser/chrome/browser/uiDensity.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+uiDensity.menuitem-touch.acceltext=à¹à¸«à¸¡à¸à¹à¸à¹à¸à¹à¸¥à¹à¸à¸à¸¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹
diff --git a/browser/chrome/browser/webrtcIndicator.properties b/browser/chrome/browser/webrtcIndicator.properties
new file mode 100644
index 00000000000..72417775667
--- /dev/null
+++ b/browser/chrome/browser/webrtcIndicator.properties
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE : FILE This file contains the webrtc global indicator strings
+
+# LOCALIZATION NOTE (webrtcIndicator.windowtitle): %S is the brand name (e.g. Firefox).
+# This string is used so that the window has a title in tools that enumerate/look for window
+# titles. It is not normally visible anywhere.
+webrtcIndicator.windowtitle = %S - à¸à¸±à¸§à¸à¹à¸à¸à¸µà¹à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+
+webrtcIndicator.sharingCameraAndMicrophone.tooltip = à¸à¸¥à¹à¸à¸à¹à¸¥à¸°à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+webrtcIndicator.sharingCamera.tooltip = à¸à¸¥à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+webrtcIndicator.sharingMicrophone.tooltip = à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+webrtcIndicator.sharingApplication.tooltip = à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+webrtcIndicator.sharingScreen.tooltip = หà¸à¹à¸²à¸à¸à¸à¸à¸à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+webrtcIndicator.sharingWindow.tooltip = หà¸à¹à¸²à¸à¹à¸²à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+webrtcIndicator.sharingBrowser.tooltip = à¹à¸à¹à¸à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¹à¸à¹à¸à¸à¸±à¸ à¸à¸¥à¸´à¸à¹à¸à¸·à¹à¸à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+
+
+# LOCALIZATION NOTE : The following strings are only used on Mac for
+# menus attached to icons near the clock on the mac menubar.
+
+# LOCALIZATION NOTE (webrtcIndicator.sharing*With.menuitem):
+# %S is the title of the tab using the share.
+webrtcIndicator.sharingCameraWith.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸¥à¹à¸à¸à¸à¸±à¸ â%Sâ
+webrtcIndicator.sharingMicrophoneWith.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸±à¸ â%Sâ
+webrtcIndicator.sharingApplicationWith.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸±à¸ â%Sâ
+webrtcIndicator.sharingScreenWith.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸à¸à¸à¸±à¸ â%Sâ
+webrtcIndicator.sharingWindowWith.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¸ â%Sâ
+webrtcIndicator.sharingBrowserWith.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¹à¸à¸à¸±à¸ â%Sâ
+webrtcIndicator.controlSharing.menuitem = à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸
+# LOCALIZATION NOTE (webrtcIndicator.sharingCameraWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingCameraWithNTabs.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸¥à¹à¸à¸à¸à¸±à¸ #1 à¹à¸à¹à¸
+# LOCALIZATION NOTE (webrtcIndicator.sharingMicrophoneWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingMicrophoneWithNTabs.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸à¸à¸±à¸ #1 à¹à¸à¹à¸
+# LOCALIZATION NOTE (webrtcIndicator.sharingApplicationWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingApplicationWithNTabs.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸±à¸ #1 à¹à¸à¹à¸
+# LOCALIZATION NOTE (webrtcIndicator.sharingScreenWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingScreenWithNTabs.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸à¸à¸à¸±à¸ #1 à¹à¸à¹à¸
+# LOCALIZATION NOTE (webrtcIndicator.sharingWindowWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+webrtcIndicator.sharingWindowWithNTabs.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¸ #1 à¹à¸à¹à¸
+# LOCALIZATION NOTE (webrtcIndicator.sharingBrowserWithNTabs.menuitem):
+# Semicolon-separated list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This message is shown when the contents of a tab is shared during a WebRTC
+# session, which currently is only possible with Loop/Hello.
+webrtcIndicator.sharingBrowserWithNTabs.menuitem = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸±à¸à¹à¸à¹à¸à¸à¸±à¸ #1 à¹à¸à¹à¸
+# LOCALIZATION NOTE (webrtcIndicator.controlSharingOn.menuitem):
+# %S is the title of the tab using the share.
+webrtcIndicator.controlSharingOn.menuitem = à¸à¸§à¸à¸à¸¸à¸¡à¸à¸²à¸£à¹à¸à¹à¸à¸à¸±à¸à¸à¸ â%Sâ
diff --git a/browser/chrome/overrides/appstrings.properties b/browser/chrome/overrides/appstrings.properties
new file mode 100644
index 00000000000..a7f3abeea3a
--- /dev/null
+++ b/browser/chrome/overrides/appstrings.properties
@@ -0,0 +1,44 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+malformedURI2=à¹à¸à¸£à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸§à¹à¸² URL à¸à¸¹à¸à¸à¹à¸à¸à¹à¸¥à¸°à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+fileNotFound=Firefox à¹à¸¡à¹à¸à¸à¹à¸à¸¥à¹à¸à¸µà¹ %S
+fileAccessDenied=à¹à¸à¸¥à¹à¸à¸µà¹ %S à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸²à¸à¹à¸à¹
+dnsNotFound2=à¹à¸£à¸²à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹ %S
+unknownProtocolFound=Firefox à¹à¸¡à¹à¸à¸£à¸²à¸à¸§à¸´à¸à¸µà¹à¸à¸´à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹ à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¸¶à¹à¸à¹à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹ (%S) à¹à¸¡à¹à¸ªà¸±à¸¡à¸à¸±à¸à¸à¹à¸à¸±à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¹à¸ ๠หรืà¸à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸à¹à¸à¸à¸£à¸´à¸à¸à¸à¸µà¹
+connectionFailure=Firefox à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹ %S
+netInterrupt=à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸¢à¸±à¸ %S à¸à¸¹à¸à¸à¸±à¸à¸à¸±à¸à¸«à¸§à¸°à¸à¸à¸°à¸à¸µà¹à¸«à¸à¹à¸²à¸à¸³à¸¥à¸±à¸à¹à¸«à¸¥à¸
+netTimeout=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹ %S à¹à¸à¹à¹à¸§à¸¥à¸²à¸à¸à¸à¸ªà¸à¸à¸à¸à¸²à¸à¹à¸à¸´à¸à¹à¸
+redirectLoop=Firefox à¸à¸£à¸§à¸à¸à¸à¸§à¹à¸²à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸³à¸¥à¸±à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸ªà¹à¸à¸à¸²à¸à¸à¸³à¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¹à¸à¸à¸²à¸à¸à¸µà¹à¹à¸¡à¹à¸¡à¸µà¸§à¸±à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+## LOCALIZATION NOTE (confirmRepostPrompt): In this item, donât translate "%S"
+confirmRepostPrompt=à¹à¸à¸·à¹à¸à¹à¸ªà¸à¸à¸à¸¥à¸«à¸à¹à¸²à¸à¸µà¹ %S à¸à¸°à¸à¹à¸à¸à¸ªà¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸¶à¹à¸à¸à¸°à¸à¸³à¸à¹à¸³à¸à¸²à¸£à¸à¸£à¸°à¸à¸³à¹à¸ ๠(à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸ à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸«à¸£à¸·à¸à¸à¸²à¸£à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸³à¸ªà¸±à¹à¸à¸à¸·à¹à¸) à¸à¸µà¹à¹à¸à¹à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¹à¸§à¹à¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸µà¹
+resendButton.label=สà¹à¸à¹à¸«à¸¡à¹
+unknownSocketType=Firefox à¹à¸¡à¹à¸à¸£à¸²à¸à¸§à¹à¸²à¸à¸°à¸ªà¸·à¹à¸à¸ªà¸²à¸£à¸à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸¢à¹à¸²à¸à¹à¸£
+netReset=à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸¹à¸à¸à¸±à¸à¸à¸à¸°à¸à¸µà¹à¸«à¸à¹à¸²à¸à¸³à¸¥à¸±à¸à¹à¸«à¸¥à¸
+notCached=à¹à¸¡à¹à¸¡à¸µà¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹à¸à¸µà¸à¸à¹à¸à¹à¸
+netOffline=à¸à¸à¸°à¸à¸µà¹ Firefox à¸à¸¢à¸¹à¹à¹à¸à¹à¸«à¸¡à¸à¸à¸à¸à¹à¸¥à¸à¹à¹à¸¥à¸°à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¹
+isprinting=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¹à¸à¸à¸ªà¸²à¸£à¸à¸à¸°à¸à¸³à¸¥à¸±à¸à¸à¸´à¸¡à¸à¹à¸«à¸£à¸·à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸à¹à¸à¸à¸à¸´à¸¡à¸à¹
+deniedPortAccess=à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸£à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸¶à¹à¸à¸à¸à¸à¸´à¹à¸à¹à¸ªà¸³à¸«à¸£à¸±à¸à¸§à¸±à¸à¸à¸¸à¸à¸£à¸°à¸ªà¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸à¹à¸«à¸à¸·à¸à¸à¸²à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¹à¸ Firefox à¹à¸à¹à¸¢à¸à¹à¸¥à¸´à¸à¸à¸³à¸à¸à¸à¸±à¸à¸à¸¥à¹à¸²à¸§à¹à¸à¸·à¹à¸à¸à¸à¸à¹à¸à¸à¸à¸¸à¸
+proxyResolveFailure=Firefox à¸à¸¹à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸«à¹à¹à¸à¹à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸£à¹à¸à¸à¸à¸µà¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸«à¸²à¸à¸
+proxyConnectFailure=Firefox à¸à¸¹à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸«à¹à¹à¸à¹à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸£à¹à¸à¸à¸à¸µà¸à¸µà¹à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+contentEncodingError=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸ªà¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¹à¸à¹à¸£à¸¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸µà¸à¸à¸±à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸
+unsafeContentType=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸ªà¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸¡à¸µà¸à¸à¸´à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸²à¸à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸à¸°à¹à¸à¸´à¸ à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹
+externalProtocolTitle=à¸à¸³à¸à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¸ ายà¸à¸à¸
+externalProtocolPrompt=à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸ ายà¸à¸à¸à¸à¹à¸à¸à¸à¸¹à¸à¹à¸à¸´à¸à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸ %1$S: ลิà¸à¸à¹\n\n\nลิà¸à¸à¹à¸à¸µà¹à¸à¸:\n\n%2$S\n\nà¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸: %3$S\n\n\nหาà¸à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸à¸²à¸à¸«à¸§à¸±à¸à¸à¸³à¸à¸à¸à¸µà¹ มัà¸à¸à¸²à¸à¸à¸°à¹à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¢à¸²à¸¢à¸²à¸¡à¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¸£à¸°à¹à¸¢à¸à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¸·à¹à¸à¸à¸±à¹à¸ ยà¸à¹à¸¥à¸´à¸à¸à¸³à¸à¸à¸à¸µà¹à¹à¸§à¹à¸à¹à¸à¹à¸à¸¸à¸à¸à¸°à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸³à¸à¸à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸à¸£à¸°à¸ªà¸à¸à¹à¸£à¹à¸²à¸¢\n
+#LOCALIZATION NOTE (externalProtocolUnknown): The following string is shown if the application name can't be determined
+externalProtocolUnknown=<à¹à¸¡à¹à¸à¸£à¸²à¸>
+externalProtocolChkMsg=à¸à¸à¸à¸³à¸à¸²à¸£à¹à¸¥à¸·à¸à¸à¸à¸à¸à¸à¸±à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸¥à¸´à¸à¸à¹à¸à¸£à¸°à¹à¸ à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸¡à¸
+externalProtocolLaunchBtn=à¹à¸à¸´à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸
+malwareBlocked=à¹à¸à¸à¹à¸à¸µà¹ %S à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸£à¸¸à¸à¸£à¸²à¸à¹à¸¥à¸°à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸¡à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¸¸à¸
+harmfulBlocked=à¹à¸à¸à¹à¸à¸µà¹ %S à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸²à¸à¹à¸à¹à¸à¸à¸±à¸à¸à¸£à¸²à¸¢à¹à¸¥à¸°à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸¡à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¸¸à¸
+unwantedBlocked=à¹à¸à¸à¹à¸à¸µà¹ %S à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¹à¸¡à¹à¸à¸¶à¸à¸à¸£à¸°à¸ªà¸à¸à¹à¹à¸¥à¸°à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸¡à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¸¸à¸
+deceptiveBlocked=หà¸à¹à¸²à¹à¸§à¹à¸à¸à¸µà¹à¸à¸µà¹ %S à¸à¸¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸§à¹à¸²à¹à¸à¹à¸à¹à¸à¸à¹à¸«à¸¥à¸à¸à¸¥à¸§à¸à¹à¸¥à¸°à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸¡à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¸¸à¸
+cspBlocked=หà¸à¹à¸²à¸à¸µà¹à¸¡à¸µà¸à¹à¸¢à¸à¸²à¸¢à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸«à¸à¹à¸²à¸à¸¹à¸à¹à¸«à¸¥à¸à¸à¹à¸§à¸¢à¸§à¸´à¸à¸µà¸à¸µà¹
+corruptedContentErrorv2=à¹à¸à¸à¹à¸à¸µà¹ %S à¹à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸°à¹à¸¡à¸´à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸à¸¡à¹à¸à¸¡à¹à¸à¹
+remoteXUL=หà¸à¹à¸²à¸à¸µà¹à¹à¸à¹à¹à¸à¸à¹à¸à¹à¸¥à¸¢à¸µà¸à¸µà¹à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸à¸à¸¶à¹à¸à¹à¸¡à¹à¸¡à¸µà¹à¸«à¹à¹à¸à¹à¹à¸à¸¢à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸µà¸à¸à¹à¸à¹à¸à¹à¸ Firefox
+## LOCALIZATION NOTE (sslv3Used) - Do not translate "%S".
+sslv3Used=Firefox à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸±à¸à¸à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¸à¸ %S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸à¹ SSLv3 à¸à¸¶à¹à¸à¹à¸à¹à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¸à¸µà¹à¸¡à¸µà¸à¸±à¸à¸«à¸²à¸à¹à¸²à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+inadequateSecurityError=à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸¥à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¸£à¸°à¸à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¹à¸¡à¹à¹à¸à¸µà¸¢à¸à¸à¸
+blockedByPolicy=à¸à¸à¸à¹à¸à¸£à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸«à¸à¹à¸²à¸«à¸£à¸·à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹
+networkProtocolError=Firefox à¹à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸°à¹à¸¡à¸´à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸µà¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸à¸¡à¹à¸à¸¡à¹à¸à¹
diff --git a/browser/chrome/overrides/netError.dtd b/browser/chrome/overrides/netError.dtd
new file mode 100644
index 00000000000..bb6eb32cbfd
--- /dev/null
+++ b/browser/chrome/overrides/netError.dtd
@@ -0,0 +1,189 @@
+
+
+
+%brandDTD;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+หาà¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸±à¹à¸à¸à¸¹à¸à¸à¹à¸à¸ à¸à¸µà¹à¸à¸·à¸à¸ªà¸²à¸¡à¸ªà¸´à¹à¸à¸à¸·à¹à¸ ๠à¸à¸µà¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¸à¸:
+
+ - ลà¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¸ ายหลัà¸
+ - à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸¸à¸
+ - หาà¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¢à¸¹à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¸«à¸¥à¸±à¸à¹à¸à¸£à¹à¸§à¸à¸¥à¸¥à¹ à¸à¸£à¸§à¸à¸ªà¸à¸à¸§à¹à¸² &brandShortName; มีà¸à¸²à¸£à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸§à¹à¸
+
+">
+
+
+ à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸·à¹à¸à¹à¸à¸¥à¹à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸±à¸§à¸à¸´à¸¡à¸à¹à¹à¸«à¸à¹à¹à¸¥à¹à¸à¸«à¸£à¸·à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸²à¸£à¸à¸´à¸¡à¸à¹à¸à¸·à¹à¸ ๠à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸à¸·à¹à¸à¸à¸¹à¸«à¸²à¸à¹à¸à¸¥à¹à¸à¸¹à¸à¸¢à¹à¸²à¸¢ à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸ หรืà¸à¸¥à¸ ">
+
+
+ à¹à¸à¸¥à¹à¸à¸²à¸à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸ ยà¹à¸²à¸¢ หรืà¸à¸ªà¸´à¸à¸à¸´à¸à¸à¸¸à¸à¸²à¸à¸à¸à¸à¹à¸à¸¥à¹à¸à¸²à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸ ">
+
+
+&brandShortName; à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸à¹à¸à¹à¸§à¸¢à¹à¸«à¸à¸¸à¸à¸¥à¸à¸²à¸à¸à¸¢à¹à¸²à¸
">
+
+
+à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸µà¹à¸à¹à¸à¸à¸à¸µà¹à¸à¸¸à¸à¸à¸°à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸´à¸à¹à¸à¸à¸£à¹à¹à¸à¹à¸
+">
+
+
+
+
+
+
+
+
+
+
+
+à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹à¸à¸à¹à¸¡à¹à¸¡à¸µà¹à¸à¹à¸à¸à¸à¸à¸ &brandShortName;- à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย &brandShortName; à¸à¸°à¹à¸¡à¹à¸à¸à¹à¸à¸à¸ªà¸²à¸£à¸à¸µà¹à¸¥à¸°à¹à¸à¸µà¸¢à¸à¸à¹à¸à¸à¹à¸«à¹à¹à¸«à¸¡à¹à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
- à¸à¸¥à¸´à¸ ลà¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸ à¹à¸à¸·à¹à¸à¸à¸à¹à¸à¸à¸ªà¸²à¸£à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸«à¸¡à¹
">
+
+
+ à¸à¸ "ลà¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸" à¹à¸à¸·à¹à¸à¸ªà¸¥à¸±à¸à¹à¸à¹à¸à¹à¸«à¸¡à¸à¸à¸à¸à¹à¸¥à¸à¹à¹à¸¥à¸°à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¹à¸«à¸¡à¹ ">
+
+
+ à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹ ">
+
+
+ à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹ ">
+
+
+
+
+
+
+
+
+ à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸·à¹à¸à¹à¸à¸·à¹à¸à¹à¸à¸´à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹ ">
+
+
+ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¸¹à¸à¸à¹à¸à¸ à¸à¸´à¸à¸à¹à¸à¸à¸¹à¹à¸à¸¹à¹à¸¥à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸¸à¸à¹à¸à¸·à¹à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸£à¹à¸à¸à¸à¸µà¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸à¸à¸¢à¸¹à¹ ">
+
+
+ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸à¸£à¹à¸à¸à¸à¸µà¸à¸¹à¸à¸à¹à¸à¸ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸µà¹à¸à¸³à¸à¸²à¸à¹à¸à¹ หาà¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸«à¸£à¸·à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¸à¸à¸à¹à¸à¸à¸à¹à¸§à¸¢à¹à¸à¸£à¹à¸§à¸à¸¥à¸¥à¹à¸«à¸£à¸·à¸à¸à¸£à¹à¸à¸à¸à¸µ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸² &brandShortName; à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸§à¹à¸ ">
+
+
+ à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¸à¸²à¸à¸à¸£à¸±à¹à¸à¸à¸²à¸à¸¡à¸µà¸ªà¸²à¹à¸«à¸à¸¸à¸¡à¸²à¸à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸«à¸£à¸·à¸à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸¸à¸à¸à¸µà¹ ">
+
+
+ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸±à¸§à¸à¸±à¸à¸à¸²à¸£à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยสà¹à¸§à¸à¸à¸¸à¸à¸à¸¥à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¢à¸¹à¹ สิà¹à¸à¸à¸µà¹à¸à¸²à¸à¹à¸à¸´à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸µà¹à¹à¸¡à¹à¸¡à¸²à¸à¸£à¸à¸²à¸à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹ ">
+
+
+ à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸ªà¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¹à¸à¹à¸£à¸±à¸ à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹ ">
+
+
+
+
+
+
+ à¹à¸à¹à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸à¸§à¸à¹à¸à¸²à¹à¸¡à¹à¹à¸«à¸¡à¸²à¸°à¸ªà¸¡ à¹à¸à¸·à¹à¸à¸à¸à¸à¹à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸¹à¸à¸à¹à¸¡à¸¢ &brandShortName; à¸à¸¶à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸¢à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹">
+
+ à¸à¹à¸²à¸à¸¸à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸à¸à¹à¸à¸µà¹ à¸à¸¹à¹à¹à¸à¸¡à¸à¸µà¸à¸²à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸¥à¹à¸§à¸à¸à¹à¸à¸¡à¸¹à¸¥ à¹à¸à¹à¸ รหัสà¸à¹à¸²à¸ à¸à¸µà¹à¸¡à¸¥ หรืà¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸">
+ à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸µà¹à¸à¸¥à¸à¸à¸ ัย">
+
+ à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¸à¸¹à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸¢à¹à¸²à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸à¸«à¸£à¸·à¸à¸à¸²à¸¬à¸´à¸à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¹à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸´à¸">
+
+
+
+
+
+à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¸¡à¸±à¸à¹à¸à¸´à¸à¸à¸¶à¹à¸à¸à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹ à¹à¸¥à¸°à¹à¸¡à¹à¸¡à¸µà¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹
+à¸à¹à¸²à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸£à¸´à¸©à¸±à¸à¸«à¸£à¸·à¸à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸§à¸£à¸±à¸ª à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¹à¸à¸à¸à¸à¸§à¸²à¸¡à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸à¸à¸²à¸à¸à¸µà¸¡à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¹à¸à¹ à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¹à¸«à¹à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸£à¸²à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹
+">
+
+à¸à¸²à¸¬à¸´à¸à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¹à¸ à¸à¸£à¸§à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¹à¸à¸§à¸±à¸à¸à¸µà¹ à¹à¸§à¸¥à¸² à¹à¸¥à¸°à¹à¸à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸à¹à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸ à¹à¸¥à¹à¸§à¸¥à¸à¸à¸£à¸µà¹à¸à¸£à¸
+à¸à¹à¸²à¸à¸²à¸¬à¸´à¸à¸²à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸à¹à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§ à¹à¸ªà¸à¸à¸§à¹à¸²à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸²à¸à¸à¸°à¸à¸¹à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸¢à¹à¸²à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¹à¸¥à¸°à¹à¸¡à¹à¸¡à¸µà¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¹à¸«à¹à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸£à¸²à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹
+">
+
+à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¸¡à¸±à¸à¹à¸à¸´à¸à¸à¸¶à¹à¸à¸à¸±à¸à¹à¸§à¹à¸à¹à¸à¸à¹ à¹à¸¥à¸°à¹à¸¡à¹à¸¡à¸µà¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹ à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¹à¸«à¹à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸£à¸²à¸à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹
+">
+
+ à¹à¸à¸à¹à¸à¸²à¸à¹à¸¡à¹à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§à¸«à¸£à¸·à¸à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸à¸«à¸à¸±à¸à¹à¸à¸´à¸à¹à¸ ลà¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¸à¸µà¸à¸ªà¸±à¸à¸à¸£à¸¹à¹ หาà¸à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¹à¸ ๠à¹à¸à¹ à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸ หาà¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸«à¸£à¸·à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸¸à¸à¸à¸¹à¸à¸à¸à¸à¹à¸à¸à¸à¹à¸§à¸¢à¹à¸à¸£à¹à¸§à¸à¸¥à¸¥à¹à¸«à¸£à¸·à¸à¸à¸£à¹à¸à¸à¸à¸µ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸² &brandShortName; à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸§à¹à¸ ">
+
+
+&brandShortName; à¹à¸à¹à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸«à¸à¹à¸²à¸à¸µà¹à¹à¸«à¸¥à¸à¸à¹à¸§à¸¢à¸§à¸´à¸à¸µà¸à¸µà¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸«à¸à¹à¸²à¸¡à¸µà¸à¹à¸¢à¸à¸²à¸¢à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¹à¸à¸·à¹à¸à¸«à¸²à¸à¸µà¹à¹à¸¡à¹à¸à¸à¸¸à¸à¸²à¸">
+
+
+à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸ªà¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸£à¸§à¸à¸à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸ªà¹à¸à¸à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥- à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹
">
+
+
+
+
+
+
+
+
+
+
+- à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹
">
+
+
+
+
+
+
+ &brandShortName; à¹à¸¡à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸à¸µà¹ à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸¬à¸´à¸à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸ªà¸à¸à¹à¸§à¸¥à¸²à¸à¸´à¸à¹à¸¥à¸°à¸ªà¸´à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸²à¸£à¸¢à¸±à¸à¸¢à¸±à¹à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸µà¹à¸à¸¥à¸à¸à¸ ัย à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸¡à¸µà¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸§à¸¥à¸²à¹à¸à¹à¸ à¸à¸¶à¹à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸§à¸£à¹à¸à¹à¸à¸à¸·à¸ à¹à¸à¸à¸²à¸£à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹ à¹à¸«à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸§à¸±à¸à¸à¸µà¹à¹à¸¥à¸°à¹à¸§à¸¥à¸²à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸«à¹à¸à¸£à¸à¸à¸±à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸à¸£à¸´à¸
">
+&brandShortName; à¹à¸¡à¹à¹à¸à¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸à¸µà¹ à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸²à¸¬à¸´à¸à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸ªà¸à¸à¹à¸§à¸¥à¸²à¸à¸´à¸à¹à¸¥à¸°à¸ªà¸´à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¸à¸²à¸£à¸¢à¸±à¸à¸¢à¸±à¹à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸µà¹à¸à¸¥à¸à¸à¸ ัย à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸¡à¸µà¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸§à¸¥à¸²à¹à¸à¹à¸ à¹à¸à¸à¸²à¸£à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹ à¹à¸«à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸§à¸±à¸à¸à¸µà¹à¹à¸¥à¸°à¹à¸§à¸¥à¸²à¹à¸à¹à¸à¸£à¸·à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸«à¹à¸à¸£à¸à¸à¸±à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸à¸£à¸´à¸
">
+
+
+
+
+
+
+ มีà¸à¹à¸¢à¸à¸²à¸¢à¸à¸²à¸£à¸£à¸±à¸à¸©à¸²à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¹à¸£à¸µà¸¢à¸à¸§à¹à¸² HTTP Strict Transport Security (HSTS) à¸à¸¶à¹à¸à¸«à¸¡à¸²à¸¢à¸à¸§à¸²à¸¡à¸§à¹à¸² &brandShortName; สามารà¸à¸à¸³à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¹à¸à¸¢à¹à¸²à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸à¹à¸²à¸à¸±à¹à¸ à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸´à¹à¸¡à¸à¹à¸à¸¢à¸à¹à¸§à¹à¸à¹à¸à¸·à¹à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¹">
+
+
+
+
+ à¹à¸à¹à¹à¸à¸à¹à¸à¹à¸¥à¸¢à¸µà¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸¥à¹à¸²à¸ªà¸¡à¸±à¸¢à¹à¸¥à¸°à¹à¸ªà¸µà¹à¸¢à¸à¸à¹à¸à¸à¸²à¸£à¸à¸¹à¸à¹à¸à¸¡à¸à¸µ à¸à¸¹à¹à¹à¸à¸¡à¸à¸µà¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸´à¸à¹à¸à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¸¸à¸à¸à¸´à¸à¸§à¹à¸²à¸à¸¥à¸à¸à¸ ัยà¹à¸à¹à¸à¸¢à¹à¸²à¸à¸à¹à¸²à¸¢à¸à¸²à¸¢ à¸à¸¹à¹à¸à¸¹à¹à¸¥à¹à¸§à¹à¸à¹à¸à¸à¹à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¹à¸à¹à¹à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¹à¸à¸à¸à¸µà¹à¸à¸¸à¸à¸à¸°à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡à¹à¸à¸à¹à¹à¸à¹à¸£à¸«à¸±à¸ªà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸: NS_ERROR_NET_INADEQUATE_SECURITY
">
+
+
+
+
+ à¸à¸¹à¹à¸«à¸¡à¸·à¸à¸à¸à¸°à¹à¸à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¥à¸à¸à¸ ัย à¹à¸à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¢à¹à¸²à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸à¹ à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¸´à¸à¸à¸²à¸ à¸à¸¶à¹à¸à¸à¸²à¸à¹à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹à¸à¸µà¹à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸¸à¸">
+
+
+ à¹à¸ªà¸à¸à¸§à¹à¸²à¸à¸²à¸à¹à¸à¹à¸à¸à¸²à¸£à¹à¸à¸¡à¸à¸µà¹à¸¥à¸°à¸à¸¸à¸à¹à¸¡à¹à¸à¸§à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸à¹à¸à¸µà¹">
+ à¹à¸ªà¸à¸à¸§à¹à¸²à¸à¸²à¸à¹à¸à¹à¸à¸à¸²à¸£à¹à¸à¸¡à¸à¸µ à¹à¸¥à¸°à¹à¸¡à¹à¸¡à¸µà¸§à¸´à¸à¸µà¹à¸à¸à¸µà¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸à¹">
+
+
+ à¸à¸¶à¹à¸à¸à¸³à¹à¸«à¹ &brandShortName; à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¢à¹à¸²à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸à¹ à¹à¸¡à¸·à¹à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸¢à¸µà¹à¸¢à¸¡à¸à¸¡ à¹à¸«à¹à¸à¸±à¸à¹à¸à¸à¸à¸²à¸¬à¸´à¸à¸²à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¸£à¸°à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸«à¹à¹à¸à¹à¸à¸§à¸±à¸à¸à¸µà¹ à¹à¸§à¸¥à¸² à¹à¸¥à¸°à¹à¸à¸à¹à¸§à¸¥à¸²à¸à¸±à¸à¸à¸¸à¸à¸±à¸ à¹à¸¥à¹à¸§à¸£à¸µà¹à¸à¸£à¸ ">
+
+
+
+
+
+à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸ªà¸à¸à¸«à¸à¹à¸²à¸à¸µà¹à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¸à¸¹à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸£à¸§à¸à¸à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢- à¹à¸à¸£à¸à¸à¸´à¸à¸à¹à¸à¹à¸à¹à¸²à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¹à¸à¸·à¹à¸à¹à¸à¹à¸à¸à¸§à¸à¹à¸à¸²à¹à¸«à¹à¸à¸£à¸²à¸à¸à¸¶à¸à¸à¸±à¸à¸«à¸²à¸à¸µà¹
">
diff --git a/browser/chrome/overrides/settingsChange.dtd b/browser/chrome/overrides/settingsChange.dtd
new file mode 100644
index 00000000000..c9b64e924d7
--- /dev/null
+++ b/browser/chrome/overrides/settingsChange.dtd
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/browser/crashreporter/crashreporter-override.ini b/browser/crashreporter/crashreporter-override.ini
new file mode 100644
index 00000000000..171ac589aff
--- /dev/null
+++ b/browser/crashreporter/crashreporter-override.ini
@@ -0,0 +1,8 @@
+; This Source Code Form is subject to the terms of the Mozilla Public
+; License, v. 2.0. If a copy of the MPL was not distributed with this
+; file, You can obtain one at http://mozilla.org/MPL/2.0/.
+; This file is in the UTF-8 encoding
+[Strings]
+; LOCALIZATION NOTE (CrashReporterProductErrorText2): The %s is replaced with a string containing detailed information.
+CrashReporterProductErrorText2=Firefox มีà¸à¸±à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¹à¸«à¸¢à¸¸à¸à¸à¸²à¸£à¸à¸³à¸à¸²à¸ à¹à¸£à¸²à¸à¸°à¸à¸¢à¸²à¸¢à¸²à¸¡à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸à¸¥à¸±à¸à¸¡à¸²à¹à¸«à¸¡à¸·à¸à¸à¹à¸à¸´à¸¡à¹à¸¡à¸·à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹\n\nà¹à¸à¸à¹à¸¡à¹à¸à¸µà¸à¸µà¹à¸à¸±à¸§à¸£à¸²à¸¢à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¸à¹à¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸£à¸²à¸¢à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¸à¹à¸à¸à¹à¸à¹\n\nรายละà¹à¸à¸µà¸¢à¸: %s
+CrashReporterDescriptionText2=Firefox มีà¸à¸±à¸à¸«à¸²à¹à¸¥à¸°à¹à¸à¹à¸«à¸¢à¸¸à¸à¸à¸²à¸£à¸à¸³à¸à¸²à¸ à¹à¸£à¸²à¸à¸°à¸à¸¢à¸²à¸¢à¸²à¸¡à¹à¸£à¸µà¸¢à¸à¸à¸·à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸à¸¥à¸±à¸à¸¡à¸²à¹à¸«à¸¡à¸·à¸à¸à¹à¸à¸´à¸¡à¹à¸¡à¸·à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹\n\nà¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸à¸à¸²à¸£à¸§à¸´à¹à¸à¸£à¸²à¸°à¸«à¹à¹à¸à¹à¸à¸±à¸à¸«à¸²à¸à¸µà¹à¹à¸à¹ à¹à¸à¸¢à¸à¸²à¸£à¸ªà¹à¸à¸£à¸²à¸¢à¸à¸²à¸à¸à¸²à¸£à¸à¸±à¸à¸à¹à¸à¸à¸à¸¥à¸±à¸à¸¡à¸²à¸à¸µà¹à¹à¸£à¸²
diff --git a/browser/defines.inc b/browser/defines.inc
new file mode 100644
index 00000000000..2f56d261731
--- /dev/null
+++ b/browser/defines.inc
@@ -0,0 +1,12 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#filter emptyLines
+
+#define MOZ_LANGPACK_CREATOR mozilla.org
+
+# If non-English locales wish to credit multiple contributors, uncomment this
+# variable definition and use the format specified.
+#define MOZ_LANGPACK_CONTRIBUTORS Nattapong Ekudomsuk Patipat Susumpow Pittaya Sroilong Teerapat Taechaiya Vee Satayamas Wichai Termwuttipreecha
+
+#unfilter emptyLines
diff --git a/browser/extensions/formautofill/formautofill.properties b/browser/extensions/formautofill/formautofill.properties
new file mode 100644
index 00000000000..fe634d80921
--- /dev/null
+++ b/browser/extensions/formautofill/formautofill.properties
@@ -0,0 +1,207 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (saveAddressesMessage): %S is brandShortName. This string is used on the doorhanger to
+# notify users that addresses are saved.
+saveAddressesMessage = %S สามารà¸à¸à¸±à¸à¸à¸¶à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¹ à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¹à¸à¹à¹à¸£à¹à¸§à¸à¸¶à¹à¸
+# LOCALIZATION NOTE (autofillOptionsLink, autofillOptionsLinkOSX): These strings are used in the doorhanger for
+# updating addresses. The link leads users to Form Autofill browser preferences.
+autofillOptionsLink = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+autofillOptionsLinkOSX = à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+# LOCALIZATION NOTE (autofillSecurityOptionsLink, autofillSecurityOptionsLinkOSX): These strings are used
+# in the doorhanger for saving credit card info. The link leads users to Form Autofill browser preferences.
+autofillSecurityOptionsLink = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+autofillSecurityOptionsLinkOSX = à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัย
+# LOCALIZATION NOTE (changeAutofillOptions, changeAutofillOptionsOSX): These strings are used on the doorhanger
+# that notifies users that addresses are saved. The button leads users to Form Autofill browser preferences.
+changeAutofillOptions = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+changeAutofillOptionsOSX = à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+changeAutofillOptionsAccessKey = à¸
+# LOCALIZATION NOTE (addressesSyncCheckbox): If Sync is enabled, this checkbox is displayed on the doorhanger
+# shown when saving addresses.
+addressesSyncCheckbox = à¹à¸à¹à¸à¸à¸±à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸µà¹à¸à¸´à¸à¸à¹
+# LOCALIZATION NOTE (creditCardsSyncCheckbox): If Sync is enabled and credit card sync is available,
+# this checkbox is displayed on the doorhanger shown when saving credit card.
+creditCardsSyncCheckbox = à¹à¸à¹à¸à¸à¸±à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸µà¹à¸à¸´à¸à¸à¹
+# LOCALIZATION NOTE (updateAddressMessage, updateAddressDescriptionLabel, createAddressLabel, updateAddressLabel):
+# Used on the doorhanger when an address change is detected.
+updateAddressMessage = à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸§à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸«à¸¡à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+updateAddressDescriptionLabel = à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸à¸°à¸à¸±à¸à¹à¸à¸:
+createAddressLabel = สรà¹à¸²à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸«à¸¡à¹
+createAddressAccessKey = ส
+updateAddressLabel = à¸à¸±à¸à¹à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+updateAddressAccessKey = à¸
+# LOCALIZATION NOTE (saveCreditCardMessage, saveCreditCardDescriptionLabel, saveCreditCardLabel, cancelCreditCardLabel, neverSaveCreditCardLabel):
+# Used on the doorhanger when users submit payment with credit card.
+# LOCALIZATION NOTE (saveCreditCardMessage): %S is brandShortName.
+saveCreditCardMessage = à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸«à¹ %S à¸à¸±à¸à¸à¸¶à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹? (รหัสà¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸°à¹à¸¡à¹à¸à¸¹à¸à¸à¸±à¸à¸à¸¶à¸)
+saveCreditCardDescriptionLabel = à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸°à¸à¸±à¸à¸à¸¶à¸:
+saveCreditCardLabel = à¸à¸±à¸à¸à¸¶à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+saveCreditCardAccessKey = à¸
+cancelCreditCardLabel = à¹à¸¡à¹à¸à¸±à¸à¸à¸¶à¸
+cancelCreditCardAccessKey = ม
+neverSaveCreditCardLabel = à¹à¸¡à¹à¸à¸±à¸à¸à¸¶à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¹à¸ªà¸¡à¸
+neverSaveCreditCardAccessKey = à¸
+# LOCALIZATION NOTE (updateCreditCardMessage, updateCreditCardDescriptionLabel, createCreditCardLabel, updateCreditCardLabel):
+# Used on the doorhanger when an credit card change is detected.
+updateCreditCardMessage = à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸à¸à¹à¸§à¸¢à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸«à¸¡à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+updateCreditCardDescriptionLabel = à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸°à¸à¸±à¸à¹à¸à¸:
+createCreditCardLabel = สรà¹à¸²à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¹à¸«à¸¡à¹
+createCreditCardAccessKey = ส
+updateCreditCardLabel = à¸à¸±à¸à¹à¸à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+updateCreditCardAccessKey = à¸
+# LOCALIZATION NOTE (openAutofillMessagePanel): Tooltip label for Form Autofill doorhanger icon on address bar.
+openAutofillMessagePanel = à¹à¸à¸´à¸à¹à¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+
+# LOCALIZATION NOTE ( (autocompleteFooterOptionShort, autocompleteFooterOptionOSXShort): Used as a label for the button,
+# displayed at the bottom of the dropdown suggestion, to open Form Autofill browser preferences.
+autocompleteFooterOptionShort = à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+autocompleteFooterOptionOSXShort = à¸à¹à¸²à¸à¸³à¸«à¸à¸
+# LOCALIZATION NOTE (category.address, category.name, category.organization2, category.tel, category.email):
+# Used in autofill drop down suggestion to indicate what other categories Form Autofill will attempt to fill.
+category.address = à¸à¸µà¹à¸à¸¢à¸¹à¹
+category.name = à¸à¸·à¹à¸
+category.organization2 = à¸à¸à¸à¹à¸à¸£
+category.tel = à¹à¸à¸£à¸¨à¸±à¸à¸à¹
+category.email = à¸à¸µà¹à¸¡à¸¥
+# LOCALIZATION NOTE (fieldNameSeparator): This is used as a separator between categories.
+fieldNameSeparator = ,\u0020
+# LOCALIZATION NOTE (phishingWarningMessage, phishingWarningMessage2): The warning
+# text that is displayed for informing users what categories are about to be filled.
+# "%S" will be replaced with a list generated from the pre-defined categories.
+# The text would be e.g. Also autofills organization, phone, email.
+phishingWarningMessage = à¸à¸£à¸à¸ %S à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸à¹à¸à¸à¸±à¸
+phishingWarningMessage2 = à¸à¸£à¸à¸ %S à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+# LOCALIZATION NOTE (insecureFieldWarningDescription): %S is brandShortName. This string is used in drop down
+# suggestion when users try to autofill credit card on an insecure website (without https).
+insecureFieldWarningDescription = %S à¸à¸£à¸§à¸à¸à¸à¹à¸à¸à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัย à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+# LOCALIZATION NOTE (clearFormBtnLabel2): Label for the button in the dropdown menu that used to clear the populated
+# form.
+clearFormBtnLabel2 = ลà¹à¸²à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸à¸µà¹à¸à¸£à¸à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+
+autofillHeader = à¹à¸à¸à¸à¸à¸£à¹à¸¡à¹à¸¥à¸°à¸à¸²à¸£à¸à¸£à¸à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+# LOCALIZATION NOTE (autofillAddressesCheckbox): Label for the checkbox that enables autofilling addresses.
+autofillAddressesCheckbox = à¸à¸£à¸à¸à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+# LOCALIZATION NOTE (learnMoreLabel): Label for the link that leads users to the Form Autofill SUMO page.
+learnMoreLabel = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# LOCALIZATION NOTE (savedAddressesBtnLabel): Label for the button that opens a dialog that shows the
+# list of saved addresses.
+savedAddressesBtnLabel = à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹â¦
+# LOCALIZATION NOTE (autofillCreditCardsCheckbox): Label for the checkbox that enables autofilling credit cards.
+autofillCreditCardsCheckbox = à¸à¸£à¸à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+# LOCALIZATION NOTE (savedCreditCardsBtnLabel): Label for the button that opens a dialog that shows the list
+# of saved credit cards.
+savedCreditCardsBtnLabel = à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹â¦
+
+# LOCALIZATION NOTE (manageAddressesTitle, manageCreditCardsTitle): The dialog title for the list of addresses or
+# credit cards in browser preferences.
+manageAddressesTitle = à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+manageCreditCardsTitle = à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸±à¸à¸à¸¶à¸à¹à¸§à¹
+# LOCALIZATION NOTE (addressesListHeader, creditCardsListHeader): The header for the list of addresses or credit cards
+# in browser preferences.
+addressesListHeader = à¸à¸µà¹à¸à¸¢à¸¹à¹
+creditCardsListHeader = à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+removeBtnLabel = à¹à¸à¸²à¸à¸à¸
+addBtnLabel = à¹à¸à¸´à¹à¸¡â¦
+editBtnLabel = à¹à¸à¹à¹à¸â¦
+# LOCALIZATION NOTE (manageDialogsWidth): This strings sets the default width for windows used to manage addresses and
+# credit cards.
+manageDialogsWidth = 560px
+
+# LOCALIZATION NOTE (addNewAddressTitle, editAddressTitle): The dialog title for creating or editing addresses
+# in browser preferences.
+addNewAddressTitle = à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸«à¸¡à¹
+editAddressTitle = à¹à¸à¹à¹à¸à¸à¸µà¹à¸à¸¢à¸¹à¹
+givenName = à¸à¸·à¹à¸à¸à¸£à¸´à¸
+additionalName = à¸à¸·à¹à¸à¸à¸¥à¸²à¸
+familyName = à¸à¸²à¸¡à¸ªà¸à¸¸à¸¥
+organization2 = à¸à¸à¸à¹à¸à¸£
+streetAddress = à¸à¸µà¹à¸à¸¢à¸¹à¹
+
+## address-level-3 (Sublocality) names
+# LOCALIZATION NOTE (neighborhood): Used in IR, MX
+neighborhood = à¸à¸¸à¸¡à¸à¸
+# LOCALIZATION NOTE (village_township): Used in MY
+village_township = หมูà¹à¸à¹à¸²à¸à¸«à¸£à¸·à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸à¸£à¸à¸
+island = à¹à¸à¸²à¸°
+# LOCALIZATION NOTE (townland): Used in IE
+townland = à¹à¸à¸
+
+## address-level-2 names
+city = à¹à¸¡à¸·à¸à¸
+# LOCALIZATION NOTE (district): Used in HK, SD, SY, TR as Address Level-2
+# and used in KR as Sublocality.
+district = à¹à¸à¸
+# LOCALIZATION NOTE (post_town): Used in GB, NO, SE
+post_town = à¹à¸¡à¸·à¸à¸
+# LOCALIZATION NOTE (suburb): Used in AU as Address Level-2
+# and used in ZZ as Sublocality.
+suburb = à¸à¸²à¸à¹à¸¡à¸·à¸à¸
+
+# address-level-1 names
+province = à¸à¸±à¸à¸«à¸§à¸±à¸
+state = รัà¸
+county = à¹à¸à¸²à¸à¹à¸à¸µ
+# LOCALIZATION NOTE (parish): Used in BB, JM
+parish = à¸à¸³à¸à¸¥
+# LOCALIZATION NOTE (prefecture): Used in JP
+prefecture = à¸à¸³à¹à¸ à¸
+# LOCALIZATION NOTE (area): Used in HK
+area = à¹à¸à¸
+# LOCALIZATION NOTE (do_si): Used in KR
+do_si = à¸à¸±à¸à¸«à¸§à¸±à¸
+# LOCALIZATION NOTE (department): Used in NI, CO
+department = à¸à¸±à¸à¸«à¸§à¸±à¸
+# LOCALIZATION NOTE (emirate): Used in AE
+emirate = à¹à¸à¸¡à¸´à¹à¸£à¸
+# LOCALIZATION NOTE (oblast): Used in RU and UA
+oblast = à¹à¸à¸§à¹à¸
+
+# LOCALIZATION NOTE (pin, postalCode, zip, eircode): Postal code name types
+# LOCALIZATION NOTE (pin): Used in IN
+pin = à¸à¸´à¸
+postalCode = รหัสà¹à¸à¸£à¸©à¸à¸µà¸¢à¹
+zip = รหัสà¹à¸à¸£à¸©à¸à¸µà¸¢à¹
+# LOCALIZATION NOTE (eircode): Used in IE
+eircode = à¹à¸à¸µà¸¢à¸£à¹à¹à¸à¹à¸
+
+country = à¸à¸£à¸°à¹à¸à¸¨à¸«à¸£à¸·à¸à¸ ูมิภาà¸
+tel = à¹à¸à¸£à¸¨à¸±à¸à¸à¹
+email = à¸à¸µà¹à¸¡à¸¥
+cancelBtnLabel = ยà¸à¹à¸¥à¸´à¸
+saveBtnLabel = à¸à¸±à¸à¸à¸¶à¸
+countryWarningMessage2 = à¸à¸à¸°à¸à¸µà¹à¸à¸²à¸£à¸à¸£à¸à¸à¹à¸à¸à¸à¸à¸£à¹à¸¡à¸¡à¸µà¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¹à¸à¸à¸²à¸°à¸à¸²à¸à¸à¸£à¸°à¹à¸à¸¨à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (addNewCreditCardTitle, editCreditCardTitle): The dialog title for creating or editing
+# credit cards in browser preferences.
+addNewCreditCardTitle = à¹à¸à¸´à¹à¸¡à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¹à¸«à¸¡à¹
+editCreditCardTitle = à¹à¸à¹à¹à¸à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+cardNumber = หมายà¹à¸¥à¸à¸à¸±à¸à¸£
+invalidCardNumber = à¹à¸à¸£à¸à¸à¹à¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¸à¸à¸±à¸à¸£à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+nameOnCard = à¸à¸·à¹à¸à¸à¸à¸à¸±à¸à¸£
+cardExpiresMonth = à¹à¸à¸·à¸à¸à¸à¸µà¹à¸«à¸¡à¸à¸à¸²à¸¢à¸¸
+cardExpiresYear = à¸à¸µà¸à¸µà¹à¸«à¸¡à¸à¸à¸²à¸¢à¸¸
+billingAddress = à¸à¸µà¹à¸à¸¢à¸¹à¹à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸£à¸µà¸¢à¸à¹à¸à¹à¸à¹à¸à¸´à¸
+cardNetwork = à¸à¸à¸´à¸à¸à¸±à¸à¸£
+# LOCALIZATION NOTE (cardCVV): Credit card security code https://en.wikipedia.org/wiki/Card_security_code
+cardCVV = CVV
+
+# LOCALIZATION NOTE: (cardNetwork.*): These are brand names and should only be translated when a locale-specific name for that brand is in common use
+cardNetwork.amex = American Express
+cardNetwork.cartebancaire = Carte Bancaire
+cardNetwork.diners = Diners Club
+cardNetwork.discover = Discover
+cardNetwork.jcb = JCB
+cardNetwork.mastercard = MasterCard
+cardNetwork.mir = MIR
+cardNetwork.unionpay = Union Pay
+cardNetwork.visa = Visa
+
+# LOCALIZATION NOTE (editCreditCardPasswordPrompt.*, useCreditCardPasswordPrompt.*): %S is brandShortName.
+editCreditCardPasswordPrompt.win = %S à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸ªà¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸ ยืà¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸±à¸à¸à¸µ Windows à¸à¸µà¹à¸à¹à¸²à¸à¸¥à¹à¸²à¸
+editCreditCardPasswordPrompt.macosx = %S à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸ªà¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+editCreditCardPasswordPrompt.linux = %S à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸ªà¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸
+useCreditCardPasswordPrompt.win = %S à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹ ยืà¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸±à¸à¸à¸µ Windows à¸à¸µà¹à¸à¹à¸²à¸à¸¥à¹à¸²à¸
+useCreditCardPasswordPrompt.macosx = %S à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹
+useCreditCardPasswordPrompt.linux = %S à¸à¸³à¸¥à¸±à¸à¸à¸¢à¸²à¸¢à¸²à¸¡à¸à¸°à¹à¸à¹à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸±à¸à¸£à¹à¸à¸£à¸à¸´à¸à¸à¸µà¹à¸à¸±à¸à¹à¸à¹à¸à¹à¸§à¹
diff --git a/browser/extensions/fxmonitor/fxmonitor.properties b/browser/extensions/fxmonitor/fxmonitor.properties
new file mode 100644
index 00000000000..7fb4f4f4b55
--- /dev/null
+++ b/browser/extensions/fxmonitor/fxmonitor.properties
@@ -0,0 +1,45 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Header of the popup
+fxmonitor.popupHeader=มีà¸à¸±à¸à¸à¸µà¸à¸à¹à¸à¸à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+# Firefox Monitor must be treated as a brand, and kept in English.
+# It cannot be:
+# - Declined to adapt to grammatical case.
+# - Transliterated.
+# - Translated.
+fxmonitor.brandName=Firefox Monitor
+# Tooltip text for the popup's anchor icon in the URL bar
+# %S is replaced with fxmonitor.brandName.
+fxmonitor.anchorIcon.tooltiptext=รายà¸à¸²à¸à¹à¸à¸à¹à¹à¸à¸¢à¸±à¸ %S à¹à¸¥à¹à¸§
+# Text content of popup. Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This version is only used when the number of accounts is smaller than 100,000.
+# The placeholders are:
+# #1: The exact number of accounts compromised in the breach.
+# #2: The name of the breached site.
+# #3: The year of the breach.
+# #4: The brand name ("Firefox Monitor").
+fxmonitor.popupText=#1 à¸à¸±à¸à¸à¸µà¸à¸²à¸ #2 à¸à¸¹à¸à¸à¸¸à¸à¸£à¸¸à¸à¹à¸à¸à¸µ #3 à¸à¸£à¸§à¸à¸ªà¸à¸ #4 à¹à¸à¸·à¹à¸à¸à¸¹à¸§à¹à¸²à¸à¸¸à¸à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¸«à¸£à¸·à¸à¹à¸¡à¹
+# Text content of popup. Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# This version is only used when the number of accounts is greater than 100,000.
+# The placeholders are:
+# #1: The number of accounts compromised in the breach, rounded down to the
+# most significant digit.
+# Ex.: 234,567 -> More than 200,000 accounts [...]
+# 345,678,901 -> More than 300,000,000 accounts [...]
+# 4,567,890,123 -> More than 4,000,000,000 accounts [...]
+# #2: The name of the breached site.
+# #3: The year of the breach.
+# #4: The brand name ("Firefox Monitor").
+fxmonitor.popupTextRounded=มาà¸à¸à¸§à¹à¸² #1 à¸à¸±à¸à¸à¸µà¸à¸²à¸ #2 à¸à¸¹à¸à¸à¸¸à¸à¸£à¸¸à¸à¹à¸à¸à¸µ #3 à¸à¸£à¸§à¸à¸ªà¸à¸ #4 à¹à¸à¸·à¹à¸à¸à¸¹à¸§à¹à¸²à¸à¸¸à¸à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸§à¸²à¸¡à¹à¸ªà¸µà¹à¸¢à¸à¸«à¸£à¸·à¸à¹à¸¡à¹
+# %S is replaced with fxmonitor.brandName.
+fxmonitor.checkButton.label=à¸à¸£à¸§à¸à¸ªà¸à¸ %S
+fxmonitor.checkButton.accessKey=à¸
+fxmonitor.dismissButton.label=ยà¸à¹à¸¥à¸´à¸
+fxmonitor.dismissButton.accessKey=ย
+# %S is replaced with fxmonitor.brandName.
+fxmonitor.neverShowButton.label=à¹à¸¡à¹à¸à¹à¸à¸à¹à¸ªà¸à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸ %S
+fxmonitor.neverShowButton.accessKey=ม
diff --git a/browser/extensions/report-site-issue/webcompat.properties b/browser/extensions/report-site-issue/webcompat.properties
new file mode 100644
index 00000000000..f1ce586fbce
--- /dev/null
+++ b/browser/extensions/report-site-issue/webcompat.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(wc-reporter.label2): This string will be used in the
+# Firefox page actions menu. Localized length should be considered.
+wc-reporter.label2=รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¹à¸à¸à¹â¦
+# LOCALIZATION NOTE(wc-reporter.tooltip): A site compatibility issue is
+# a website bug that exists in one browser (Firefox), but not another.
+wc-reporter.tooltip=รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸§à¸²à¸¡à¹à¸à¹à¸²à¸à¸±à¸à¹à¸à¹à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹
diff --git a/browser/extensions/webcompat-reporter/webcompat.properties b/browser/extensions/webcompat-reporter/webcompat.properties
new file mode 100644
index 00000000000..f1ce586fbce
--- /dev/null
+++ b/browser/extensions/webcompat-reporter/webcompat.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE(wc-reporter.label2): This string will be used in the
+# Firefox page actions menu. Localized length should be considered.
+wc-reporter.label2=รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¹à¸à¸à¹â¦
+# LOCALIZATION NOTE(wc-reporter.tooltip): A site compatibility issue is
+# a website bug that exists in one browser (Firefox), but not another.
+wc-reporter.tooltip=รายà¸à¸²à¸à¸à¸±à¸à¸«à¸²à¸à¸§à¸²à¸¡à¹à¸à¹à¸²à¸à¸±à¸à¹à¸à¹à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹
diff --git a/browser/firefox-l10n.js b/browser/firefox-l10n.js
new file mode 100644
index 00000000000..b410ad9aef4
--- /dev/null
+++ b/browser/firefox-l10n.js
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+#filter substitution
+
diff --git a/browser/installer/custom.properties b/browser/installer/custom.properties
new file mode 100644
index 00000000000..ae1e2ad309a
--- /dev/null
+++ b/browser/installer/custom.properties
@@ -0,0 +1,87 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+REG_APP_DESC=$BrandShortName à¹à¸«à¹à¸à¸¸à¸à¸à¹à¸à¸à¹à¸§à¹à¸à¸à¸¢à¹à¸²à¸à¸à¸¥à¸à¸à¸ ัยà¹à¸¥à¸°à¸à¹à¸²à¸¢à¸à¸²à¸¢à¸à¹à¸§à¸¢à¸«à¸à¹à¸²à¸à¸à¸à¸µà¹à¸à¸¸à¹à¸à¹à¸à¸¢à¸à¸§à¸²à¸¡à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸²à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸à¸¹à¸à¸¢à¸à¸£à¸°à¸à¸±à¸à¸£à¸§à¸¡à¹à¸à¸à¸¶à¸à¸à¹à¸§à¸¢à¸à¸à¸à¹à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¹à¸¡à¸¢à¸à¸±à¸à¸¥à¸±à¸à¸©à¸à¹à¹à¸¥à¸°à¸à¸²à¸£à¸£à¸§à¸¡à¸à¸²à¸£à¸à¹à¸à¸«à¸²à¸à¸µà¹à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¹à¸à¹à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸²à¸à¹à¸§à¹à¸
+CONTEXT_OPTIONS=&à¸à¸±à¸§à¹à¸¥à¸·à¸à¸ $BrandShortName
+CONTEXT_SAFE_MODE=à¹à¸«à¸¡à¸&à¸à¸¥à¸à¸à¸ ัย $BrandShortName
+OPTIONS_PAGE_TITLE=à¸à¸à¸´à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+OPTIONS_PAGE_SUBTITLE=à¹à¸¥à¸·à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+SHORTCUTS_PAGE_TITLE=à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸à¸¥à¸±à¸
+SHORTCUTS_PAGE_SUBTITLE=สรà¹à¸²à¸à¹à¸à¸à¸à¸à¹à¸à¸£à¹à¸à¸£à¸¡
+COMPONENTS_PAGE_TITLE=à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¹à¸ªà¸£à¸´à¸¡
+COMPONENTS_PAGE_SUBTITLE=สà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸µà¹à¹à¸à¸°à¸à¸³
+OPTIONAL_COMPONENTS_DESC=à¸à¸£à¸´à¸à¸²à¸£à¸à¸³à¸£à¸¸à¸à¸£à¸±à¸à¸©à¸²à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸à¸¸à¸à¸à¸±à¸à¹à¸à¸ $BrandShortName à¸à¸¢à¸¹à¹à¹à¸à¸·à¹à¸à¸à¸«à¸¥à¸±à¸à¹à¸à¸¢à¹à¸¡à¹à¸£à¸à¸à¸§à¸
+MAINTENANCE_SERVICE_CHECKBOX_DESC=à¸à¸´à¸à¸à¸±à¹à¸à¸à¸£à¸´à¸à¸²à¸£&à¸à¸³à¸£à¸¸à¸à¸£à¸±à¸à¸©à¸²
+SUMMARY_PAGE_TITLE=สรุà¸
+SUMMARY_PAGE_SUBTITLE=à¸à¸£à¹à¸à¸¡à¸à¸µà¹à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName
+SUMMARY_INSTALLED_TO=$BrandShortName à¸à¸°à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸§à¹à¸à¸µà¹:
+SUMMARY_REBOOT_REQUIRED_INSTALL=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸³à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¸à¸³à¹à¸«à¹à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+SUMMARY_REBOOT_REQUIRED_UNINSTALL=à¸à¸¸à¸à¸à¸²à¸à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+SUMMARY_TAKE_DEFAULTS=à¹&à¸à¹ $BrandShortName à¹à¸à¹à¸à¹à¸§à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸à¸±à¸
+SUMMARY_INSTALL_CLICK=à¸à¸¥à¸´à¸ à¸à¸´à¸à¸à¸±à¹à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+SUMMARY_UPGRADE_CLICK=à¸à¸¥à¸´à¸ à¸à¸±à¸à¹à¸à¸£à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+SURVEY_TEXT=&à¸à¸à¸à¹à¸£à¸²à¸§à¹à¸²à¸à¸¸à¸à¸à¸´à¸à¸à¸¢à¹à¸²à¸à¹à¸£à¸à¸±à¸ $BrandShortName
+LAUNCH_TEXT=à¹&ริà¹à¸¡ $BrandShortName à¸à¸±à¸à¸à¸µ
+CREATE_ICONS_DESC=สรà¹à¸²à¸à¹à¸à¸à¸à¸à¸ªà¸³à¸«à¸£à¸±à¸ $BrandShortName:
+ICONS_DESKTOP=à¸à¸&à¹à¸à¸ªà¸à¹à¸à¹à¸à¸à¸à¸à¸à¸à¸±à¸
+ICONS_STARTMENU=à¹à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸à¹&มà¸à¸¹à¹à¸£à¸´à¹à¸¡à¹à¸à¸£à¹à¸à¸£à¸¡
+ICONS_QUICKLAUNCH=à¹à¸à¹à¸à¸ &Quick Launch à¸à¸à¸à¸à¸±à¸
+WARN_MANUALLY_CLOSE_APP_INSTALL=$BrandShortName à¸à¸°à¸à¹à¸à¸à¸à¸¹à¸à¸à¸´à¸à¹à¸à¸·à¹à¸à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸\n\nà¹à¸à¸£à¸à¸à¸´à¸ $BrandShortName à¹à¸à¸·à¹à¸à¸à¸³à¸à¹à¸
+WARN_MANUALLY_CLOSE_APP_UNINSTALL=$BrandShortName à¸à¹à¸à¸à¸à¸¹à¸à¸à¸´à¸à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸\n\nà¹à¸à¸£à¸à¸à¸´à¸ $BrandShortName à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§\n\nà¹à¸à¸£à¸à¸à¸´à¸ $BrandShortName à¸à¹à¸à¸à¸à¸µà¹à¸à¸°à¹à¸à¸´à¸à¸£à¸¸à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸´à¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+WARN_WRITE_ACCESS=à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¸´à¹à¸à¸à¸²à¸£à¹à¸à¸µà¸¢à¸à¹à¸à¸¢à¸±à¸à¹à¸à¹à¸£à¸à¸à¸à¸£à¸µà¹à¸à¸µà¹à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸\n\nà¸à¸¥à¸´à¸à¸à¸à¸¥à¸à¹à¸à¸·à¹à¸à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸£à¸à¸à¸à¸£à¸µà¹à¸à¸·à¹à¸
+WARN_DISK_SPACE=à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¹à¸à¸µà¸¢à¸à¸à¸à¸à¸µà¹à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸¢à¸±à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸µà¹\n\nà¸à¸¥à¸´à¸ à¸à¸à¸¥à¸ à¹à¸à¸·à¹à¸à¹à¸¥à¸·à¸à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸·à¹à¸
+WARN_MIN_SUPPORTED_OSVER_MSG=à¸à¸à¸à¸ ัย à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹ $BrandShortName รุà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£ ${MinSupportedVer} หรืà¸à¹à¸«à¸¡à¹à¸à¸§à¹à¸² à¹à¸à¸£à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ à¸à¸à¸¥à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+WARN_MIN_SUPPORTED_CPU_MSG=à¸à¸à¸à¸ ัย à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹ $BrandShortName รุà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸«à¸à¹à¸§à¸¢à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸ ${MinSupportedCPU} à¹à¸à¸£à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ à¸à¸à¸¥à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=à¸à¸à¸à¸ ัย à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹ $BrandShortName รุà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£ ${MinSupportedVer} หรืà¸à¹à¸«à¸¡à¹à¸à¸§à¹à¸²à¹à¸¥à¸°à¸«à¸à¹à¸§à¸¢à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸ ${MinSupportedCPU} à¹à¸à¸£à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ à¸à¸à¸¥à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+WARN_RESTART_REQUIRED_UNINSTALL=à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸à¸ $BrandShortName à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸£à¸°à¸à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+WARN_RESTART_REQUIRED_UPGRADE=à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸£à¸à¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸à¸ $BrandShortName à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸£à¸°à¸à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+ERROR_CREATE_DIRECTORY_PREFIX=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸²à¸£à¸ªà¸£à¹à¸²à¸à¹à¸à¹à¸£à¸à¸à¸à¸£à¸µ:
+ERROR_CREATE_DIRECTORY_SUFFIX=à¸à¸¥à¸´à¸ ยà¸à¹à¸¥à¸´à¸ à¹à¸à¸·à¹à¸à¸«à¸¢à¸¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸«à¸£à¸·à¸\nลà¸à¸à¹à¸«à¸¡à¹ à¹à¸à¸·à¹à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+
+UN_CONFIRM_PAGE_TITLE=à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullName
+UN_CONFIRM_PAGE_SUBTITLE=à¹à¸à¸² $BrandFullName à¸à¸à¸à¸à¸²à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+UN_CONFIRM_UNINSTALLED_FROM=$BrandShortName à¸à¸°à¸à¸¹à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹:
+UN_CONFIRM_CLICK=à¸à¸¥à¸´à¸ à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+
+BANNER_CHECK_EXISTING=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸µà¹à¸¡à¸µà¸à¸¢à¸¹à¹â¦
+
+STATUS_INSTALL_APP=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortNameâ¦
+STATUS_INSTALL_LANG=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸¥à¹à¸ าษา (${AB_CD})â¦
+STATUS_UNINSTALL_MAIN=à¸à¸³à¸¥à¸±à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortNameâ¦
+STATUS_CLEANUP=à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸à¸§à¸²à¸à¸à¸µà¸à¹à¸¥à¹à¸à¸à¹à¸à¸¢â¦
+
+UN_SURVEY_CHECKBOX_LABEL=à¸à¸à¸ Mozilla วà¹à¸²à¸à¸³à¹à¸¡à¸à¸¸à¸à¸à¸¶à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName
+
+# _DESC strings support approximately 65 characters per line.
+# One line
+OPTIONS_SUMMARY=à¹à¸¥à¸·à¸à¸à¸à¸à¸´à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£ à¸à¸²à¸à¸à¸±à¹à¸à¸à¸¥à¸´à¸ à¸à¸±à¸à¹à¸
+# One line
+OPTION_STANDARD_DESC=$BrandShortName à¸à¸°à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¸¢à¹à¸à¹à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸§à¹à¸
+OPTION_STANDARD_RADIO=&มาà¸à¸£à¸à¸²à¸
+# Two lines
+OPTION_CUSTOM_DESC=à¸à¸¸à¸à¸à¸²à¸à¸à¸°à¹à¸¥à¸·à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¹à¸à¸à¸²à¸°à¹à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ à¹à¸à¸°à¸à¸³à¹à¸à¸à¸²à¸°à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¹à¸à¸µà¹à¸¢à¸§à¸à¸²à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+OPTION_CUSTOM_RADIO=&à¸à¸³à¸«à¸à¸à¹à¸à¸
+
+# LOCALIZATION NOTE:
+# The following text replaces the Install button text on the summary page.
+# Verify that the access key for InstallBtn (in override.properties) and
+# UPGRADE_BUTTON is not already used by SUMMARY_TAKE_DEFAULTS.
+UPGRADE_BUTTON=&à¸à¸±à¸à¹à¸à¸£à¸
diff --git a/browser/installer/mui.properties b/browser/installer/mui.properties
new file mode 100644
index 00000000000..ec8d16ff69a
--- /dev/null
+++ b/browser/installer/mui.properties
@@ -0,0 +1,61 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# To make the l10n tinderboxen see changes to this file you can change a value
+# name by adding - to the end of the name followed by chars (e.g. Branding-2).
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+MUI_TEXT_WELCOME_INFO_TITLE=ยิà¸à¸à¸µà¸à¹à¸à¸à¸£à¸±à¸à¸ªà¸¹à¹à¸à¸±à¸§à¸à¹à¸§à¸¢à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA
+MUI_TEXT_WELCOME_INFO_TEXT=à¸à¸±à¸§à¸à¹à¸§à¸¢à¸à¸µà¹à¸à¸°à¹à¸à¸°à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA à¹à¸«à¹à¸à¸±à¸à¸à¸¸à¸\n\nà¹à¸à¸°à¸à¸³à¹à¸«à¹à¸à¸¸à¸à¸à¸´à¸à¹à¸à¸à¸à¸¥à¸´à¹à¸à¸à¸±à¸à¸à¸·à¹à¸ ๠à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ สิà¹à¸à¸à¸µà¹à¸à¸³à¹à¸«à¹à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸à¸¥à¹à¸£à¸°à¸à¸à¸à¸µà¹à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸à¹à¸à¹à¸à¹à¸à¹à¸à¹à¹à¸à¸¢à¹à¸¡à¹à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸£à¸°à¸à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¹\n\n$_CLICK
+MUI_TEXT_COMPONENTS_TITLE=à¹à¸¥à¸·à¸à¸à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸
+MUI_TEXT_COMPONENTS_SUBTITLE=à¹à¸¥à¸·à¸à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸à¸ $BrandFullNameDA à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_TITLE=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢
+MUI_INNERTEXT_COMPONENTS_DESCRIPTION_INFO=à¹à¸¥à¸·à¹à¸à¸à¹à¸¡à¸²à¸ªà¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸«à¸à¸·à¸à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¹à¸à¸·à¹à¸à¸à¸¹à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸
+MUI_TEXT_DIRECTORY_TITLE=à¹à¸¥à¸·à¸à¸à¸à¸¸à¸à¸à¸´à¸à¸à¸±à¹à¸
+MUI_TEXT_DIRECTORY_SUBTITLE=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA
+MUI_TEXT_INSTALLING_TITLE=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸
+MUI_TEXT_INSTALLING_SUBTITLE=à¹à¸à¸£à¸à¸£à¸à¸à¸à¸°à¸à¸µà¹ $BrandFullNameDA à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+MUI_TEXT_FINISH_TITLE=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+MUI_TEXT_FINISH_SUBTITLE=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+MUI_TEXT_ABORT_TITLE=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¹à¸à¸¢à¸à¹à¸¥à¸´à¸
+MUI_TEXT_ABORT_SUBTITLE=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¡à¹à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+MUI_BUTTONTEXT_FINISH=à¹&สรà¹à¸à¸ªà¸´à¹à¸
+MUI_TEXT_FINISH_INFO_TITLE=à¸à¸³à¸¥à¸±à¸à¸à¸³à¹à¸«à¹à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA สมà¸à¸¹à¸£à¸à¹
+MUI_TEXT_FINISH_INFO_TEXT=à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¹à¸§\n\nà¸à¸¥à¸´à¸ à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸ à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¸§à¸à¹à¸§à¸¢à¸à¸µà¹
+MUI_TEXT_FINISH_INFO_REBOOT=à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸ $BrandFullNameDA à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸£à¸°à¸à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+MUI_TEXT_FINISH_REBOOTNOW=à¹à¸£à¸´à¹à¸¡à¸£à¸°à¸à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸µà¹
+MUI_TEXT_FINISH_REBOOTLATER=à¸à¸±à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹à¹à¸à¸à¸à¸µà¸«à¸¥à¸±à¸
+MUI_TEXT_STARTMENU_TITLE=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸à¹à¸¡à¸à¸¹à¹à¸£à¸´à¹à¸¡
+MUI_TEXT_STARTMENU_SUBTITLE=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸à¹à¸¡à¸à¸¹à¹à¸£à¸´à¹à¸¡à¹à¸à¸·à¹à¸à¸ªà¸£à¹à¸²à¸à¸à¸²à¸à¸¥à¸±à¸à¸à¸à¸ $BrandFullNameDA
+MUI_INNERTEXT_STARTMENU_TOP=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸¡à¸à¸¹à¹à¸£à¸´à¹à¸¡à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¸£à¹à¸²à¸à¸à¸²à¸à¸¥à¸±à¸à¸à¸à¸à¹à¸à¸£à¹à¸à¸£à¸¡ à¸à¸¸à¸à¸¢à¸±à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸à¸à¸à¸·à¹à¸à¹à¸à¸·à¹à¸à¸ªà¸£à¹à¸²à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹
+MUI_TEXT_ABORTWARNING=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullName?
+MUI_UNTEXT_WELCOME_INFO_TITLE=ยิà¸à¸à¸µà¸à¹à¸à¸à¸£à¸±à¸à¸ªà¸¹à¹à¸à¸±à¸§à¸à¹à¸§à¸¢à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA
+MUI_UNTEXT_WELCOME_INFO_TEXT=à¸à¸±à¸§à¸à¹à¸§à¸¢à¸à¸µà¹à¸à¸°à¸à¸³à¸à¸¸à¸à¹à¸à¸ªà¸¹à¹à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA\n\nà¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸² $BrandFullNameDA à¹à¸¡à¹à¹à¸à¹à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸à¸à¸¢à¸¹à¹\n\n$_CLICK
+MUI_UNTEXT_CONFIRM_TITLE=à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA
+MUI_UNTEXT_CONFIRM_SUBTITLE=à¹à¸à¸² $BrandFullNameDA à¸à¸à¸à¸à¸²à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+MUI_UNTEXT_UNINSTALLING_TITLE=à¸à¸³à¸¥à¸±à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+MUI_UNTEXT_UNINSTALLING_SUBTITLE=à¹à¸à¸£à¸à¸£à¸à¸à¸à¸°à¸à¸µà¹ $BrandFullNameDA à¸à¸³à¸¥à¸±à¸à¸à¸¹à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+MUI_UNTEXT_FINISH_TITLE=à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+MUI_UNTEXT_FINISH_SUBTITLE=à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹à¹à¸¥à¹à¸§
+MUI_UNTEXT_ABORT_TITLE=à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¹à¸à¸¢à¸à¹à¸¥à¸´à¸
+MUI_UNTEXT_ABORT_SUBTITLE=à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¡à¹à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+MUI_UNTEXT_FINISH_INFO_TITLE=à¸à¸³à¸¥à¸±à¸à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸à¸à¸±à¸§à¸à¹à¸§à¸¢à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA
+MUI_UNTEXT_FINISH_INFO_TEXT=à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA à¸à¸²à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¹à¸§\n\nà¸à¸¥à¸´à¸ à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸ à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¸§à¸à¹à¸§à¸¢à¸à¸µà¹
+MUI_UNTEXT_FINISH_INFO_REBOOT=à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸à¹à¸«à¸¡à¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸à¸ $BrandFullNameDA à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸£à¸°à¸à¸à¹à¸«à¸¡à¹à¸à¸à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+MUI_UNTEXT_ABORTWARNING=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸«à¸£à¸·à¸à¹à¸¡à¹à¸§à¹à¸²à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullName?
diff --git a/browser/installer/nsisstrings.properties b/browser/installer/nsisstrings.properties
new file mode 100644
index 00000000000..8691c93ad81
--- /dev/null
+++ b/browser/installer/nsisstrings.properties
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# Do not replace $BrandShortName, $BrandProductName, $BrandFullName,
+# or $BrandFullNameDA with a custom string and always use the same one as used
+# by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+INSTALLER_WIN_CAPTION=à¸à¸±à¸§à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName
+
+# The \n in the next two strings can be moved or deleted as needed to make
+# the string fit in the 3 lines of space available.
+STUB_CLEANUP_PAVEOVER_HEADER=มีà¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§\nมาà¸à¸±à¸à¹à¸à¸à¸à¸±à¸à¹à¸¥à¸¢
+STUB_CLEANUP_REINSTALL_HEADER=$BrandShortName à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¢à¸¹à¹à¸à¹à¸à¸à¸«à¸à¹à¸²\nมารัà¸à¸ªà¸³à¹à¸à¸²à¹à¸«à¸¡à¹à¹à¸«à¹à¸à¸¸à¸à¸à¸±à¸à¹à¸¥à¸¢
+STUB_CLEANUP_PAVEOVER_HEADER2=มีà¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§ มาà¸à¸±à¸à¹à¸à¸à¸à¸±à¸à¹à¸¥à¸¢
+STUB_CLEANUP_REINSTALL_HEADER2=$BrandShortName à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸¢à¸¹à¹à¸à¹à¸à¸à¸«à¸à¹à¸² มารัà¸à¸ªà¸³à¹à¸à¸²à¹à¸«à¸¡à¹à¹à¸«à¹à¸à¸¸à¸à¸à¸±à¸à¹à¸¥à¸¢
+STUB_CLEANUP_PAVEOVER_BUTTON=&à¸à¸±à¸à¹à¸à¸
+STUB_CLEANUP_REINSTALL_BUTTON=&à¸à¸´à¸à¸à¸±à¹à¸à¹à¸«à¸¡à¹
+STUB_CLEANUP_CHECKBOX_LABEL=à¹&รียà¸à¸à¸·à¸à¸à¸²à¸£à¸à¸±à¹à¸à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸¥à¸°à¹à¸à¸²à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸à¹à¸²à¸à¸à¸à¹à¸à¸·à¹à¸à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¸à¸µà¹à¸à¸µà¸à¸µà¹à¸ªà¸¸à¸
+
+STUB_INSTALLING_LABEL2=à¸à¸à¸°à¸à¸µà¹à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸â¦
+# The \n in the next string is intended to force a nice-looking layout in en-US
+# and can be moved or deleted as needed. There's no practical limit on the
+# number of lines available.
+STUB_INSTALLING_HEADLINE=à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸à¸à¸à¸¸à¸à¸à¹à¸à¸à¸¡à¸²à¸à¹à¸à¸\nà¹à¸à¹à¸²à¸£à¹à¸§à¸¡ $BrandProductName
+STUB_INSTALLING_BODY=รัà¸à¸à¸¥à¸´à¸à¸ ัà¸à¸à¹à¸à¸µà¹à¹à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸µà¹à¹à¸«à¸¥à¸·à¸à¸à¸à¸à¹à¸£à¸²à¹à¸¥à¸°à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¸§à¸´à¸à¸µà¸à¸²à¸£à¹à¸à¹à¸à¸µà¸§à¸´à¸à¹à¸à¹à¸¥à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸¢à¹à¸²à¸à¸à¸²à¸à¸à¸¥à¸²à¸à¹à¸¥à¸°à¸à¸¥à¸à¸à¸ ัยยิà¹à¸à¸à¸¶à¹à¸
+STUB_BLURB_FIRST1=$BrandShortName à¸à¸µà¹à¹à¸£à¹à¸§à¸à¸µà¹à¸ªà¸¸à¸à¹à¸¥à¸°à¸à¸à¸à¸ªà¸à¸à¸à¹à¸à¹à¸à¸µà¸à¸µà¹à¸ªà¸¸à¸à¹à¸à¹à¸²à¸à¸µà¹à¹à¸à¸¢à¸¡à¸µà¸¡à¸²
+STUB_BLURB_SECOND1=à¸à¸²à¸£à¹à¸«à¸¥à¸à¸«à¸à¹à¸²à¹à¸¥à¸°à¸à¸²à¸£à¸ªà¸¥à¸±à¸à¹à¸à¹à¸à¸à¸µà¹à¹à¸£à¹à¸§à¸à¸¶à¹à¸
+STUB_BLURB_THIRD1=à¸à¸²à¸£à¹à¸£à¸µà¸¢à¸à¸à¸¹à¹à¸à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸µà¹à¸à¸£à¸à¸à¸¥à¸±à¸
+STUB_BLURB_FOOTER2=สรà¹à¸²à¸à¸à¸¶à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸¹à¹à¸à¸ à¹à¸¡à¹à¹à¸à¹à¸à¸¥à¸à¸³à¹à¸£
+
+WARN_MIN_SUPPORTED_OSVER_MSG=à¸à¸à¸à¸ ัย à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹ $BrandShortName รุà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£ ${MinSupportedVer} หรืà¸à¹à¸«à¸¡à¹à¸à¸§à¹à¸² à¹à¸à¸£à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ à¸à¸à¸¥à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+WARN_MIN_SUPPORTED_CPU_MSG=à¸à¸à¸à¸ ัย à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹ $BrandShortName รุà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸«à¸à¹à¸§à¸¢à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸ ${MinSupportedCPU} à¹à¸à¸£à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ à¸à¸à¸¥à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+WARN_MIN_SUPPORTED_OSVER_CPU_MSG=à¸à¸à¸à¸ ัย à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹ $BrandShortName รุà¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£ ${MinSupportedVer} หรืà¸à¹à¸«à¸¡à¹à¸à¸§à¹à¸²à¹à¸¥à¸°à¸«à¸à¹à¸§à¸¢à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸ ${MinSupportedCPU} à¹à¸à¸£à¸à¸à¸¥à¸´à¸à¸à¸¸à¹à¸¡ à¸à¸à¸¥à¸ สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+WARN_WRITE_ACCESS_QUIT=à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¸´à¹à¸à¸µà¸¢à¸à¹à¸à¹à¸£à¸à¸à¸à¸£à¸µà¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+WARN_DISK_SPACE_QUIT=à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸à¸à¸µà¹à¸à¸´à¸ªà¸à¹à¹à¸à¸µà¸¢à¸à¸à¸à¸à¸µà¹à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸
+WARN_MANUALLY_CLOSE_APP_LAUNCH=$BrandShortName à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§\n\nà¹à¸à¸£à¸à¸à¸´à¸ $BrandShortName à¸à¹à¸à¸à¸à¸µà¹à¸à¸°à¹à¸à¸´à¸à¸£à¸¸à¹à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸à¸´à¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+
+ERROR_DOWNLOAD_CONT=à¸à¸·à¸¡à¸¡ à¸à¹à¸§à¸¢à¹à¸«à¸à¸¸à¸à¸¥à¸à¸²à¸à¸à¸¢à¹à¸²à¸ à¹à¸£à¸²à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName à¹à¸à¹\nà¹à¸¥à¸·à¸à¸ à¸à¸à¸¥à¸ à¹à¸à¸·à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸«à¸¡à¹
+
+STUB_CANCEL_PROMPT_HEADING=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName หรืà¸à¹à¸¡à¹?
+STUB_CANCEL_PROMPT_MESSAGE=หาà¸à¸à¸¸à¸à¸¢à¸à¹à¸¥à¸´à¸ $BrandShortName à¸à¸°à¹à¸¡à¹à¸à¸¹à¸à¸à¸´à¸à¸à¸±à¹à¸
+STUB_CANCEL_PROMPT_BUTTON_CONTINUE=à¸à¸´à¸à¸à¸±à¹à¸ $BrandShortName
+STUB_CANCEL_PROMPT_BUTTON_EXIT=ยà¸à¹à¸¥à¸´à¸
diff --git a/browser/installer/override.properties b/browser/installer/override.properties
new file mode 100644
index 00000000000..64701efe086
--- /dev/null
+++ b/browser/installer/override.properties
@@ -0,0 +1,86 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+
+# This file must be saved as UTF8
+
+# Accesskeys are defined by prefixing the letter that is to be used for the
+# accesskey with an ampersand (e.g. &).
+
+# Do not replace $BrandShortName, $BrandFullName, or $BrandFullNameDA with a
+# custom string and always use the same one as used by the en-US files.
+# $BrandFullNameDA allows the string to contain an ampersand (e.g. DA stands
+# for double ampersand) and prevents the letter following the ampersand from
+# being used as an accesskey.
+
+# You can use \n to create a newline in the string but only when the string
+# from en-US contains a \n.
+
+# Strings that require a space at the end should be enclosed with double
+# quotes and the double quotes will be removed. To add quotes to the beginning
+# and end of a strong enclose the add and additional double quote to the
+# beginning and end of the string (e.g. ""This will include quotes"").
+
+SetupCaption=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullName
+UninstallCaption=à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullName
+BackBtn=< &ยà¹à¸à¸à¸à¸¥à¸±à¸
+NextBtn=&à¸à¸±à¸à¹à¸ >
+AcceptBtn=à¸à¸±à¸&ยà¸à¸¡à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸¥à¸à¸ªà¸±à¸à¸à¸²à¸à¸à¸¸à¸à¸²à¸
+DontAcceptBtn=à¸à¸±à¸&à¹à¸¡à¹à¸¢à¸à¸¡à¸£à¸±à¸à¹à¸à¸·à¹à¸à¸à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸¥à¸à¸ªà¸±à¸à¸à¸²à¸à¸à¸¸à¸à¸²à¸
+InstallBtn=&à¸à¸´à¸à¸à¸±à¹à¸
+UninstallBtn=&à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+CancelBtn=ยà¸à¹à¸¥à¸´à¸
+CloseBtn=&à¸à¸´à¸
+BrowseBtn=&à¹à¸£à¸µà¸¢à¸à¸à¸¹â¦
+ShowDetailsBtn=à¹à¸ªà¸à¸&รายละà¹à¸à¸µà¸¢à¸
+ClickNext=à¸à¸¥à¸´à¸ à¸à¸±à¸à¹à¸ à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+ClickInstall=à¸à¸¥à¸´à¸ à¸à¸´à¸à¸à¸±à¹à¸ à¹à¸à¸·à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+ClickUninstall=à¸à¸¥à¸´à¸ à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ à¹à¸à¸·à¹à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+Completed=à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+LicenseTextRB=à¹à¸à¸£à¸à¸à¸£à¸§à¸à¸à¸²à¸à¸à¹à¸à¸à¸à¸¥à¸à¸ªà¸´à¸à¸à¸´à¸à¸²à¸£à¹à¸à¹à¸à¸²à¸à¸à¹à¸à¸à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA à¸à¹à¸²à¸à¸¸à¸à¸¢à¸à¸¡à¸£à¸±à¸à¸à¹à¸à¸à¸³à¸«à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¹à¸à¸à¹à¸à¸à¸à¸¥à¸ à¹à¸¥à¸·à¸à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¹à¸£à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸ $_CLICK
+ComponentsText=à¸à¸£à¸§à¸à¸ªà¸à¸à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¥à¸°à¹à¸¥à¸·à¸à¸à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¸à¸µà¹à¸à¸¸à¸à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸à¸ $_CLICK
+ComponentsSubText2_NoInstTypes=à¹à¸¥à¸·à¸à¸à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¹à¸:
+DirText=à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸°à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA à¹à¸§à¹à¹à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹ à¹à¸à¸·à¹à¸à¸à¸´à¸à¸à¸±à¹à¸à¹à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸·à¹à¸ à¸à¸¥à¸´à¸ à¹à¸£à¸µà¸¢à¸à¸à¸¹ à¹à¸¥à¸°à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸·à¹à¸ $_CLICK
+DirSubText=à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸¥à¸²à¸¢à¸à¸²à¸
+DirBrowseText=à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸à¸·à¹à¸à¸à¸³à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸ $BrandFullNameDA:
+SpaceAvailable="à¸à¸·à¹à¸à¸à¸µà¹à¸§à¹à¸²à¸: "
+SpaceRequired="à¸à¸·à¹à¸à¸à¸µà¹à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£: "
+UninstallingText=$BrandFullNameDA à¸à¸°à¸à¸¹à¸à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹ $_CLICK
+UninstallingSubText=à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸:
+FileError=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¹à¸à¸´à¸à¹à¸à¸¥à¹à¹à¸à¸·à¹à¸à¹à¸à¸µà¸¢à¸: \r\n\r\n$0\r\n\r\nà¸à¸¥à¸´à¸ ยà¸à¹à¸¥à¸´à¸ à¹à¸à¸·à¹à¸à¸«à¸¢à¸¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸\r\nลà¸à¸à¹à¸«à¸¡à¹ à¹à¸à¸·à¹à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸ หรืà¸\r\nà¹à¸à¸´à¸à¹à¸à¸¢ à¹à¸à¸·à¹à¸à¸à¹à¸²à¸¡à¹à¸à¸¥à¹à¸à¸µà¹
+FileError_NoIgnore=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¹à¸à¸´à¸à¹à¸à¸¥à¹à¹à¸à¸·à¹à¸à¹à¸à¸µà¸¢à¸: \r\n\r\n$0\r\n\r\nà¸à¸¥à¸´à¸ ลà¸à¸à¹à¸«à¸¡à¹ à¹à¸à¸·à¹à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸ หรืà¸\r\nยà¸à¹à¸¥à¸´à¸ à¹à¸à¸·à¹à¸à¸«à¸¢à¸¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+CantWrite="à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸µà¸¢à¸: "
+CopyFailed=à¸à¸²à¸£à¸à¸±à¸à¸¥à¸à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+CopyTo="à¸à¸±à¸à¸¥à¸à¸à¹à¸à¸¢à¸±à¸ "
+Registering="à¸à¸³à¸¥à¸±à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸: "
+Unregistering="à¸à¸³à¸¥à¸±à¸à¸¢à¸à¹à¸¥à¸´à¸à¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸: "
+SymbolNotFound="à¹à¸¡à¹à¸à¸à¸ªà¸±à¸à¸¥à¸±à¸à¸©à¸à¹: "
+CouldNotLoad="à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸«à¸¥à¸: "
+CreateFolder="สรà¹à¸²à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹: "
+CreateShortcut="สรà¹à¸²à¸à¸à¸²à¸à¸¥à¸±à¸: "
+CreatedUninstaller="à¸à¸±à¸§à¸à¸à¸à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸à¸à¸µà¹à¸ªà¸£à¹à¸²à¸: "
+Delete="ลà¸à¹à¸à¸¥à¹: "
+DeleteOnReboot="ลà¸à¸à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹: "
+ErrorCreatingShortcut="à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¸ªà¸£à¹à¸²à¸à¸à¸²à¸à¸¥à¸±à¸: "
+ErrorCreating="à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¸ªà¸£à¹à¸²à¸: "
+ErrorDecompressing=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸à¸¢à¸²à¸¢à¸à¹à¸à¸¡à¸¹à¸¥! à¸à¸±à¸§à¸à¸´à¸à¸à¸±à¹à¸à¹à¸ªà¸µà¸¢à¸«à¸²à¸¢?
+ErrorRegistering=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸ DLL
+ExecShell="ExecShell: "
+Exec="Execute: "
+Extract="à¸à¸¢à¸²à¸¢: "
+ErrorWriting="à¸à¸¢à¸²à¸¢: à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¹à¸à¸µà¸¢à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸¥à¹ "
+InvalidOpcode=à¸à¸±à¸§à¸à¸´à¸à¸à¸±à¹à¸à¹à¸¡à¹à¸ªà¸¡à¸à¸¹à¸£à¸à¹: opcode à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+NoOLE="à¹à¸¡à¹à¸¡à¸µ OLE สำหรัà¸: "
+OutputFolder="à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸¥à¸¥à¸±à¸à¸à¹: "
+RemoveFolder="à¹à¸à¸²à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸à¸: "
+RenameOnReboot="à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¸à¸à¸°à¹à¸£à¸´à¹à¸¡à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¹à¸«à¸¡à¹: "
+Rename="à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸: "
+Skipped="à¸à¹à¸²à¸¡: "
+CopyDetails=à¸à¸±à¸à¸¥à¸à¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸à¹à¸à¸¢à¸±à¸à¸à¸¥à¸´à¸à¸à¸à¸£à¹à¸
+LogInstall=à¸à¸±à¸à¸à¸¶à¸à¸à¸¹à¸¡à¸à¸²à¸£à¸à¸´à¸à¸à¸±à¹à¸
+Byte=B
+Kilo=K
+Mega=M
+Giga=G
diff --git a/browser/pdfviewer/chrome.properties b/browser/pdfviewer/chrome.properties
new file mode 100644
index 00000000000..3f0f5e14011
--- /dev/null
+++ b/browser/pdfviewer/chrome.properties
@@ -0,0 +1,19 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Chrome notification bar messages and buttons
+unsupported_feature=à¹à¸à¸à¸ªà¸²à¸£ PDF à¸à¸µà¹à¸à¸²à¸à¹à¸ªà¸à¸à¸à¸¥à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+unsupported_feature_forms=à¹à¸à¸à¸ªà¸²à¸£ PDF à¸à¸µà¹à¸¡à¸µà¹à¸à¸à¸à¸à¸£à¹à¸¡ à¸à¸²à¸£à¸à¸£à¸à¸à¸à¸à¸£à¹à¸¡à¸¢à¸±à¸à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸
+open_with_different_viewer=à¹à¸à¸´à¸à¸à¹à¸§à¸¢à¸à¸±à¸§à¸à¸¹à¸à¸·à¹à¸
+open_with_different_viewer.accessKey=à¸
diff --git a/browser/pdfviewer/viewer.properties b/browser/pdfviewer/viewer.properties
new file mode 100644
index 00000000000..34d46147e15
--- /dev/null
+++ b/browser/pdfviewer/viewer.properties
@@ -0,0 +1,246 @@
+# Copyright 2012 Mozilla Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Main toolbar buttons (tooltips and alt text for images)
+previous.title=หà¸à¹à¸²à¸à¹à¸à¸à¸«à¸à¹à¸²
+previous_label=à¸à¹à¸à¸à¸«à¸à¹à¸²
+next.title=หà¸à¹à¸²à¸à¸±à¸à¹à¸
+next_label=à¸à¸±à¸à¹à¸
+
+# LOCALIZATION NOTE (page.title): The tooltip for the pageNumber input.
+page.title=หà¸à¹à¸²
+# LOCALIZATION NOTE (of_pages): "{{pagesCount}}" will be replaced by a number
+# representing the total number of pages in the document.
+of_pages=à¸à¸²à¸ {{pagesCount}}
+# LOCALIZATION NOTE (page_of_pages): "{{pageNumber}}" and "{{pagesCount}}"
+# will be replaced by a number representing the currently visible page,
+# respectively a number representing the total number of pages in the document.
+page_of_pages=({{pageNumber}} à¸à¸²à¸ {{pagesCount}})
+
+zoom_out.title=à¸à¸¹à¸¡à¸à¸à¸
+zoom_out_label=à¸à¸¹à¸¡à¸à¸à¸
+zoom_in.title=à¸à¸¹à¸¡à¹à¸à¹à¸²
+zoom_in_label=à¸à¸¹à¸¡à¹à¸à¹à¸²
+zoom.title=à¸à¸¹à¸¡
+presentation_mode.title=สลัà¸à¹à¸à¹à¸à¹à¸«à¸¡à¸à¸à¸²à¸£à¸à¸³à¹à¸ªà¸à¸
+presentation_mode_label=à¹à¸«à¸¡à¸à¸à¸²à¸£à¸à¸³à¹à¸ªà¸à¸
+open_file.title=à¹à¸à¸´à¸à¹à¸à¸¥à¹
+open_file_label=à¹à¸à¸´à¸
+print.title=à¸à¸´à¸¡à¸à¹
+print_label=à¸à¸´à¸¡à¸à¹
+download.title=à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+download_label=à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸
+bookmark.title=มุมมà¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸ (à¸à¸±à¸à¸¥à¸à¸à¸«à¸£à¸·à¸à¹à¸à¸´à¸à¹à¸à¸«à¸à¹à¸²à¸à¹à¸²à¸à¹à¸«à¸¡à¹)
+bookmark_label=มุมมà¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸
+
+# Secondary toolbar and context menu
+tools.title=à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸
+tools_label=à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸
+first_page.title=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¹à¸£à¸
+first_page.label=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¹à¸£à¸
+first_page_label=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¹à¸£à¸
+last_page.title=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸ªà¸¸à¸à¸à¹à¸²à¸¢
+last_page.label=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸ªà¸¸à¸à¸à¹à¸²à¸¢
+last_page_label=à¹à¸à¸¢à¸±à¸à¸«à¸à¹à¸²à¸ªà¸¸à¸à¸à¹à¸²à¸¢
+page_rotate_cw.title=หมุà¸à¸à¸²à¸¡à¹à¸à¹à¸¡à¸à¸²à¸¬à¸´à¸à¸²
+page_rotate_cw.label=หมุà¸à¸à¸²à¸¡à¹à¸à¹à¸¡à¸à¸²à¸¬à¸´à¸à¸²
+page_rotate_cw_label=หมุà¸à¸à¸²à¸¡à¹à¸à¹à¸¡à¸à¸²à¸¬à¸´à¸à¸²
+page_rotate_ccw.title=หมุà¸à¸à¸§à¸à¹à¸à¹à¸¡à¸à¸²à¸¬à¸´à¸à¸²
+page_rotate_ccw.label=หมุà¸à¸à¸§à¸à¹à¸à¹à¸¡à¸à¸²à¸¬à¸´à¸à¸²
+page_rotate_ccw_label=หมุà¸à¸à¸§à¸à¹à¸à¹à¸¡à¸à¸²à¸¬à¸´à¸à¸²
+
+cursor_text_select_tool.title=à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸²à¸£à¹à¸¥à¸·à¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡
+cursor_text_select_tool_label=à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸²à¸£à¹à¸¥à¸·à¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡
+cursor_hand_tool.title=à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸¡à¸·à¸
+cursor_hand_tool_label=à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸¡à¸·à¸
+
+scroll_vertical.title=à¹à¸à¹à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸§à¸à¸±à¹à¸
+scroll_vertical_label=à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸§à¸à¸±à¹à¸
+scroll_horizontal.title=à¹à¸à¹à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸§à¸à¸à¸
+scroll_horizontal_label=à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸§à¸à¸à¸
+scroll_wrapped.title=à¹à¸à¹à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸à¸à¸¥à¸¸à¸¡
+scroll_wrapped_label=à¹à¸¥à¸·à¹à¸à¸à¹à¸à¸à¸à¸¥à¸¸à¸¡
+
+spread_none.title=à¹à¸¡à¹à¸à¹à¸à¸à¸£à¸§à¸¡à¸à¸²à¸£à¸à¸£à¸°à¸à¸²à¸¢à¸«à¸à¹à¸²
+spread_none_label=à¹à¸¡à¹à¸à¸£à¸°à¸à¸²à¸¢
+spread_odd.title=รวมà¸à¸²à¸£à¸à¸£à¸°à¸à¸²à¸¢à¸«à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸µà¹
+spread_odd_label=à¸à¸£à¸°à¸à¸²à¸¢à¸à¸¢à¹à¸²à¸à¹à¸«à¸¥à¸·à¸à¹à¸¨à¸©
+spread_even.title=รวมà¸à¸²à¸£à¸à¸£à¸°à¸à¸²à¸¢à¸«à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¸²à¸à¸«à¸à¹à¸²à¸à¸¹à¹
+spread_even_label=à¸à¸£à¸°à¸à¸²à¸¢à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸²à¹à¸à¸µà¸¢à¸¡
+
+# Document properties dialog box
+document_properties.title=à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¹à¸à¸à¸ªà¸²à¸£â¦
+document_properties_label=à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¹à¸à¸à¸ªà¸²à¸£â¦
+document_properties_file_name=à¸à¸·à¹à¸à¹à¸à¸¥à¹:
+document_properties_file_size=à¸à¸à¸²à¸à¹à¸à¸¥à¹:
+# LOCALIZATION NOTE (document_properties_kb): "{{size_kb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in kilobytes, respectively in bytes.
+document_properties_kb={{size_kb}} KB ({{size_b}} à¹à¸à¸à¹)
+# LOCALIZATION NOTE (document_properties_mb): "{{size_mb}}" and "{{size_b}}"
+# will be replaced by the PDF file size in megabytes, respectively in bytes.
+document_properties_mb={{size_mb}} MB ({{size_b}} à¹à¸à¸à¹)
+document_properties_title=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸:
+document_properties_author=à¸à¸¹à¹à¸ªà¸£à¹à¸²à¸:
+document_properties_subject=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸:
+document_properties_keywords=à¸à¸³à¸ªà¸³à¸à¸±à¸:
+document_properties_creation_date=วัà¸à¸à¸µà¹à¸ªà¸£à¹à¸²à¸:
+document_properties_modification_date=วัà¸à¸à¸µà¹à¹à¸à¹à¹à¸:
+# LOCALIZATION NOTE (document_properties_date_string): "{{date}}" and "{{time}}"
+# will be replaced by the creation/modification date, and time, of the PDF file.
+document_properties_date_string={{date}}, {{time}}
+document_properties_creator=à¸à¸¹à¹à¸ªà¸£à¹à¸²à¸:
+document_properties_producer=à¸à¸¹à¹à¸à¸¥à¸´à¸ PDF:
+document_properties_version=รุà¹à¸ PDF:
+document_properties_page_count=à¸à¸³à¸à¸§à¸à¸«à¸à¹à¸²:
+document_properties_page_size=à¸à¸à¸²à¸à¸«à¸à¹à¸²:
+document_properties_page_size_unit_inches=in
+document_properties_page_size_unit_millimeters=mm
+document_properties_page_size_orientation_portrait=à¹à¸à¸§à¸à¸±à¹à¸
+document_properties_page_size_orientation_landscape=à¹à¸à¸§à¸à¸à¸
+document_properties_page_size_name_a3=A3
+document_properties_page_size_name_a4=A4
+document_properties_page_size_name_letter=à¸à¸à¸«à¸¡à¸²à¸¢
+document_properties_page_size_name_legal=à¸à¹à¸à¸à¸à¸«à¸¡à¸²à¸¢
+# LOCALIZATION NOTE (document_properties_page_size_dimension_string):
+# "{{width}}", "{{height}}", {{unit}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement and orientation, of the (current) page.
+document_properties_page_size_dimension_string={{width}} Ã {{height}} {{unit}} ({{orientation}})
+# LOCALIZATION NOTE (document_properties_page_size_dimension_name_string):
+# "{{width}}", "{{height}}", {{unit}}, {{name}}, and {{orientation}} will be replaced by
+# the size, respectively their unit of measurement, name, and orientation, of the (current) page.
+document_properties_page_size_dimension_name_string={{width}} Ã {{height}} {{unit}} ({{name}}, {{orientation}})
+# LOCALIZATION NOTE (document_properties_linearized): The linearization status of
+# the document; usually called "Fast Web View" in English locales of Adobe software.
+document_properties_linearized=มุมมà¸à¸à¹à¸§à¹à¸à¹à¸à¸à¸£à¸§à¸à¹à¸£à¹à¸§:
+document_properties_linearized_yes=à¹à¸à¹
+document_properties_linearized_no=à¹à¸¡à¹
+document_properties_close=à¸à¸´à¸
+
+print_progress_message=à¸à¸³à¸¥à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¹à¸à¸à¸ªà¸²à¸£à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸²à¸£à¸à¸´à¸¡à¸à¹â¦
+# LOCALIZATION NOTE (print_progress_percent): "{{progress}}" will be replaced by
+# a numerical per cent value.
+print_progress_percent={{progress}}%
+print_progress_close=ยà¸à¹à¸¥à¸´à¸
+
+# Tooltips and alt text for side panel toolbar buttons
+# (the _label strings are alt text for the buttons, the .title strings are
+# tooltips)
+toggle_sidebar.title=à¹à¸à¸´à¸/à¸à¸´à¸à¹à¸à¸à¸à¹à¸²à¸
+toggle_sidebar_notification.title=à¹à¸à¸´à¸/à¸à¸´à¸à¹à¸à¸à¸à¹à¸²à¸ (à¹à¸à¸à¸ªà¸²à¸£à¸¡à¸µà¹à¸à¹à¸²à¸£à¹à¸²à¸/à¹à¸à¸¥à¹à¹à¸à¸)
+toggle_sidebar_label=à¹à¸à¸´à¸/à¸à¸´à¸à¹à¸à¸à¸à¹à¸²à¸
+document_outline.title=à¹à¸ªà¸à¸à¹à¸à¹à¸²à¸£à¹à¸²à¸à¹à¸à¸à¸ªà¸²à¸£ (à¸à¸¥à¸´à¸à¸ªà¸à¸à¸à¸£à¸±à¹à¸à¹à¸à¸·à¹à¸à¸à¸¢à¸²à¸¢/ยุà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸±à¹à¸à¸«à¸¡à¸)
+document_outline_label=à¹à¸à¹à¸²à¸£à¹à¸²à¸à¹à¸à¸à¸ªà¸²à¸£
+attachments.title=à¹à¸ªà¸à¸à¹à¸à¸¥à¹à¹à¸à¸
+attachments_label=à¹à¸à¸¥à¹à¹à¸à¸
+thumbs.title=à¹à¸ªà¸à¸à¸ าà¸à¸à¸à¸²à¸à¸¢à¹à¸
+thumbs_label=ภาà¸à¸à¸à¸²à¸à¸¢à¹à¸
+findbar.title=à¸à¹à¸à¸«à¸²à¹à¸à¹à¸à¸à¸ªà¸²à¸£
+findbar_label=à¸à¹à¸à¸«à¸²
+
+# Thumbnails panel item (tooltip and alt text for images)
+# LOCALIZATION NOTE (thumb_page_title): "{{page}}" will be replaced by the page
+# number.
+thumb_page_title=หà¸à¹à¸² {{page}}
+# LOCALIZATION NOTE (thumb_page_canvas): "{{page}}" will be replaced by the page
+# number.
+thumb_page_canvas=ภาà¸à¸à¸à¸²à¸à¸¢à¹à¸à¸à¸à¸à¸«à¸à¹à¸² {{page}}
+
+# Find panel button title and messages
+find_input.title=à¸à¹à¸à¸«à¸²
+find_input.placeholder=à¸à¹à¸à¸«à¸²à¹à¸à¹à¸à¸à¸ªà¸²à¸£â¦
+find_previous.title=หาà¸à¸³à¹à¸«à¸à¹à¸à¸à¹à¸à¸à¸«à¸à¹à¸²à¸à¸à¸à¸§à¸¥à¸µ
+find_previous_label=à¸à¹à¸à¸à¸«à¸à¹à¸²
+find_next.title=หาà¸à¸³à¹à¸«à¸à¹à¸à¸à¸±à¸à¹à¸à¸à¸à¸à¸§à¸¥à¸µ
+find_next_label=à¸à¸±à¸à¹à¸
+find_highlight=à¹à¸à¹à¸à¸ªà¸µà¸à¸±à¹à¸à¸«à¸¡à¸
+find_match_case_label=à¸à¸±à¸§à¸à¸´à¸¡à¸à¹à¹à¸«à¸à¹à¹à¸¥à¹à¸à¸à¸£à¸à¸à¸±à¸
+find_entire_word_label=à¸à¸±à¹à¸à¸à¸³
+find_reached_top=à¸à¹à¸à¸«à¸²à¸à¸¶à¸à¸à¸¸à¸à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¸«à¸à¹à¸² à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¹à¸à¸à¸²à¸à¸à¹à¸²à¸à¸¥à¹à¸²à¸
+find_reached_bottom=à¸à¹à¸à¸«à¸²à¸à¸¶à¸à¸à¸¸à¸à¸ªà¸´à¹à¸à¸ªà¸¸à¸à¸«à¸à¹à¸² à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¹à¸à¸à¸²à¸à¸à¹à¸²à¸à¸à¸
+# LOCALIZATION NOTE (find_match_count): The supported plural forms are
+# [one|two|few|many|other], with [other] as the default value.
+# "{{current}}" and "{{total}}" will be replaced by a number representing the
+# index of the currently active find result, respectively a number representing
+# the total number of matches in the document.
+find_match_count={[ plural(total) ]}
+find_match_count[one]={{current}} à¸à¸²à¸ {{total}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count[two]={{current}} à¸à¸²à¸ {{total}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count[few]={{current}} à¸à¸²à¸ {{total}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count[many]={{current}} à¸à¸²à¸ {{total}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count[other]={{current}} à¸à¸²à¸ {{total}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+# LOCALIZATION NOTE (find_match_count_limit): The supported plural forms are
+# [zero|one|two|few|many|other], with [other] as the default value.
+# "{{limit}}" will be replaced by a numerical value.
+find_match_count_limit={[ plural(limit) ]}
+find_match_count_limit[zero]=มาà¸à¸à¸§à¹à¸² {{limit}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count_limit[one]=มาà¸à¸à¸§à¹à¸² {{limit}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count_limit[two]=มาà¸à¸à¸§à¹à¸² {{limit}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count_limit[few]=มาà¸à¸à¸§à¹à¸² {{limit}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count_limit[many]=มาà¸à¸à¸§à¹à¸² {{limit}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_match_count_limit[other]=มาà¸à¸à¸§à¹à¸² {{limit}} à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸
+find_not_found=à¹à¸¡à¹à¸à¸à¸§à¸¥à¸µ
+
+# Error panel labels
+error_more_info=à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+error_less_info=à¸à¹à¸à¸¡à¸¹à¸¥à¸à¹à¸à¸¢à¸¥à¸
+error_close=à¸à¸´à¸
+# LOCALIZATION NOTE (error_version_info): "{{version}}" and "{{build}}" will be
+# replaced by the PDF.JS version and build ID.
+error_version_info=PDF.js v{{version}} (build: {{build}})
+# LOCALIZATION NOTE (error_message): "{{message}}" will be replaced by an
+# english string describing the error.
+error_message=à¸à¹à¸à¸à¸§à¸²à¸¡: {{message}}
+# LOCALIZATION NOTE (error_stack): "{{stack}}" will be replaced with a stack
+# trace.
+error_stack=สà¹à¸à¸: {{stack}}
+# LOCALIZATION NOTE (error_file): "{{file}}" will be replaced with a filename
+error_file=à¹à¸à¸¥à¹: {{file}}
+# LOCALIZATION NOTE (error_line): "{{line}}" will be replaced with a line number
+error_line=à¸à¸£à¸£à¸à¸±à¸: {{line}}
+rendering_error=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¹à¸£à¸à¹à¸à¸à¸£à¹à¸«à¸à¹à¸²
+
+# Predefined zoom values
+page_scale_width=à¸à¸§à¸²à¸¡à¸à¸§à¹à¸²à¸à¸«à¸à¹à¸²
+page_scale_fit=à¸à¸à¸à¸µà¸«à¸à¹à¸²
+page_scale_auto=à¸à¸¹à¸¡à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+page_scale_actual=à¸à¸à¸²à¸à¸à¸£à¸´à¸
+# LOCALIZATION NOTE (page_scale_percent): "{{scale}}" will be replaced by a
+# numerical scale value.
+page_scale_percent={{scale}}%
+
+# Loading indicator messages
+loading_error_indicator=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸
+loading_error=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¹à¸«à¸¥à¸ PDF
+invalid_file_error=à¹à¸à¸¥à¹ PDF à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸à¸«à¸£à¸·à¸à¹à¸ªà¸µà¸¢à¸«à¸²à¸¢
+missing_file_error=à¹à¸à¸¥à¹ PDF หายà¹à¸
+unexpected_response_error=à¸à¸²à¸£à¸à¸à¸à¸ªà¸à¸à¸à¸à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹à¹à¸¡à¹à¸à¸²à¸à¸à¸´à¸
+
+# LOCALIZATION NOTE (annotation_date_string): "{{date}}" and "{{time}}" will be
+# replaced by the modification date, and time, of the annotation.
+annotation_date_string={{date}}, {{time}}
+
+# LOCALIZATION NOTE (text_annotation_type.alt): This is used as a tooltip.
+# "{{type}}" will be replaced with an annotation type from a list defined in
+# the PDF spec (32000-1:2008 Table 169 â Annotation types).
+# Some common types are e.g.: "Check", "Text", "Comment", "Note"
+text_annotation_type.alt=[à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¸à¸£à¸°à¸à¸à¸ {{type}}]
+password_label=à¸à¹à¸à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸à¸·à¹à¸à¹à¸à¸´à¸à¹à¸à¸¥à¹ PDF à¸à¸µà¹
+password_invalid=รหัสà¸à¹à¸²à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ à¹à¸à¸£à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸
+password_ok=à¸à¸à¸¥à¸
+password_cancel=ยà¸à¹à¸¥à¸´à¸
+
+printing_not_supported=à¸à¸³à¹à¸à¸·à¸à¸: à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸²à¸£à¸à¸´à¸¡à¸à¹à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸¡à¸à¸µà¹
+printing_not_ready=à¸à¸³à¹à¸à¸·à¸à¸: PDF à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¹à¸«à¸¥à¸à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸¡à¸à¸µà¹à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸²à¸£à¸à¸´à¸¡à¸à¹
+web_fonts_disabled=à¹à¸à¸à¸à¸±à¸à¸©à¸£à¹à¸§à¹à¸à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸: à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¹à¸à¸à¸à¸±à¸à¸©à¸£ PDF à¸à¸±à¸à¸à¸±à¸§
+document_colors_not_allowed=à¹à¸à¸à¸ªà¸²à¸£ PDF à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸ªà¸µà¸à¸à¸à¸à¸±à¸§à¹à¸à¸: "à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸«à¸à¹à¸²à¹à¸à¸à¸ªà¸²à¸£à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¥à¸·à¸à¸à¸ªà¸µà¸à¸à¸à¸à¸±à¸§à¹à¸à¸" à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
diff --git a/browser/profile/bookmarks.inc b/browser/profile/bookmarks.inc
new file mode 100644
index 00000000000..218f57b6d3f
--- /dev/null
+++ b/browser/profile/bookmarks.inc
@@ -0,0 +1,72 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+#filter emptyLines
+
+# LOCALIZATION NOTE: The 'en-US' strings in the URLs will be replaced with
+# your locale code, and link to your translated pages as soon as they're
+# live.
+
+#define bookmarks_title à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+#define bookmarks_heading à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+
+#define bookmarks_toolbarfolder à¹à¸à¸¥à¹à¸à¸à¸£à¹à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+#define bookmarks_toolbarfolder_description à¹à¸à¸´à¹à¸¡à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸à¸¢à¸±à¸à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¹à¸«à¹à¹à¸ªà¸à¸à¸à¸¥à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²à¹à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸µà¹à¸à¸±à¹à¸à¸«à¸à¹à¸²
+
+# LOCALIZATION NOTE (getting_started):
+# link title for https://www.mozilla.org/en-US/firefox/central/
+#define getting_started à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¹à¸à¸²à¸
+
+# LOCALIZATION NOTE (firefox_heading):
+# Firefox links folder name
+#define firefox_heading Mozilla Firefox
+
+# LOCALIZATION NOTE (firefox_help):
+# link title for https://www.mozilla.org/en-US/firefox/help/
+#define firefox_help à¸à¸§à¸²à¸¡à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸à¹à¸¥à¸°à¸§à¸´à¸à¸µà¹à¸à¹
+
+# LOCALIZATION NOTE (firefox_customize):
+# link title for https://www.mozilla.org/en-US/firefox/customize/
+#define firefox_customize à¸à¸£à¸±à¸à¹à¸à¹à¸ Firefox
+
+# LOCALIZATION NOTE (firefox_community):
+# link title for https://www.mozilla.org/en-US/contribute/
+#define firefox_community มีสà¹à¸§à¸à¸£à¹à¸§à¸¡
+
+# LOCALIZATION NOTE (firefox_about):
+# link title for https://www.mozilla.org/en-US/about/
+#define firefox_about à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¹à¸£à¸²
+
+# LOCALIZATION NOTE (nightly_heading):
+# Firefox Nightly links folder name
+#define nightly_heading à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£ Firefox Nightly
+
+# LOCALIZATION NOTE (nightly_blog):
+# Nightly builds only, link title for https://blog.nightly.mozilla.org/
+#define nightly_blog à¸à¸¥à¹à¸à¸ Firefox Nightly
+
+# LOCALIZATION NOTE (bugzilla):
+# Nightly builds only, link title for https://bugzilla.mozilla.org/
+#define bugzilla à¸à¸±à¸§à¸à¸´à¸à¸à¸²à¸¡à¸à¹à¸à¸à¸à¸à¸£à¹à¸à¸ Mozilla
+
+# LOCALIZATION NOTE (mdn):
+# Nightly builds only, link title for https://developer.mozilla.org/
+#define mdn à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢à¸à¸±à¸à¸à¸±à¸à¸à¸² Mozilla
+
+# LOCALIZATION NOTE (nightly_tester_tools):
+# Nightly builds only, link title for https://addons.mozilla.org/en-US/firefox/addon/nightly-tester-tools/
+#define nightly_tester_tools à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸à¸ªà¸à¸ Nightly
+
+# LOCALIZATION NOTE (crashes):
+# Nightly builds only, link title for about:crashes
+#define crashes à¸à¹à¸à¸à¸±à¸à¸à¹à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸à¸¸à¸
+
+# LOCALIZATION NOTE (irc):
+# Nightly builds only, link title for ircs://irc.mozilla.org/nightly
+#define irc à¸à¸¹à¸à¸à¸¸à¸¢à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸ Nightly à¸à¸ IRC
+
+# LOCALIZATION NOTE (planet):
+# Nightly builds only, link title for https://planet.mozilla.org/
+#define planet à¸à¸²à¸§à¹à¸à¸£à¸²à¸°à¸«à¹ Mozilla
+
+#unfilter emptyLines
diff --git a/browser/updater/updater.ini b/browser/updater/updater.ini
new file mode 100644
index 00000000000..a65c26f599d
--- /dev/null
+++ b/browser/updater/updater.ini
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# This file is in the UTF-8 encoding
+# All strings must be less than 600 chars.
+[Strings]
+TitleText=à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸ %MOZ_APP_DISPLAYNAME%
+InfoText=%MOZ_APP_DISPLAYNAME% à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸±à¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¸°à¸à¸°à¹à¸£à¸´à¹à¸¡à¹à¸à¸à¸µà¸à¸ªà¸±à¸à¸à¸£à¸¹à¹â¦
+MozillaMaintenanceDescription=à¸à¸£à¸´à¸à¸²à¸£à¸à¸³à¸£à¸¸à¸à¸£à¸±à¸à¸©à¸²à¸à¸à¸ Mozilla à¸à¸³à¹à¸«à¹à¹à¸à¹à¹à¸à¸§à¹à¸²à¸à¸¸à¸à¸¡à¸µ Mozilla Firefox รุà¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸à¹à¸¥à¸°à¸à¸¥à¸à¸à¸ ัยà¸à¸µà¹à¸ªà¸¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸ à¸à¸²à¸£à¸à¸³ Firefox à¹à¸«à¹à¹à¸à¹à¸à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸à¸à¸¢à¸¹à¹à¹à¸ªà¸¡à¸à¹à¸à¹à¸à¸ªà¸´à¹à¸à¸ªà¸³à¸à¸±à¸à¸à¸¢à¹à¸²à¸à¸¡à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¹à¸¥à¸à¹à¸à¸à¸à¸à¸¸à¸ à¹à¸¥à¸° Mozilla à¹à¸à¸°à¸à¸³à¹à¸à¹à¸à¸à¸¢à¹à¸²à¸à¸¢à¸´à¹à¸à¹à¸«à¹à¸à¸¸à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£à¸à¸µà¹à¹à¸§à¹
diff --git a/calendar/chrome/calendar/calendar-alarms.properties b/calendar/chrome/calendar/calendar-alarms.properties
new file mode 100644
index 00000000000..be5d58af64c
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-alarms.properties
@@ -0,0 +1,39 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (reminderCustomTitle):
+# %1$S = unit, %2$S = reminderCustomOrigin
+# Example: "3 minutes" "before the task starts"
+reminderCustomTitle=%1$S %2$S
+reminderTitleAtStartEvent=à¸à¹à¸§à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸£à¸´à¹à¸¡
+reminderTitleAtStartTask=à¸à¹à¸§à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸²à¸à¹à¸£à¸´à¹à¸¡
+reminderTitleAtEndEvent=à¸à¹à¸§à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+reminderTitleAtEndTask=à¸à¹à¸§à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¸à¸²à¸à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+
+# LOCALIZATION NOTE (reminderSnoozeOkA11y)
+# This string is not seen in the UI, it is read by screen readers when the user
+# focuses the "OK" button in the "Snooze for..." popup of the alarm dialog.
+# %1$S = any of unit*
+reminderSnoozeOkA11y=à¹à¸¥à¸·à¹à¸à¸à¸à¸²à¸£à¹à¸à¸·à¸à¸à¹à¸à¹à¸à¹à¸§à¸¥à¸² %1$S
+
+reminderCustomOriginBeginBeforeEvent=à¸à¹à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸£à¸´à¹à¸¡
+reminderCustomOriginBeginAfterEvent=หลัà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸£à¸´à¹à¸¡
+reminderCustomOriginEndBeforeEvent=à¸à¹à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+reminderCustomOriginEndAfterEvent=หลัà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+reminderCustomOriginBeginBeforeTask=à¸à¹à¸à¸à¸à¸²à¸à¹à¸£à¸´à¹à¸¡
+reminderCustomOriginBeginAfterTask=หลัà¸à¸à¸²à¸à¹à¸£à¸´à¹à¸¡
+reminderCustomOriginEndBeforeTask=à¸à¹à¸à¸à¸à¸²à¸à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+reminderCustomOriginEndAfterTask=หลัà¸à¸à¸²à¸à¸ªà¸´à¹à¸à¸ªà¸¸à¸
+
+reminderErrorMaxCountReachedEvent=à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸³à¸à¸±à¸à¹à¸à¸µà¸¢à¸ #1 à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸³à¸à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+reminderErrorMaxCountReachedTask=à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸³à¸à¸±à¸à¹à¸à¸µà¸¢à¸ #1 à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸³à¸à¹à¸à¸à¸²à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (reminderReadonlyNotification)
+# This notification will be presented in the alarm dialog if reminders for not
+# writable items/calendars are displayed.
+# %1$S - localized value of calendar.alarm.snoozeallfor.label (defined in calendar.dtd)
+reminderReadonlyNotification=à¸à¸à¸°à¸à¸µà¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸´à¸à¹à¸à¸¢à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸³à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸à¸´à¸à¸´à¸à¹à¸à¸à¸à¹à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸µà¸¢à¸§ à¹à¸à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸¥à¸·à¹à¸à¸à¹à¸à¹ à¸à¸¸à¹à¸¡ '%1$S' à¸à¸°à¹à¸¥à¸·à¹à¸à¸à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸³à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸à¸²à¸°à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¹à¸à¸µà¸¢à¸à¹à¸à¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+# LOCALIZATION NOTE (reminderDisabledSnoozeButtonTooltip)
+# This tooltip is only displayed, if the button is disabled
+reminderDisabledSnoozeButtonTooltip=à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸à¸à¸²à¸£à¹à¸¥à¸·à¹à¸à¸à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸³à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸à¸´à¸à¸´à¸à¹à¸à¸à¸à¹à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸µà¸¢à¸§
diff --git a/calendar/chrome/calendar/calendar-event-dialog-attendees.properties b/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
new file mode 100644
index 00000000000..d1e27541af4
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog-attendees.properties
@@ -0,0 +1,15 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+event.attendee.role.required = à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸µà¹à¸à¸³à¹à¸à¹à¸
+event.attendee.role.optional = à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+event.attendee.role.nonparticipant = à¹à¸¡à¹à¹à¸à¹à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+event.attendee.role.chair = à¸à¸£à¸°à¸à¸²à¸
+event.attendee.role.unknown = à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸µà¹à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸ (%1$S)
+
+event.attendee.usertype.individual = à¸à¸¸à¸à¸à¸¥
+event.attendee.usertype.group = à¸à¸¥à¸¸à¹à¸¡
+event.attendee.usertype.resource = à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£
+event.attendee.usertype.room = หà¹à¸à¸
+event.attendee.usertype.unknown = à¸à¸à¸´à¸à¸à¸µà¹à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸ (%1$S)
diff --git a/calendar/chrome/calendar/calendar-event-dialog.dtd b/calendar/chrome/calendar/calendar-event-dialog.dtd
new file mode 100644
index 00000000000..e27e25ce6ba
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog.dtd
@@ -0,0 +1,424 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-event-dialog.properties b/calendar/chrome/calendar/calendar-event-dialog.properties
new file mode 100644
index 00000000000..ab88c8a734b
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-event-dialog.properties
@@ -0,0 +1,529 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (dailyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Daily repeat rules
+# #1 - number
+# e.g. "every 4 days"
+dailyEveryNth=à¸à¸¸à¸ #1 วัà¸
+repeatDetailsRuleDaily4=à¸à¸¸à¸à¸§à¸±à¸à¸à¸£à¸£à¸¡à¸à¸²
+
+# LOCALIZATION NOTE (weeklyNthOnNounclass...)
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday (one or more)
+# #2 - week interval
+# e.g. "every 3 weeks on Tuesday, Wednesday and Thursday
+weeklyNthOnNounclass1=à¸à¸¸à¸ #2 สัà¸à¸à¸²à¸«à¹à¸à¸µà¹ %1$S
+weeklyNthOnNounclass2=à¸à¸¸à¸ #2 สัà¸à¸à¸²à¸«à¹à¸à¸µà¹ %1$S
+
+# LOCALIZATION NOTE (weeklyEveryNth):
+# Edit recurrence window -> Recurrence pattern -> Weekly repeat rules
+# #1 - interval
+# e.g. "every 5 weeks"
+weeklyEveryNth=à¸à¸¸à¸ #1 สัà¸à¸à¸²à¸«à¹
+
+# LOCALIZATION NOTE ('repeatDetailsDay...' and 'repeatDetailsDay...Nounclass'):
+# Week days names and week days noun classes (feminine/masculine grammatical
+# gender) for languages that need different localization when weekdays nouns
+# have different noun classes (genders).
+# For every weekday, in 'repeatDetailsDay...Nounclass' strings write:
+# "nounclass1" for languages with grammatical genders -> MASCULINE gender;
+# for languages with noun classes -> a noun class;
+# for languages without noun classes or grammatical gender.
+#
+# "nounclass2" for languages with grammatical genders -> FEMININE gender;
+# for languages with noun classes -> a different noun class.
+#
+# "nounclass3", "nounclass4" and so on for languages that need more than two
+# noun classes for weekdays. In this case add corresponding
+# rule string with "Nounclass..." suffix and ordinal string
+# "repeatOrdinalxNounclass..."
+# Will be used rule strings with "Nounclass..." suffix corresponding to the
+# following strings if there is a weekday in the rule string.
+repeatDetailsDay1=วัà¸à¸à¸²à¸à¸´à¸à¸¢à¹
+repeatDetailsDay1Nounclass=nounclass1
+repeatDetailsDay2=วัà¸à¸à¸±à¸à¸à¸£à¹
+repeatDetailsDay2Nounclass=nounclass1
+repeatDetailsDay3=วัà¸à¸à¸±à¸à¸à¸²à¸£
+repeatDetailsDay3Nounclass=nounclass1
+repeatDetailsDay4=วัà¸à¸à¸¸à¸
+repeatDetailsDay4Nounclass=nounclass1
+repeatDetailsDay5=วัà¸à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ
+repeatDetailsDay5Nounclass=nounclass1
+repeatDetailsDay6=วัà¸à¸¨à¸¸à¸à¸£à¹
+repeatDetailsDay6Nounclass=nounclass1
+repeatDetailsDay7=วัà¸à¹à¸ªà¸²à¸£à¹
+repeatDetailsDay7Nounclass=nounclass1
+
+# LOCALIZATION NOTE (repeatDetailsAnd)
+# Used to show a number of weekdays in a list
+# i.e. "Sunday, Monday, Tuesday " + and + " Wednesday"
+repeatDetailsAnd=à¹à¸¥à¸°
+
+# LOCALIZATION NOTE (monthlyRuleNthOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of weekdays with ordinal, article and noun class/gender
+# (ordinal and weekday of every element in the list follow the order
+# and the rule of ordinalWeekdayOrder string)
+# #2 - interval
+# e.g. "the first Monday and the last Friday of every 3 months"
+monthlyRuleNthOfEveryNounclass1=%1$S à¸à¸à¸à¸à¸¸à¸ #2 à¹à¸à¸·à¸à¸
+monthlyRuleNthOfEveryNounclass2=%1$S à¸à¸à¸à¸à¸¸à¸ #2 à¹à¸à¸·à¸à¸
+
+# LOCALIZATION NOTE (ordinalWeekdayOrder):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# This string allows to change the order of the elements "ordinal" and
+# "weekday" (or to insert a word between them) for the argument %1$S of the
+# string monthlyRuleNthOfEveryNounclass...
+# Without changing this string, the order is that one required from most
+# languages: ordinal + weekday (e.g. "'the first' 'Monday' of every 2 months").
+# %1$S - ordinal with article
+# %2$S - weekday noun
+# e.g. "'the first' 'Monday'"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+ordinalWeekdayOrder=%2$S %1$S
+
+# LOCALIZATION NOTE (monthlyEveryOfEveryNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - list of single weekdays and/or weekdays with ordinal, article and
+# noun class/gender when rule contains also specific day in the month
+# #2 - interval
+# e.g. "every Monday, Tuesday and the second Sunday of every month"
+monthlyEveryOfEveryNounclass1=à¸à¸¸à¸ %1$S à¸à¸à¸à¸à¸¸à¸ #2 à¹à¸à¸·à¸à¸
+monthlyEveryOfEveryNounclass2=à¸à¸¸à¸ %1$S à¸à¸à¸à¸à¸¸à¸ #2 à¹à¸à¸·à¸à¸
+
+# LOCALIZATION NOTE (monthlyDaysOfNth_day):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month or a sequence of days of month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties) separated with commas;
+# e.g. "days 3, 6 and 9" or "days 3rd, 6th and 9th"
+monthlyDaysOfNth_day=วัà¸à¸à¸µà¹ %1$S
+
+# LOCALIZATION NOTE (monthlyDaysOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - it's the string monthlyDaysOfNth_day: day of month or a sequence of days
+# of month, possibly followed by an ordinal symbol, separated with commas;
+# #2 - monthly interval
+# e.g. "days 3, 6, 9 and 12 of every 3 months"
+monthlyDaysOfNth=%1$S à¸à¸à¸à¸à¸¸à¸ #2 à¹à¸à¸·à¸à¸
+
+# LOCALIZATION NOTE (monthlyLastDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# %1$S - day of month
+# #2 - month interval
+# e.g. "the last day of every 3 months"
+monthlyLastDayOfNth=วัà¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢à¸à¸à¸à¸à¸¸à¸ #1 à¹à¸à¸·à¸à¸
+
+# LOCALIZATION NOTE (monthlyEveryDayOfNth):
+# Edit recurrence window -> Recurrence pattern -> Monthly repeat rules
+# #2 - month interval
+# e.g. "every day of the month every 4 months"
+monthlyEveryDayOfNth=à¸à¸¸à¸à¸§à¸±à¸à¸à¸à¸à¹à¸à¸·à¸à¸à¸à¸¸à¸ #2 à¹à¸à¸·à¸à¸
+
+# LOCALIZATION NOTE (repeatOrdinal...Nounclass...):
+# Ordinal numbers nouns for every noun class (grammatical genders) of weekdays
+# considered in 'repeatDetailsDayxNounclass' strings. For languages that need
+# localization according to genders or noun classes.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add 'repeatOrdinal...Nounclass' strings with suffix 3, 4 and so on for
+# languages with more than two noun classes for weekdays. In this case
+# must be added corresponding rule strings with 'Nounclass...' suffix and
+# corresponding values "nounclass..." must be written in
+# 'repeatDetailsDayxNounclass' strings.
+repeatOrdinal1Nounclass1=à¹à¸£à¸
+repeatOrdinal2Nounclass1=à¸à¸µà¹à¸ªà¸à¸
+repeatOrdinal3Nounclass1=à¸à¸µà¹à¸ªà¸²à¸¡
+repeatOrdinal4Nounclass1=à¸à¸µà¹à¸ªà¸µà¹
+repeatOrdinal5Nounclass1=à¸à¸µà¹à¸«à¹à¸²
+repeatOrdinal-1Nounclass1=สุà¸à¸à¹à¸²à¸¢
+repeatOrdinal1Nounclass2=à¹à¸£à¸
+repeatOrdinal2Nounclass2=à¸à¸µà¹à¸ªà¸à¸
+repeatOrdinal3Nounclass2=à¸à¸µà¹à¸ªà¸²à¸¡
+repeatOrdinal4Nounclass2=à¸à¸µà¹à¸ªà¸µà¹
+repeatOrdinal5Nounclass2=à¸à¸µà¹à¸«à¹à¸²
+repeatOrdinal-1Nounclass2=สุà¸à¸à¹à¸²à¸¢
+
+# LOCALIZATION NOTE (yearlyNthOn):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# %1$S - month name
+# %2$S - day of month possibly followed by an ordinal symbol (depending on the string
+# dayOrdinalSymbol in dateFormat.properties)
+# #3 - yearly interval
+# e.g. "every 3 years on December 14"
+# "every 2 years on December 8th"
+yearlyNthOn=à¸à¸¸à¸ #3 à¸à¸µà¸à¸µà¹ %2$S %1$S
+
+# LOCALIZATION NOTE (yearlyNthOnNthOfNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%2$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - ordinal with article and noun class/gender corresponding to weekday
+# %2$S - weekday
+# %3$S - month
+# #4 - yearly interval
+# e.g. "the second Monday of every March"
+# e.g "every 3 years the second Monday of March"
+yearlyNthOnNthOfNounclass1=à¸à¸¸à¸ #4 à¸à¸µà¸à¸µà¹ %2$S %1$S à¸à¸à¸ %3$S
+yearlyNthOnNthOfNounclass2=à¸à¸¸à¸ #4 à¸à¸µà¸à¸µà¹ %2$S %1$S à¸à¸à¸ %3$S
+
+# LOCALIZATION NOTE (yearlyOnEveryNthOfNthNounclass...):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# Translate these strings according to noun class/gender of weekday (%1$S)
+# set in 'repeadDetailsDay...Nounclass' strings.
+# Nounclass1 <-> Masculine gender; Nounclass2 <-> Feminine gender.
+# Add others strings with suffix 3, 4,... for others noun classes if your
+# language need them. In this case, corresponding strings must be added for
+# others rule strings with 'Nounclass...' suffix and corresponding values
+# "nounclass..." must be written in 'repeatDetailsDayxNounclass' strings.
+# %1$S - weekday
+# %2$S - month
+# #3 - yearly interval
+# e.g. "every Thursday of March"
+# e.g "every 3 years on every Thursday of March"
+yearlyOnEveryNthOfNthNounclass1=à¸à¸¸à¸ #3 à¸à¸µà¹à¸à¸à¸¸à¸ %1$S à¸à¸à¸ %2$S
+yearlyOnEveryNthOfNthNounclass2=à¸à¸¸à¸ #3 à¸à¸µà¹à¸à¸à¸¸à¸ %1$S à¸à¸à¸ %2$S
+
+#LOCALIZATION NOTE (yearlyEveryDayOf):
+# Edit recurrence window -> Recurrence pattern -> Yearly repeat rules
+# This string describes part of a yearly rule which includes every day of a month.
+# %1$S - month
+# #2 - yearly interval
+# e.g. "every day of December"
+# e.g. "every 3 years every day of December"
+yearlyEveryDayOf=à¸à¸¸à¸ #2 à¸à¸µà¹à¸à¸à¸¸à¸à¸§à¸±à¸à¸à¸à¸ %1$S
+
+repeatDetailsMonth1=มà¸à¸£à¸²à¸à¸¡
+repeatDetailsMonth2=à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹
+repeatDetailsMonth3=มีà¸à¸²à¸à¸¡
+repeatDetailsMonth4=à¹à¸¡à¸©à¸²à¸¢à¸
+repeatDetailsMonth5=à¸à¸¤à¸©à¸ าà¸à¸¡
+repeatDetailsMonth6=มิà¸à¸¸à¸à¸²à¸¢à¸
+repeatDetailsMonth7=à¸à¸£à¸à¸à¸²à¸à¸¡
+repeatDetailsMonth8=สิà¸à¸«à¸²à¸à¸¡
+repeatDetailsMonth9=à¸à¸±à¸à¸¢à¸²à¸¢à¸
+repeatDetailsMonth10=à¸à¸¸à¸¥à¸²à¸à¸¡
+repeatDetailsMonth11=à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸
+repeatDetailsMonth12=à¸à¸±à¸à¸§à¸²à¸à¸¡
+
+# LOCALIZATION NOTE (repeatCount):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# #5 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# from 5:00 PM to 6:00 PM"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times
+# from 5:00 PM to 6:00 PM"
+
+# LOCALIZATION NOTE (repeatCountAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# #3 - event occurrence times: number
+# e.g. with monthlyRuleNthOfEvery:
+# "Occurs the first Sunday of every 3 month
+# only on 1/1/2009"
+# "Occurs the first Sunday of every 3 month
+# effective 1/1/2009 for 5 times"
+
+# LOCALIZATION NOTE (repeatDetailsUntil):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# %4$S - event start time (e.g. hh:mm (PM/AM))
+# %5$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with weeklyNthOn:
+# "Occurs every 2 weeks on Sunday and Friday
+# effective 1/1/2009 until 1/1/2010
+# from 5:00 PM to 6:00 PM"
+
+# LOCALIZATION NOTE (repeatDetailsUntilAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event end date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009 until 1/1/2010"
+
+# LOCALIZATION NOTE (repeatDetailsInfinite):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# %3$S - event start time (e.g. hh:mm (PM/AM))
+# %4$S - event end time (e.g. hh:mm (PM/AM))
+# e.g. with monthlyDaysOfNth:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009
+# from 5:00 PM to 6:00 PM"
+
+# LOCALIZATION NOTE (repeatDetailsInfiniteAllDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# %1%$ - A rule string (see above). This is the first line of the link
+# %2%$ - event start date (e.g. mm/gg/yyyy)
+# e.g. with monthlyDaysOfNth and all day event:
+# "Occurs day 3 of every 5 month
+# effective 1/1/2009"
+
+# LOCALIZATION NOTE (monthlyLastDay):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# A monthly rule with one or more days of the month (monthlyDaysOfNth) and the
+# string "the last day" of the month.
+# e.g.: "Occurs day 15, 20, 25 and the last day of every 3 months"
+monthlyLastDay=วัà¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢
+
+# LOCALIZATION NOTE (ruleTooComplex):
+# This string is shown in the repeat details area if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplex=à¸à¸¥à¸´à¸à¸à¸µà¹à¸à¸µà¹à¸ªà¸³à¸«à¸£à¸±à¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸
+
+# LOCALIZATION NOTE (ruleTooComplexSummary):
+# This string is shown in the event summary dialog if our code can't handle the
+# complexity of the recurrence rule yet.
+ruleTooComplexSummary=à¹à¸¡à¹à¸à¸£à¸²à¸à¸£à¸²à¸¢à¸¥à¸°à¹à¸à¸µà¸¢à¸à¸à¸²à¸£à¸à¸³à¸à¹à¸³
+
+# differences between the dialog for an Event or a Task
+newEvent=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸«à¸¡à¹
+newTask=à¸à¸²à¸à¹à¸«à¸¡à¹
+itemMenuLabelEvent=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+itemMenuAccesskeyEvent2=ห
+itemMenuLabelTask=à¸à¸²à¸
+itemMenuAccesskeyTask2=à¸
+
+emailSubjectReply=à¸à¸à¸à¸à¸¥à¸±à¸: %1$S
+
+# Link Location Dialog
+specifyLinkLocation=à¹à¸à¸£à¸à¸£à¸°à¸à¸¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸¥à¸´à¸à¸à¹
+enterLinkLocation=à¸à¹à¸à¸à¸«à¸à¹à¸²à¹à¸§à¹à¸à¸«à¸£à¸·à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸à¸à¸ªà¸²à¸£
+
+summaryDueTaskLabel=à¸à¸£à¸à¸à¸³à¸«à¸à¸:
+
+# Attach File Dialog
+selectAFile=à¹à¸à¸£à¸à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸µà¹à¸à¸°à¹à¸à¸
+removeCalendarsTitle=à¹à¸à¸²à¹à¸à¸¥à¹à¹à¸à¸à¸à¸à¸
+
+# LOCALIZATION NOTE (removeAttachmentsText): Semi-colon list of plural forms for
+# prompting attachment removal.
+# See http://developer.mozilla.org/en/Localization_and_Plurals
+removeAttachmentsText=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸² #1 à¹à¸à¸¥à¹à¹à¸à¸à¸à¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# Recurrence Dialog Widget Order
+# LOCALIZATION NOTE: You can change the order of below params
+# Edit recurrence window -> Recurrence pattern -> Repeat monthly
+# %1$S - ordinal with article, %2$S - weekday
+# e.g. "the First Saturday"
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+monthlyOrder=%2$S %1$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - day of month, %2$S - of, %3$S - month
+# e.g. "6 [of] September"
+# If you don't need %2$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder=%1$S %3$S %2$S
+
+# Edit recurrence window -> Recurrence pattern -> Repeat yearly
+# %1$S - ordinal with article, %2$S - weekday, %3$S - of, %4$S - month
+# e.g. "the First Saturday of September"
+# If you don't need %3$S in your locale - please put this on the third place.
+# DONT_TRANSLATE: Make sure there are no extra words in this property, just variables.
+yearlyOrder2=%2$S %1$S %3$S %4$S
+
+# LOCALIZATION NOTE (pluralForWeekdays):
+# This string allows to set the use of weekdays nouns in plural form for
+# languages that need them in sentences like "every Monday" or "every Sunday
+# of March" etc.
+# Rule strings involved by this setting are:
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+# In your local write:
+# "true" if sentences like those above need weekday in plural form;
+# "false" if sentences like those above don't need weekday in plural form;
+
+# LOCALIZATION NOTE (repeatDetailsDayxxxPlural):
+# Edit recurrence window -> Recurrence details link on Event/Task dialog window
+# Weekdays in plural form used inside sentences like "every Monday" or
+# "every Sunday of May" etc. for languages that need them.
+# These plurals will be used inside the following rule strings only if string
+# 'pluralForWeekdays' (see above) is set to "true":
+# - weeklyNthOn (only the first part) e.g. "every Sunday"
+# - monthlyEveryOfEvery
+# e.g. "every Monday of every month;every Monday every 2 months"
+# - yearlyOnEveryNthOfNth
+# e.g. "every Friday of March;every 2 years on every Friday of March"
+repeatDetailsDay1Plural=วัà¸à¸à¸²à¸à¸´à¸à¸¢à¹
+repeatDetailsDay2Plural=วัà¸à¸à¸±à¸à¸à¸£à¹
+repeatDetailsDay3Plural=วัà¸à¸à¸±à¸à¸à¸²à¸£
+repeatDetailsDay4Plural=วัà¸à¸à¸¸à¸
+repeatDetailsDay5Plural=วัà¸à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ
+repeatDetailsDay6Plural=วัà¸à¸¨à¸¸à¸à¸£à¹
+repeatDetailsDay7Plural=วัà¸à¹à¸ªà¸²à¸£à¹
+
+# LOCALIZATION NOTE (eventRecurrenceForeverLabel):
+# Edit/New Event dialog -> datepicker that sets the until date.
+# For recurring rules that repeat forever, this labels appears in the
+# datepicker, below the minimonth, as an option for the until date.
+eventRecurrenceForeverLabel=à¸à¸¥à¸à¸à¹à¸
+
+# LOCALIZATION NOTE (eventRecurrenceMonthlyLastDayLabel):
+# Edit dialog recurrence -> Monthly Recurrence pattern -> Monthly daypicker
+# The label on the monthly daypicker's last button that allows to select
+# the last day of the month inside a BYMONTHDAY rule.
+eventRecurrenceMonthlyLastDayLabel=วัà¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢
+
+# LOCALIZATION NOTE (counterSummaryAccepted) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryAccepted=%1$S à¹à¸à¹à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸³à¹à¸à¸´à¸ à¹à¸à¹à¹à¸à¹à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸:
+
+# LOCALIZATION NOTE (counterSummaryDeclined) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDeclined=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸³à¹à¸à¸´à¸ à¹à¸à¹à¹à¸à¹à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸:
+
+# LOCALIZATION NOTE (counterSummaryDelegated) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+counterSummaryDelegated=%1$S à¹à¸à¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸³à¹à¸à¸´à¸ à¹à¸à¹à¹à¸à¹à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸:
+
+# LOCALIZATION NOTE (counterSummaryNeedsAction) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+
+# LOCALIZATION NOTE (counterSummaryTentative) - this is only visible when opening the dialog from the
+# email summary view after receiving a counter message
+# %1$S - the name or email address of the replying attendee
+
+# LOCALIZATION NOTE (counterOnPreviousVersionNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+
+# LOCALIZATION NOTE (counterOnCounterDisallowedNotification) - this is only visible when opening the
+# dialog from the email summary view after receiving a counter message
+
+# LOCALIZATION NOTE (eventAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation
+eventAccepted=à¸à¸¸à¸à¹à¸à¹à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸³à¹à¸à¸´à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (eventTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted the event invitation tentatively
+eventTentative=à¸à¸¸à¸à¹à¸à¹à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸³à¹à¸à¸´à¸à¸à¸µà¹à¸à¸¢à¹à¸²à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸
+
+# LOCALIZATION NOTE (eventDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the event invitation
+eventDeclined=à¸à¸¸à¸à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸³à¹à¸à¸´à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (eventDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her participation to one
+# or more other participants (without attending / working on it his/herself)
+eventDelegated=à¸à¸¸à¸à¹à¸à¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸³à¹à¸à¸´à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (eventNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to an invitation
+eventNeedsAction=à¸à¸¸à¸à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸³à¹à¸à¸´à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (taskAccepted) - this will be displayed as notification
+# in the summary dialog if the user has accepted the assigned task
+taskAccepted=à¸à¸¸à¸à¹à¸à¹à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸µà¹à¸à¸°à¸à¸³à¸à¸²à¸à¹à¸à¸à¸²à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (taskTentative) - this will be displayed as notification
+# in the summary dialog if the user has accepted tentatively the assigned task
+taskTentative=à¸à¸¸à¸à¹à¸à¹à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸µà¹à¸à¸°à¸à¸³à¸à¸²à¸à¹à¸à¸à¸²à¸à¸à¸µà¹à¸à¸¢à¹à¸²à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸
+
+# LOCALIZATION NOTE (taskDeclined) - this will be displayed as notification
+# in the summary dialog if the user has declined the assigned task
+taskDeclined=à¸à¸¸à¸à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸µà¹à¸à¸°à¸à¸³à¸à¸²à¸à¹à¸à¸à¸²à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (taskDelegated) - this will be displayed as notification
+# in the summary dialog if the user has delegated his/her assignment to one or
+# more others (without attending / working on it his/herself)
+taskDelegated=à¸à¸¸à¸à¹à¸à¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸²à¸à¹à¸à¸à¸²à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (taskNeedsAction) - this will be displayed as notification
+# in the summary dialog if the user hasn't yet responded to the task assignment
+taskNeedsAction=à¸à¸¸à¸à¸¢à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸à¸ªà¸à¸à¸à¸à¸²à¸£à¸¡à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸²à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (taskInProgress) - this will be displayed as notification
+# in the summary dialog if the user is working on an assigned task
+taskInProgress=à¸à¸¸à¸à¹à¸à¹à¹à¸£à¸´à¹à¸¡à¸à¸³à¸à¸²à¸à¹à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¹à¸£à¸±à¸à¸¡à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸µà¹
+
+# LOCALIZATION NOTE (taskCompleted) - this will be displayed as notification
+# in the summary dialog if the user has completed the work on this assigned task
+taskCompleted=à¸à¸¸à¸à¹à¸à¹à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸à¸à¸²à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¹à¸£à¸±à¸à¸¡à¸à¸à¸«à¸¡à¸²à¸¢à¸à¸µà¹
+
+# LOCALIZATION NOTE (sendandcloseButtonLabel) - this is a runtime replacement for
+# event.toolbar.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonLabel=สà¹à¸à¹à¸¥à¹à¸§à¸à¸´à¸
+
+# LOCALIZATION NOTE (sendandcloseButtonTooltip) - this is a runtime replacement for
+# event.toolbar.saveandclose.tooltip in the event dialog/tab toolbar if attendees
+# will be notified on saving & closing
+sendandcloseButtonTooltip=à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¹à¸¥à¹à¸§à¸à¸´à¸
+
+# LOCALIZATION NOTE (saveandsendButtonLabel) - this is a runtime replacement for
+# event.toolbar.save.label2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonLabel=à¸à¸±à¸à¸à¸¶à¸à¹à¸¥à¹à¸§à¸ªà¹à¸
+
+# LOCALIZATION NOTE (saveandsendButtonTooltip) - this is a runtime replacement
+# for event.toolbar.save.tooltip2 in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendButtonTooltip=à¸à¸±à¸à¸à¸¶à¸à¹à¸¥à¹à¸§à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+
+# LOCALIZATION NOTE (saveandsendMenuLabel) - this is a runtime replacement for
+# event.menu.item.save.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+saveandsendMenuLabel=à¸à¸±à¸à¸à¸¶à¸à¹à¸¥à¹à¸§à¸ªà¹à¸
+
+# LOCALIZATION NOTE (sendandcloseMenuLabel) - this is a runtime replacement for
+# event.menu.item.saveandclose.label in the event dialog/tab toolbar if attendees
+# will be notified on saving
+sendandcloseMenuLabel=สà¹à¸à¹à¸¥à¹à¸§à¸à¸´à¸
+
+# LOCALIZATION NOTE (attendeesTabLabel) - this is a runtime replacement for
+# event.attendees.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attendee
+# %1$S - the number of attendee (1-n)
+attendeesTabLabel=à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ (%1$S):
+
+# LOCALIZATION NOTE (attachmentsTabLabel) - this is a runtime replacement for
+# event.attachments.label defined in calendar-event-dialog.dtd and used in the
+# event dialog/tab as attendee tab label if an event has at least one attachment
+# %1$S - the number of attachments (1-n)
+attachmentsTabLabel=à¹à¸à¸¥à¹à¹à¸à¸ (%1$S):
diff --git a/calendar/chrome/calendar/calendar-extract.properties b/calendar/chrome/calendar/calendar-extract.properties
new file mode 100644
index 00000000000..a2b1e10d46b
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-extract.properties
@@ -0,0 +1,251 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE:
+# Strings here are used to create events and tasks with start and end times
+# based on email content.
+# None of the strings are displayed in the user interface.
+#
+# You don't have to fill all from.*, until.*, *.prefix and *.suffix patterns.
+# It's ok to leave some empty.
+# Please consider declensions and gender if your language has them.
+# Don't just translate directly. The number of variants doesn't have to be
+# the same as in en-US. All of 0, 1, 2, etc is allowed in patterns except alphabet
+# pattern. You can and should add language specific variants.
+#
+# There are two different ways to find a start time text in email:
+# 1) it matches a from.* pattern and does not have end.prefix or end.suffix next to it
+# 2) it matches until.* pattern and has start.prefix or start.suffix next to it
+# Similar inverse logic applies to end times.
+# These rules enable using prefix and suffix values with only start.* or only until.*
+# patterns localized for some languages and thus not having to repeat the same
+# values in both.
+#
+# Patterns are partially space-insensitive.
+# "deadline is" pattern will find both "deadlineis" and "deadline is"
+# but "deadlineis" won't find "deadline is" or "deadline is".
+# Therefore you should include all spaces that are valid within a pattern.
+
+# LOCALIZATION NOTE (start.prefix):
+# datetimes with these in front are extracted as start times
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (start.suffix):
+# datetimes followed by these are extracted as start times
+
+# LOCALIZATION NOTE (end.prefix):
+# datetimes with these in front are extracted as end times
+
+# LOCALIZATION NOTE (end.suffix):
+# datetimes followed by these are extracted as end times
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (no.datetime.prefix):
+# datetimes with these in front won't be used
+# specify full words here
+
+# LOCALIZATION NOTE (no.datetime.suffix):
+# datetimes followed by these won't be used
+
+# LOCALIZATION NOTE (from.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.today):
+# must not be empty!
+from.today = วัà¸à¸à¸µà¹
+
+from.tomorrow = à¸à¸£à¸¸à¹à¸à¸à¸µà¹
+# LOCALIZATION NOTE (until.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (from.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+# should not have "#1" as this would match any single number in email to a time
+
+# LOCALIZATION NOTE (until.ordinal.date):
+# #1 = matches numbers 1-31 and number.x
+
+
+# LOCALIZATION NOTE (from.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should not have "#1" as this would match any single number in email to a time
+
+# LOCALIZATION NOTE (until.hour):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+
+# LOCALIZATION NOTE (from.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+
+# LOCALIZATION NOTE (until.hour.am):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+
+# LOCALIZATION NOTE (from.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+
+# LOCALIZATION NOTE (until.hour.pm):
+# #1 = matches numbers 0-23 and number.0-number.23
+# should also list how to find end of a timeframe
+
+# LOCALIZATION NOTE (from.half.hour.before):
+# denotes times 30 minutes before next full hour
+
+# LOCALIZATION NOTE (until.half.hour.before):
+# denotes times 30 minutes before next full hour
+
+# LOCALIZATION NOTE (from.half.hour.after):
+# denotes times 30 minutes after last full hour
+
+# LOCALIZATION NOTE (until.half.hour.after):
+# denotes times 30 minutes after last full hour
+
+# LOCALIZATION NOTE (from.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+
+# LOCALIZATION NOTE (until.hour.minutes):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+
+# LOCALIZATION NOTE (from.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+
+# LOCALIZATION NOTE (until.hour.minutes.am):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+
+# LOCALIZATION NOTE (from.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+
+# LOCALIZATION NOTE (until.hour.minutes.pm):
+# #1 = matches numbers 0-23
+# #2 = matches numbers 0-59
+
+# LOCALIZATION NOTE (from.monthname.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches monthname
+
+# LOCALIZATION NOTE (until.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+
+# LOCALIZATION NOTE (from.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+
+# LOCALIZATION NOTE (until.month.day):
+# #1 = matches numbers 1-31 and number.x
+# #2 = matches numbers 1-12
+
+# LOCALIZATION NOTE (from.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+
+# LOCALIZATION NOTE (until.year.month.day):
+# #1 = matches numbers 1-31
+# #2 = matches numbers 1-12
+# #3 = matches 2/4 numbers
+
+# LOCALIZATION NOTE (from.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+
+# LOCALIZATION NOTE (until.year.monthname.day):
+# #1 = matches numbers 1-31
+# #2 = matches monthname
+# #3 = matches 2/4 numbers
+
+# LOCALIZATION NOTE (duration.*):
+# can be a list of values, separate variants by |
+
+# LOCALIZATION NOTE (duration.minutes):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.minutes = #1 à¸à¸²à¸à¸µ | #1 à¸.
+
+# LOCALIZATION NOTE (duration.hours):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.hours = #1 à¸à¸±à¹à¸§à¹à¸¡à¸ | #1 à¸à¸¡.
+
+# LOCALIZATION NOTE (duration.days):
+# #1 = matches 1/2 numbers and number.0 - and number.31
+duration.days = #1 วัà¸
+
+# LOCALIZATION NOTE (month.*):
+# can be a list of values, separate variants by |
+month.1 = มà¸à¸£à¸²à¸à¸¡ | ม.à¸.
+month.2 = à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹ | à¸.à¸.
+month.3 = มีà¸à¸²à¸à¸¡ | มี.à¸.
+month.4 = à¹à¸¡à¸©à¸²à¸¢à¸ | à¹à¸¡.ย.
+month.5 = à¸à¸¤à¸©à¸ าà¸à¸¡ | à¸.à¸.
+month.6 = มิà¸à¸¸à¸à¸²à¸¢à¸ | มิ.ย.
+month.7 = à¸à¸£à¸à¸à¸²à¸à¸¡ | à¸.à¸.
+month.8 = สิà¸à¸«à¸²à¸à¸¡ | ส.à¸.
+month.9 = à¸à¸±à¸à¸¢à¸²à¸¢à¸ | à¸.ย.
+month.10 = à¸à¸¸à¸¥à¸²à¸à¸¡ | à¸.à¸.
+month.11 = à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸ | à¸.ย.
+month.12 = à¸à¸±à¸à¸§à¸²à¸à¸¡ | à¸.à¸.
+
+# LOCALIZATION NOTE (from.weekday.*):
+# used to derive start date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (from.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+from.weekday.0 = วัà¸à¸à¸²à¸à¸´à¸à¸¢à¹ | à¸à¸²à¸à¸´à¸à¸¢à¹ | à¸à¸².
+from.weekday.1 = วัà¸à¸à¸±à¸à¸à¸£à¹ | à¸à¸±à¸à¸à¸£à¹ | à¸.
+from.weekday.2 = วัà¸à¸à¸±à¸à¸à¸²à¸£ | à¸à¸±à¸à¸à¸²à¸£ | à¸.
+from.weekday.3 = วัà¸à¸à¸¸à¸ | à¸à¸¸à¸ | à¸.
+from.weekday.4 = วัà¸à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ | à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ | วัà¸à¸à¸¤à¸«à¸±à¸ª | à¸à¸¤à¸«à¸±à¸ª | à¸à¸¤.
+from.weekday.5 = วัà¸à¸¨à¸¸à¸à¸£à¹ | ศุà¸à¸£à¹ | ศ.
+from.weekday.6 = วัà¸à¹à¸ªà¸²à¸£à¹ | à¹à¸ªà¸²à¸£à¹ | ส.
+
+# LOCALIZATION NOTE (until.weekday.*):
+# used to derive end date based on weekdays mentioned
+# can be a list of values, separate variants by |
+# LOCALIZATION NOTE (until.weekday.0):
+# Regardless of what the first day of the week is in your country, 0 is Sunday here.
+
+# LOCALIZATION NOTE (number.*):
+# used within other patterns to understand dates where day of month isn't written with digits
+# can be a list of values, separate variants by |
+number.0 = ศูà¸à¸¢à¹
+number.1 = หà¸à¸¶à¹à¸
+number.2 = สà¸à¸
+number.3 = สาม
+number.4 = สีà¹
+number.5 = หà¹à¸²
+number.6 = หà¸
+number.7 = à¹à¸à¹à¸
+number.8 = à¹à¸à¸
+number.9 = à¹à¸à¹à¸²
+number.10 = สิà¸
+number.11 = สิà¸à¹à¸à¹à¸
+number.12 = สิà¸à¸ªà¸à¸
+number.13 = สิà¸à¸ªà¸²à¸¡
+number.14 = สิà¸à¸ªà¸µà¹
+number.15 = สิà¸à¸«à¹à¸²
+number.16 = สิà¸à¸«à¸
+number.17 = สิà¸à¹à¸à¹à¸
+number.18 = สิà¸à¹à¸à¸
+number.19 = สิà¸à¹à¸à¹à¸²
+number.20 = ยีà¹à¸ªà¸´à¸
+number.21 = ยีà¹à¸ªà¸´à¸à¹à¸à¹à¸
+number.22 = ยีà¹à¸ªà¸´à¸à¸ªà¸à¸
+number.23 = ยีà¹à¸ªà¸´à¸à¸ªà¸²à¸¡
+number.24 = ยีà¹à¸ªà¸´à¸à¸ªà¸µà¹
+number.25 = ยีà¹à¸ªà¸´à¸à¸«à¹à¸²
+number.26 = ยีà¹à¸ªà¸´à¸à¸«à¸
+number.27 = ยีà¹à¸ªà¸´à¸à¹à¸à¹à¸
+number.28 = ยีà¹à¸ªà¸´à¸à¹à¸à¸
+number.29 = ยีà¹à¸ªà¸´à¸à¹à¸à¹à¸²
+number.30 = สามสิà¸
+number.31 = สามสิà¸à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (alphabet):
+# list all lower and uppercase letters if your language has an alphabet
+# otherwise leave it empty
diff --git a/calendar/chrome/calendar/calendar-invitations-dialog.dtd b/calendar/chrome/calendar/calendar-invitations-dialog.dtd
new file mode 100644
index 00000000000..2b09df0f353
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-invitations-dialog.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar-invitations-dialog.properties b/calendar/chrome/calendar/calendar-invitations-dialog.properties
new file mode 100644
index 00000000000..70c46cdf701
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-invitations-dialog.properties
@@ -0,0 +1,10 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+allday-event=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸¥à¸à¸à¸§à¸±à¸
+recurrent-event=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+location=à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸: %S
+organizer=à¸à¸¹à¹à¸à¸±à¸: %S
+attendee=à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡: %S
+none=à¹à¸¡à¹à¸¡à¸µ
diff --git a/calendar/chrome/calendar/calendar-occurrence-prompt.properties b/calendar/chrome/calendar/calendar-occurrence-prompt.properties
new file mode 100644
index 00000000000..edd6ae9045a
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-occurrence-prompt.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+header.isrepeating.event.label=à¹à¸à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+header.isrepeating.task.label=à¹à¸à¹à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+header.containsrepeating.event.label=มีà¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+header.containsrepeating.task.label=มีà¸à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+header.containsrepeating.mixed.label=มีรายà¸à¸²à¸£à¸à¸à¸´à¸à¸à¹à¸²à¸ ๠à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+
+windowtitle.event.copy=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.task.copy=à¸à¸±à¸à¸¥à¸à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.mixed.copy=à¸à¸±à¸à¸¥à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.event.cut=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.task.cut=à¸à¸±à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.mixed.cut=à¸à¸±à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.event.delete=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.task.delete=ลà¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.mixed.delete=ลà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.event.edit=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.task.edit=à¹à¸à¹à¹à¸à¸à¸²à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.mixed.edit=à¹à¸à¹à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸³
+windowtitle.multipleitems=รายà¸à¸²à¸£à¸à¸µà¹à¹à¸¥à¸·à¸à¸
+
+buttons.single.occurrence.copy.label=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+buttons.single.occurrence.cut.label=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+buttons.single.occurrence.delete.label=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+buttons.single.occurrence.edit.label=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+buttons.multiple.occurrence.copy.label=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+buttons.multiple.occurrence.cut.label=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+buttons.multiple.occurrence.delete.label=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+buttons.multiple.occurrence.edit.label=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+buttons.single.allfollowing.copy.label=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.single.allfollowing.cut.label=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.single.allfollowing.delete.label=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.single.allfollowing.edit.label=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+
+buttons.multiple.allfollowing.copy.label=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.multiple.allfollowing.cut.label=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.multiple.allfollowing.delete.label=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.multiple.allfollowing.edit.label=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¹à¸¥à¸°à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸à¸à¸²à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+
+buttons.single.parent.copy.label=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.single.parent.cut.label=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.single.parent.delete.label=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.single.parent.edit.label=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸
+
+buttons.multiple.parent.copy.label=à¸à¸±à¸à¸¥à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.multiple.parent.cut.label=à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.multiple.parent.delete.label=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+buttons.multiple.parent.edit.label=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¹à¸¥à¸·à¸à¸à¸à¸±à¹à¸à¸«à¸¡à¸
diff --git a/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd b/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
new file mode 100644
index 00000000000..0edbac15f08
--- /dev/null
+++ b/calendar/chrome/calendar/calendar-subscriptions-dialog.dtd
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar.dtd b/calendar/chrome/calendar/calendar.dtd
new file mode 100644
index 00000000000..a0362390e5d
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.dtd
@@ -0,0 +1,409 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendar.properties b/calendar/chrome/calendar/calendar.properties
new file mode 100644
index 00000000000..35706a84509
--- /dev/null
+++ b/calendar/chrome/calendar/calendar.properties
@@ -0,0 +1,743 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# Misc. strings in JS
+
+# LOCALIZATION NOTE (PrintPreviewWindowTitle):
+# %1$S will be replaced with the title of a html frame
+PrintPreviewWindowTitle=à¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸à¹à¸à¸à¸à¸´à¸¡à¸à¹à¸à¸à¸ %1$S
+Untitled=à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸
+
+# Default name for new events
+newEvent=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸«à¸¡à¹
+
+# Titles for the event/task dialog
+newEventDialog=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸«à¸¡à¹
+editEventDialog=à¹à¸à¹à¹à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+newTaskDialog=à¸à¸²à¸à¹à¸«à¸¡à¹
+editTaskDialog=à¹à¸à¹à¹à¸à¸à¸²à¸
+
+# Do you want to save changes?
+askSaveTitleEvent=à¸à¸±à¸à¸à¸¶à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+askSaveTitleTask=à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸
+askSaveMessageEvent=ยัà¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸à¸à¸¶à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸¶à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+askSaveMessageTask=ยัà¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸ à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸±à¸à¸à¸¶à¸à¸à¸²à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# Event Dialog Warnings
+warningEndBeforeStart=วัà¸à¸à¸µà¹à¸ªà¸´à¹à¸à¸ªà¸¸à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¸´à¸à¸à¹à¸à¸à¸§à¸±à¸à¸à¸µà¹à¹à¸£à¸´à¹à¸¡
+warningUntilDateBeforeStart=à¸à¸à¸à¸¶à¸à¸§à¸±à¸à¸à¸µà¹à¹à¸à¸´à¸à¸à¹à¸à¸à¸§à¸±à¸à¸à¸µà¹à¹à¸£à¸´à¹à¸¡
+
+# The name of the calendar provided with the application by default
+homeCalendarName=หà¸à¹à¸²à¹à¸£à¸
+
+# The name given to a calendar if an opened calendar has an empty filename
+untitledCalendarName=à¸à¸à¸´à¸à¸´à¸à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸
+
+# Event status: Tentative, Confirmed, Cancelled
+# ToDo task status: NeedsAction, InProcess, Completed, Cancelled
+statusTentative =à¹à¸¡à¹à¹à¸à¹à¸à¸à¸
+statusConfirmed =ยืà¸à¸¢à¸±à¸à¹à¸¥à¹à¸§
+eventStatusCancelled=ยà¸à¹à¸¥à¸´à¸à¹à¸¥à¹à¸§
+todoStatusCancelled =ยà¸à¹à¸¥à¸´à¸à¹à¸¥à¹à¸§
+statusNeedsAction =à¸à¹à¸à¸à¸à¸²à¸£à¸à¸²à¸£à¸à¸£à¸°à¸à¸³
+statusInProcess =à¸à¸¢à¸¹à¹à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£
+statusCompleted =à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+
+# Task priority, these should match the priority.level.* labels in calendar.dtd
+highPriority=สูà¸
+normalPriority=à¸à¸à¸à¸´
+lowPriority=à¸à¹à¸³
+
+importPrompt=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¹à¸²à¸£à¸²à¸¢à¸à¸²à¸£à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¸à¸²à¸à¸à¸à¸´à¸à¸´à¸à¹à¸?
+exportPrompt=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¹à¸à¸à¸à¸à¸à¸à¸´à¸à¸´à¸à¹à¸?
+pastePrompt=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸§à¸²à¸à¸¥à¸à¹à¸à¸à¸à¸´à¸à¸´à¸à¹à¸à¸à¸µà¹à¹à¸à¸µà¸¢à¸à¹à¸à¹à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸à¸à¸à¸¸à¸?
+publishPrompt=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¸¢à¹à¸à¸£à¹à¸à¸à¸´à¸à¸´à¸à¹à¸?
+
+# LOCALIZATION NOTE (pasteEventAlso): The users pasting operation includes among
+# others also a meeting invitation - this is used as a affix in
+# pasteNotifyAbout
+pasteEventAlso=à¸à¸²à¸£à¸§à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸¡
+# LOCALIZATION NOTE (pasteEventsAlso): The users pasting operation includes among
+# others also several meeting invitations - this is used as a affix in
+# pasteNotifyAbout
+pasteEventsAlso=à¸à¸²à¸£à¸§à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸¡
+# LOCALIZATION NOTE (pasteTaskAlso): The users pasting operation includes among
+# others also an assigned task - this is used as a affix in pasteNotifyAbout
+pasteTaskAlso=à¸à¸²à¸£à¸§à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸à¸à¸µà¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢
+# LOCALIZATION NOTE (pasteTasksAlso): The users pasting operation include among
+# others also several assigned tasks - this is used as a affix in
+# pasteNotifyAbout
+pasteTasksAlso=à¸à¸²à¸£à¸§à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸à¸à¸µà¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢
+# LOCALIZATION NOTE (pasteItemsAlso): The users pasting operation includes among
+# others also assigned task(s) and meeting invitation(s) - this is used as a affix
+# in pasteNotifyAbout
+pasteItemsAlso=à¸à¸²à¸£à¸§à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸¡à¸µà¸à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸¡à¹à¸¥à¸°à¸à¸²à¸à¸à¸µà¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting a meeting -
+# this is used as a affix in pasteNotifyAbout
+pasteEventOnly=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸§à¸²à¸à¸à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸¡
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several meetings -
+# this is used as a affix in pasteNotifyAbout
+pasteEventsOnly=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸§à¸²à¸à¸à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸¡
+# LOCALIZATION NOTE (pasteEventOnly): The users is pasting an assigned task -
+# this is used as a affix in pasteNotifyAbout
+pasteTaskOnly=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸§à¸²à¸à¸à¸²à¸à¸à¸µà¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting several assigned
+# tasks - this is used as a affix in pasteNotifyAbout
+pasteTasksOnly=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸§à¸²à¸à¸à¸²à¸à¸à¸µà¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢
+# LOCALIZATION NOTE (pasteEventsOnly): The users is pasting assigned task(s) and
+# meeting(s) - this is used as a affix in pasteNotifyAbout
+pasteItemsOnly=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸§à¸²à¸à¸à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸¡à¹à¸¥à¸°à¸à¸²à¸à¸à¸µà¹à¸¡à¸à¸à¸«à¸¡à¸²à¸¢
+
+# LOCALIZATION NOTE (pasteNotifyAbout): Text displayed if pasting an invitation
+# or assigned task
+# %1$S - pasteEvent* or pasteTask*
+pasteNotifyAbout=%1$S - à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸«à¹à¸à¸±à¸à¸à¸¸à¸à¸à¸à¸à¸µà¹à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# LOCALIZATION NOTE (pasteAndNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteAndNotifyLabel=วาà¸à¹à¸¥à¹à¸§à¸ªà¹à¸à¸à¸à¸à¸à¸µà¹
+# LOCALIZATION NOTE (pasteDontNotifyLabel): button label used in calendar prompt
+# of the pasted item has attendees
+pasteDontNotifyLabel=วาà¸à¹à¸à¸¢à¹à¸¡à¹à¸ªà¹à¸
+
+# LOCALIZATION NOTE (importItemsFailed):
+# %1$S will be replaced with number of failed items
+# %2$S will be replaced with last error code / error string
+importItemsFailed=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¹à¸² %1$S รายà¸à¸²à¸£ à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢à¸à¸·à¸: %2$S
+# LOCALIZATION NOTE (noItemsInCalendarFile):
+# %1$S will be replaced with file path
+noItemsInCalendarFile=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¹à¸²à¸à¸²à¸ %1$S à¹à¸¡à¹à¸¡à¸µà¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¸à¸³à¹à¸à¹à¸²à¹à¸à¹à¹à¸à¹à¸à¸¥à¹à¸à¸µà¹
+
+#spaces needed at the end of the following lines
+eventDescription=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢:
+
+unableToRead=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸²à¸à¸à¸²à¸à¹à¸à¸¥à¹:
+unableToWrite=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸µà¸¢à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸¥à¹:
+defaultFileName=MozillaCalEvents
+HTMLTitle=à¸à¸à¸´à¸à¸´à¸ Mozilla
+
+# LOCALIZATION NOTE (timezoneError):
+# used for an error message like 'An unknown and undefined timezone was found while reading c:\Mycalendarfile.ics'
+# %1$S will be replaced with the path to a file
+timezoneError=à¸à¸à¹à¸à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¹à¸¡à¹à¸à¸£à¸²à¸à¹à¸¥à¸°à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸à¸¸à¸à¸à¸°à¸à¹à¸²à¸ %1$S
+
+# LOCALIZATION NOTE (duplicateError):
+# %1$S will be replaced with number of duplicate items
+# %2$S will be replaced with a file path pointing to a calendar
+duplicateError=%1$S รายà¸à¸²à¸£à¸à¸¹à¸à¹à¸à¸´à¸à¹à¸à¸¢à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸¡à¸µà¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§à¸à¸±à¹à¸à¹à¸à¸à¸à¸´à¸à¸´à¸à¸à¸¥à¸²à¸¢à¸à¸²à¸à¹à¸¥à¸° %2$S
+
+unableToCreateProvider=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¹à¸à¸£à¸µà¸¢à¸¡à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸¢à¸¹à¹à¸à¸µà¹ %1$S สำหรัà¸à¹à¸à¹à¸à¸²à¸ à¹à¸¥à¸°à¸à¸°à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¹
+unknownTimezonesError=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¹à¸à¸£à¸µà¸¢à¸¡à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸¢à¸¹à¹à¸à¸µà¹ %1$S สำหรัà¸à¹à¸à¹à¸à¸²à¸ à¸à¸²à¸à¹à¸à¹à¸à¹à¸à¸£à¸²à¸°à¸à¸à¸´à¸à¸´à¸à¸à¹à¸²à¸à¸à¸´à¸à¹à¸à¸à¹à¸§à¸¥à¸²à¸à¸µà¹à¹à¸¡à¹à¸à¸£à¸²à¸ à¹à¸à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ calendar-timezones.xpi ลà¹à¸²à¸ªà¸¸à¸
+missingCalendarTimezonesError=à¹à¸¡à¹à¸à¸à¹à¸à¸à¹à¸§à¸¥à¸²! à¹à¸à¸£à¸à¸à¸´à¸à¸à¸±à¹à¸ calendar-timezones.xpi
+
+# Sample: Unknown timezone "USPacific" in "Dentist Appt". Using the 'floating' local timezone instead: 2008/02/28 14:00:00
+TimezoneErrorsAlertTitle=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¹à¸§à¸¥à¸²
+
+# The following strings are for the prompt to delete/unsubscribe from the calendar
+removeCalendarTitle=à¹à¸à¸²à¸à¸à¸´à¸à¸´à¸à¸à¸à¸
+removeCalendarButtonDelete=ลà¸à¸à¸à¸´à¸à¸´à¸
+removeCalendarButtonUnsubscribe=à¹à¸¥à¸´à¸à¸à¸à¸à¸£à¸±à¸
+
+# LOCALIZATION NOTE (removeCalendarMessageDeleteOrUnsubscribe): Shown for
+# calendar where both deleting and unsubscribing is possible.
+# %1$S: The name of a calendar
+
+# LOCALIZATION NOTE (removeCalendarMessageDelete): Shown for calendar where
+# deleting is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageDelete=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¸à¸à¸´à¸à¸´à¸ "%1$S" à¸à¸¢à¹à¸²à¸à¸à¸²à¸§à¸£à¸«à¸£à¸·à¸à¹à¸¡à¹?
+
+# LOCALIZATION NOTE (removeCalendarMessageUnsubscribe): Shown for calendar
+# where unsubscribing is the only option.
+# %1$S: The name of a calendar
+removeCalendarMessageUnsubscribe=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸¥à¸´à¸à¸à¸à¸à¸£à¸±à¸à¸à¸²à¸à¸à¸à¸´à¸à¸´à¸ "%1$S" หรืà¸à¹à¸¡à¹?
+
+WeekTitle=สัà¸à¸à¸²à¸«à¹ %1$S
+None=à¹à¸¡à¹à¸¡à¸µ
+
+# Error strings
+## @name UID_NOT_FOUND
+## @loc none
+tooNewSchemaErrorBoxTitle=à¸à¸à¸´à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸ %1$S รุà¹à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (tooNewSchemaErrorBoxTextLightning):
+# %1$S will be replaced with the name of the calendar application e.g. 'Lightning'
+# %2$S will be replaced with the name of the host application 'calendar'
+
+# LOCALIZATION NOTE (tooNewSchemaButtonRestart):
+# %1$S will be replaced with the name of the host application 'Calendar'
+tooNewSchemaButtonRestart=à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¸à¸³à¸à¸²à¸ %1$S à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (tooNewSchemaButtonQuit):
+# %1$S will be replaced with the name of the host application 'Calendar'
+tooNewSchemaButtonQuit=à¸à¸à¸à¸à¸²à¸ %1$S
+
+# List of events or todos (unifinder)
+eventUntitled=à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸
+
+# Tooltips of events or todos
+tooltipTitle=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸:
+tooltipLocation=à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸:
+# event date, usually an interval, such as
+# Date: 7:00--8:00 Thu 9 Oct 2011
+# Date: Thu 9 Oct 2000 -- Fri 10 Oct 2000
+tooltipDate=วัà¸à¸à¸µà¹:
+# event calendar name
+tooltipCalName=à¸à¸·à¹à¸à¸à¸à¸´à¸à¸´à¸:
+# event status: tentative, confirmed, cancelled
+tooltipStatus=สà¸à¸²à¸à¸°:
+# event organizer
+tooltipOrganizer=à¸à¸¹à¹à¸à¸±à¸:
+# task/todo fields
+# start date time, due date time, task priority number, completed date time
+tooltipStart=à¹à¸£à¸´à¹à¸¡:
+tooltipDue=à¸à¸£à¸à¸à¸³à¸«à¸à¸:
+tooltipPriority=à¸à¸§à¸²à¸¡à¸ªà¸³à¸à¸±à¸:
+tooltipPercent=% à¸à¸µà¹à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹:
+tooltipCompleted=à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹:
+
+# Tooltips for attendees and organizer in event and summary dialog
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendee.combined): tooltip for itip icon in summary/event dialog.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of dialog.tooltip.attendeeRole2.*
+# %2$S - value of dialog.tooltip.attendeePartStat2.*
+dialog.tooltip.attendee.combined=%1$S %2$S
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.CHAIR): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.NON-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.OPT-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeRole2.REQ-PARTICIPANT): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - value of dialog.tooltip.attendeeUserType2.*
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.ACCEPTED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.ACCEPTED=%1$S à¹à¸à¹à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DECLINED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.DECLINED=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.DELEGATED): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.NEEDS-ACTION): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+# LOCALIZATION_NOTE(dialog.tooltip.attendeePartStat2.TENTATIVE): used to compose
+# dialog.tooltip.attendee.combined
+# %1$S - common name or email address of the attendee
+dialog.tooltip.attendeePartStat2.TENTATIVE=%1$S à¹à¸à¹à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸¢à¹à¸²à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸
+
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.INDIVIDUAL): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing individual attendee
+dialog.tooltip.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.GROUP): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+dialog.tooltip.attendeeUserType2.GROUP=%1$S (à¸à¸¥à¸¸à¹à¸¡)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.RESOURCE): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+dialog.tooltip.attendeeUserType2.RESOURCE=%1$S (à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.ROOM): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing a room
+dialog.tooltip.attendeeUserType2.ROOM=%1$S (หà¹à¸à¸)
+# LOCALIZATION_NOTE(dialog.tooltip.attendeeUserType2.UNKNOWN): used to compose
+# dialog.tooltip.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+dialog.tooltip.attendeeUserType2.UNKNOWN=%1$S
+
+#File commands and dialogs
+New=à¹à¸«à¸¡à¹
+Open=à¹à¸à¸´à¸
+filepickerTitleImport=à¸à¸³à¹à¸à¹à¸²
+filepickerTitleExport=สà¹à¸à¸à¸à¸
+
+# Filters for export/import/open file picker. %1$S will be replaced with
+# wildmat used to filter files by extension, such as (*.html; *.htm).
+filterIcs=iCalendar (%1$S)
+filterXml=à¹à¸à¸à¸ªà¸²à¸£ XML (%1$S)
+filterHtml=หà¸à¹à¸²à¹à¸§à¹à¸ (%1$S)
+
+# Remote calendar errors
+genericErrorTitle=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸
+httpPutError=à¸à¸²à¸£à¹à¸à¸¢à¹à¸à¸£à¹à¹à¸à¸¥à¹à¸à¸à¸´à¸à¸´à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§\nรหัสสà¸à¸²à¸à¸°: %1$S: %2$S
+otherPutError=à¸à¸²à¸£à¹à¸à¸¢à¹à¸à¸£à¹à¹à¸à¸¥à¹à¸à¸à¸´à¸à¸´à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§\nรหัสสà¸à¸²à¸à¸°: 0x%1$S
+
+# LOCALIZATION NOTE (readOnlyMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+
+# LOCALIZATION NOTE (disabledMode):
+# used for an message like 'There has been an error reading data for calendar: Home. It has been...'
+# %1$S will be replaced with the name of a calendar
+
+# LOCALIZATION NOTE (minorError):
+# used for an message like 'There has been an error reading data for calendar: Home. However this...'
+# %1$S will be replaced with the name of a calendar
+
+# LOCALIZATION NOTE (stillReadOnlyError):
+# used for an message like 'There has been an error reading data for calendar: Home.'
+# %1$S will be replaced with the name of a calendar
+stillReadOnlyError=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸à¹à¸²à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸à¸´à¸à¸´à¸: %1$S
+itemModifiedOnServerTitle=รายà¸à¸²à¸£à¸¡à¸µà¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+itemModifiedOnServer=มีà¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹\n
+deleteWillLoseData=à¸à¸²à¸£à¸¥à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¸à¸°à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¸ªà¸¹à¸à¹à¸ªà¸µà¸¢à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸µà¹à¸à¸³à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+updateFromServer=ละà¸à¸´à¹à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸à¸à¸à¸±à¸à¹à¸¥à¹à¸§à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹
+proceedModify=สà¹à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸à¸à¸à¸±à¸à¸à¹à¸à¹à¸
+proceedDelete=ลà¸à¸à¹à¸à¹à¸
+itemPutError=มีà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸à¹à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+itemDeleteError=มีà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸à¸²à¸£à¸¥à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+caldavRequestError=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¸ªà¹à¸à¸à¸³à¹à¸à¸´à¸
+caldavResponseError=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¸ªà¹à¸à¸à¸²à¸£à¸à¸à¸à¸ªà¸à¸à¸
+caldavRequestStatusCode=รหัสสà¸à¸²à¸à¸°: %1$S
+caldavRequestStatusCodeStringGeneric=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸³à¸à¸
+caldavRequestStatusCodeString404=à¹à¸¡à¹à¸à¸à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£
+caldavRequestStatusCodeString500=à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸ ายà¹à¸
+caldavRedirectTitle=à¸à¸±à¸à¹à¸à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸à¸´à¸à¸´à¸ %1$S?
+caldavRedirectDisableCalendar=à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸à¸´à¸à¸´à¸
+
+
+# LOCALIZATION NOTE (likelyTimezone):
+# Translators, please put the most likely timezone(s) where the people using
+# your locale will be. Use the Olson ZoneInfo timezone name *in English*,
+# ie "Europe/Paris", (continent or ocean)/(largest city in timezone).
+# Order does not matter, except if two historically different zones now match,
+# such as America/New_York and America/Toronto, will only find first listed.
+# (Particularly needed to guess the most relevant timezones if there are
+# similar timezones at the same June/December GMT offsets with alphabetically
+# earlier ZoneInfo timezone names. Sample explanations for English below.)
+# for english-US:
+# America/Los_Angeles likelier than America/Dawson
+# America/New_York likelier than America/Detroit (NY for US-EasternTime)
+# for english:
+# Europe/London likelier than Atlantic/Canary
+# Europe/Paris likelier than Africa/Ceuta (for WestEuropeanTime)
+# America/Halifax likelier than America/Glace_Bay (Canada-AtlanticTime)
+# America/Mexico_City likelier than America/Cancun
+# America/Argentina/Buenos_Aires likelier than America/Araguaina
+# America/Sao_Paolo (may not recognize: summer-time dates change every year)
+# Asia/Singapore likelier than Antarctica/Casey
+# Asia/Tokyo likelier than Asia/Dili
+# Africa/Lagos likelier than Africa/Algiers (for WestAfricanTime)
+# Africa/Johannesburg likelier than Africa/Blantyre (for SouthAfricanStdTime)
+# Africa/Nairobi likelier than Africa/Addis_Ababa (for EastAfricanTime)
+# Australia/Brisbane likelier than Antarctica/DumontDUrville
+# Australia/Sydney likelier than Australia/Currie or Australia/Hobart
+# Pacific/Auckland likelier than Antarctica/McMurdo
+
+# Guessed Timezone errors and warnings.
+# Testing note:
+# * remove preference for calendar.timezone.default in userprofile/prefs.js
+# * repeat
+# - set OS timezone to a city (windows: click right on clock in taskbar)
+# - restart
+# - observe guess in error console and verify whether guessed timezone city
+# makes sense for OS city.
+#
+# 'Warning: Operating system timezone "E. South America Standard Time"
+# no longer matches ZoneInfo timezone "America/Sao_Paulo".'
+# Testing notes:
+# - Brasil DST change dates are set every year by decree, so likely out of sync.
+# - Only appears on OSes from which timezone can be obtained
+# (windows; or TZ env var, /etc/localtime target path, or line in
+# /etc/timezone or /etc/sysconfig/clock contains ZoneInfo timezone id).
+# - Windows: turning off "Automatically adjust clock for daylight saving time"
+# can also trigger this warning.
+
+# "Skipping Operating System timezone 'Pacific/New_Country'."
+# Testing note: not easily testable. May occur someday if (non-windows)
+# OS uses different version of ZoneInfo database which has a timezone name
+# that is not included in our current ZoneInfo database (or if the mapping
+# mapping from windows to ZoneInfo timezone ids does).
+SkippingOSTimezone=à¸à¸³à¸¥à¸±à¸à¸à¹à¸²à¸¡à¹à¸à¸à¹à¸§à¸¥à¸²à¸à¸à¸à¸£à¸°à¸à¸à¸à¸à¸´à¸à¸±à¸à¸´à¸à¸²à¸£ '%1$S'
+
+# "Skipping locale timezone 'America/New_Yawk'."
+# Testing note: Skipping occurs if a likelyTimezone id is unknown or misspelled.
+SkippingLocaleTimezone=à¸à¸³à¸¥à¸±à¸à¸à¹à¸²à¸¡à¹à¸à¸à¹à¸§à¸¥à¸²à¸à¸à¸à¸ าษา '%1$S'
+
+# Testing note: "No match" timezones include Bucharest on W2k.
+# Brazil timezones may be "No match" (change every year, so often out of date,
+# and changes are often more than a week different).
+
+# "Warning: Using guessed timezone
+# America/New York (UTC-0500/-0400).
+# [rfc2445 summer daylight saving shift rules for timezone]
+# This ZoneInfo timezone almost matches/seems to match..."
+# This ZoneInfo timezone was chosen based on ... "
+
+# Testing note: "Almost match" timezones include Cairo on W2k.
+
+
+# LOCALIZATION NOTE (TZFromOS):
+# used for a display of a chosen timezone
+# %1$S will be replaced with the name of a timezone
+
+# Localization note (TZFromLocale): Substitute name of your locale language.
+
+
+# Print Layout
+formatListName = รายà¸à¸²à¸£
+weekPrinterName = à¸à¸²à¸£à¸§à¸²à¸à¹à¸à¸à¸£à¸²à¸¢à¸ªà¸±à¸à¸à¸²à¸«à¹
+monthPrinterName = à¸à¸²à¸£à¸²à¸à¸£à¸²à¸¢à¹à¸à¸·à¸à¸
+tasksWithNoDueDate = à¸à¸²à¸à¸à¸µà¹à¹à¸¡à¹à¸¡à¸µà¸§à¸±à¸à¸à¸£à¸à¸à¸³à¸«à¸à¸
+
+# Providers
+caldavName=CalDAV
+icsName=iCalendar (ICS)
+memoryName=à¸à¸±à¹à¸§à¸à¸£à¸²à¸§ (หà¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸à¸³)
+storageName=à¹à¸à¹à¸à¸£à¸·à¹à¸à¸ (SQLite)
+
+# Used in created html code for list layout print and html export
+htmlPrefixTitle=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸
+htmlPrefixWhen=à¹à¸¡à¸·à¹à¸
+htmlPrefixLocation=à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+htmlPrefixDescription=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢
+htmlTaskCompleted=%1$S (à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹)
+
+# Categories
+addCategory=à¹à¸à¸´à¹à¸¡à¸«à¸¡à¸§à¸à¸«à¸¡à¸¹à¹
+multipleCategories=หลายหมวà¸à¸«à¸¡à¸¹à¹
+
+today=วัà¸à¸à¸µà¹
+tomorrow=à¸à¸£à¸¸à¹à¸à¸à¸µà¹
+yesterday=à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹
+
+#Today pane
+eventsonly=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+eventsandtasks=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸¥à¸°à¸à¸²à¸
+tasksonly=à¸à¸²à¸
+
+go=à¹à¸
+
+# Some languages have different conjugations of 'next' and 'last'. If yours
+# does not, simply repeat the value. This will be used with day names, as in
+# 'next Sunday'.
+next1=à¸à¸±à¸à¹à¸
+next2=à¸à¸±à¸à¹à¸
+last1=สุà¸à¸à¹à¸²à¸¢
+last2=สุà¸à¸à¹à¸²à¸¢
+
+# Alarm Dialog
+# LOCALIZATION NOTE (alarmWindowTitle.label): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+alarmWindowTitle.label=#1 à¸à¸²à¸£à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸³
+
+# LOCALIZATION NOTE (alarmStarts):
+# used for a display the start of an alarm like 'Starts: Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmStarts=à¹à¸£à¸´à¹à¸¡: %1$S
+
+# LOCALIZATION NOTE (alarmTodayAt):
+# used for a display the date-time of an alarm like 'Today at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTodayAt=วัà¸à¸à¸µà¹à¸à¸µà¹ %1$S
+
+# LOCALIZATION NOTE (alarmTomorrowAt):
+# used for a display the date-time of an alarm like 'Tomorrow at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmTomorrowAt=à¸à¸£à¸¸à¹à¸à¸à¸µà¹à¸à¸µà¹ %1$S
+
+# LOCALIZATION NOTE (alarmYesterdayAt):
+# used for a display the date-time of an alarm like 'Yesterday at Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with a date-time
+alarmYesterdayAt=à¹à¸¡à¸·à¹à¸à¸§à¸²à¸à¸à¸µà¹à¸à¸µà¹ %1$S
+
+# Alarm interface strings
+# LOCALIZATION NOTE: These strings do not get displayed. They are only visible
+# when exporting an item with i.e a DISPLAY alarm, that doesn't have a
+# description set, or an EMAIL alarm that doesn't have a summary set.
+alarmDefaultDescription=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢ Mozilla à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+alarmDefaultSummary=à¸à¸à¸ªà¸£à¸¸à¸ Mozilla à¹à¸£à¸´à¹à¸¡à¸à¹à¸
+
+# LOCALIZATION NOTE (alarmSnoozeLimitExceeded): Semi-colon list of plural
+# forms.
+
+
+# LOCALIZATION NOTE (taskDetailsStatusInProgress):
+# used for a display of how much of a task is completed '25% Complete'
+# %1$S will be replaced with the number of percentage completed
+taskDetailsStatusInProgress=à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹ %1$S%%
+taskDetailsStatusCompleted=à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+
+# LOCALIZATION NOTE (taskDetailsStatusCompletedOn):
+# used for a display of completion date like 'Completed on Thu 2 Oct 2008 13:21'
+# %1$S will be replaced with the completion date-time of the task
+taskDetailsStatusCancelled=ยà¸à¹à¸¥à¸´à¸à¹à¸¥à¹à¸§
+
+gettingCalendarInfoCommon=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸à¸´à¸à¸´à¸â¦
+
+# LOCALIZATION NOTE (gettingCalendarInfoDetail):
+# used for a progress-display of processed like 'Checking Calendar 5 of 10'
+# %1$S will be replaced with the index of the currently processed calendar
+# %2$S will be replaced with the total numbers of calendars
+gettingCalendarInfoDetail=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸à¸´à¸à¸´à¸ %1$S à¸à¸²à¸ %2$S
+
+# LOCALIZATION NOTE (errorCode):
+# %1$S will be replaced with the number of an error code
+errorCode=รหัสà¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸: %1$S
+
+# LOCALIZATION NOTE (errorDescription):
+# %1$S will be replaced with the description of an error
+errorDescription=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢: %1$S
+
+# LOCALIZATION NOTE (errorWriting):
+# used for an message like 'An error occurred when writing to the calendar Home!'
+# %1$S will be replaced with the name of a calendar
+
+# LOCALIZATION NOTE (errorWritingDetails):
+# This will be displayed in the detail section of the error dialog
+
+# LOCALIZATION NOTE (tooltipCalendarDisabled):
+# used for an alert-message like 'The calendar Home is momentarily not available'
+# %1$S will be replaced with the name of a calendar
+
+# LOCALIZATION NOTE (tooltipCalendarReadOnly):
+# used for an message like 'The calendar Home is readonly'
+# %1$S will be replaced with the name of a calendar
+tooltipCalendarReadOnly=à¸à¸à¸´à¸à¸´à¸ %1$S à¹à¸à¹à¸à¹à¸à¸à¸à¹à¸²à¸à¸à¸¢à¹à¸²à¸à¹à¸à¸µà¸¢à¸§
+
+taskEditInstructions=à¸à¸¥à¸´à¸à¸à¸µà¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¹à¸à¸´à¹à¸¡à¸à¸²à¸à¹à¸«à¸¡à¹
+taskEditInstructionsReadonly=à¹à¸à¸£à¸à¹à¸¥à¸·à¸à¸à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¹à¸à¸µà¸¢à¸à¹à¸à¹
+taskEditInstructionsCapability=à¹à¸à¸£à¸à¹à¸¥à¸·à¸à¸à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸à¸à¸²à¸
+
+eventDetailsStartDate=à¹à¸£à¸´à¹à¸¡:
+eventDetailsEndDate=สิà¹à¸à¸ªà¸¸à¸:
+
+# LOCALIZATION NOTE (datetimeWithTimezone):
+# used for a display of a date-time with timezone 'Thu 2 Oct 2008 13:21', Europe/Paris
+# %1$S will be replaced with the completion date-time
+# %2$S will be replaced with the name of the timezone
+
+# LOCALIZATION NOTE (singleLongCalendarWeek):
+# used for display of calendar weeks in short form like 'Calendar Week 43'
+# %1$S will be replaced with the index of the week
+singleLongCalendarWeek=สัà¸à¸à¸²à¸«à¹à¸à¸à¸´à¸à¸´à¸: %1$S
+
+# LOCALIZATION NOTE (severalLongCalendarWeeks):
+# used for display of calendar weeks in short form like 'Calendar Weeks 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+severalLongCalendarWeeks=สัà¸à¸à¸²à¸«à¹à¸à¸à¸´à¸à¸´à¸ %1$S-%2$S
+
+# LOCALIZATION NOTE (singleShortCalendarWeek):
+# used for display of calendar weeks in short form like 'CW 43'
+# %1$S will be replaced with the index of the week
+
+# LOCALIZATION NOTE (severalShortCalendarWeeks):
+# used for display of calendar weeks in short form like 'CWs 43 - 45'
+# %1$S will be replaced with the index of the start-week
+# %2$S will be replaced with the index of the end-week
+
+# LOCALIZATION NOTE (abbreviationOfWeek):
+# Used for displaying the week number in the first day box of every week
+# in multiweek and month views.
+# It allows to localize the label with the week number in case your locale
+# requires it.
+# Take into account that this label is placed in the same room of the day label
+# inside the day boxes, exactly on left side, hence a possible string shouldn't
+# be too long otherwise it will create confusion between the week number and
+# the day number other than a possible crop when the window is resized.
+#
+# %1$S is a number from 1 to 53 that represents the week number.
+
+# Task tree, "Due In" column.
+# LOCALIZATION NOTE (dueInDays, dueInHours): Semi-colon list of plural
+# forms. See: http://developer.mozilla.org/en/Localization_and_Plurals
+dueInDays=#1 วัà¸
+dueInHours=#1 à¸à¸±à¹à¸§à¹à¸¡à¸
+dueInLessThanOneHour=< 1 à¸à¸±à¹à¸§à¹à¸¡à¸
+
+# LOCALIZATION NOTE (monthInYear):
+# used for display of Month-dates like 'December 2008'
+# %1$S will be replaced with name of the month
+# %2$S will be replaced with the year
+
+# LOCALIZATION NOTE (monthInYear.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+
+# LOCALIZATION NOTE (formatDateLong):
+# used for display dates in long format like 'Mon 15 Oct 2008' when it's
+# impossible to retrieve the formatatted date from the OS.
+# %1$S will be replaced with name of the day in short format;
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties);
+# %3$S will be replaced with the name of the month in short format;
+# %4$S will be replaced with the year.
+
+# LOCALIZATION NOTE (dayHeaderLabel):
+# used for display the labels in the header of the days in day/week views in short
+# or long format. For example: 'Monday 6 Oct.' or 'Mon. 6 Oct.'
+# %1$S will be replaced with name of the day in short or long format
+# %2$S will be replaced with the day-index of the month, possibly followed by an ordinal symbol
+# (depending on the string dayOrdinalSymbol in dateFormat.properties), plus the name
+# of the month in short format (the day/month order depends on the OS settings).
+
+# LOCALIZATION NOTE (daysIntervalInMonth):
+# used for display of intervals in the form of 'March 3 - 9, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %4$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+
+# LOCALIZATION NOTE (daysIntervalInMonth.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths):
+# used for display of intervals in the form 'September 29 - October 5, 2008'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with name of the month of the end date
+# %4$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %5$S will be replaced with the common year of both dates
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+
+# LOCALIZATION NOTE (daysIntervalBetweenMonths.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears):
+# used for display of intervals in the form 'December 29, 2008 - January 4, 2009'
+# %1$S will be replaced with name of the month of the start date
+# %2$S will be replaced with the day-index of the start date possibly followed by an ordinal symbol
+# %3$S will be replaced with the year of the start date
+# %4$S will be replaced with name of the month of the end date
+# %5$S will be replaced with the day-index of the end date possibly followed by an ordinal symbol
+# %6$S will be replaced with the year of the end date
+# The presence of the ordinal symbol in the day-indexes depends on the string
+# dayOrdinalSymbol in dateFormat.properties
+
+# LOCALIZATION NOTE (daysIntervalBetweenYears.monthFormat):
+# If your language requires a different declension, change this to
+# one of the values specified in dateFormat.properties.
+# In any case, DO NOT TRANSLATE.
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDateTime):
+# used for intervals where end is equals to start
+# displayed form is '5 Jan 2006 13:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+
+# LOCALIZATION NOTE (datetimeIntervalOnSameDay):
+# used for intervals where end is on the same day as start, so we can leave out the
+# end date but still include end time
+# displayed form is '5 Jan 2006 13:00 - 17:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the time of the end date
+
+# LOCALIZATION NOTE (datetimeIntervalOnSeveralDays):
+# used for intervals spanning multiple days by including date and time
+# displayed form is '5 Jan 2006 13:00 - 7 Jan 2006 9:00'
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+# %3$S will be replaced with the date of the end date
+# %4$S will be replaced with the time of the end date
+
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDate):
+# used for task without start and due date
+# (showed only in exported calendar in Html format)
+datetimeIntervalTaskWithoutDate= à¹à¸¡à¹à¸¡à¸µà¸§à¸±à¸à¹à¸£à¸´à¹à¸¡à¸«à¸£à¸·à¸à¸à¸£à¸à¸à¸³à¸«à¸à¸
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutDueDate):
+# used for intervals in task with only start date
+# displayed form is 'start date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the start date
+# %2$S will be replaced with the time of the start date
+datetimeIntervalTaskWithoutDueDate=วัà¸à¸à¸µà¹à¹à¸£à¸´à¹à¸¡ %1$S %2$S
+# LOCALIZATION NOTE (datetimeIntervalTaskWithoutStartDate):
+# used for intervals in task with only due date
+# displayed form is 'due date 5 Jan 2006 13:00'
+# (showed only in exported calendar in Html format)
+# %1$S will be replaced with the date of the due date
+# %2$S will be replaced with the time of the due date
+datetimeIntervalTaskWithoutStartDate=วัà¸à¸à¸µà¹à¸à¸£à¸à¸à¸³à¸«à¸à¸ %1$S %2$S
+
+# LOCALIZATION NOTE (dragLabelTasksWithOnlyEntryDate
+# dragLabelTasksWithOnlyDueDate)
+# Labels that appear while dragging a task with only
+# entry date OR due date
+dragLabelTasksWithOnlyEntryDate=à¹à¸§à¸¥à¸²à¹à¸£à¸´à¹à¸¡
+dragLabelTasksWithOnlyDueDate=à¸à¸£à¸à¸à¸³à¸«à¸à¸à¸à¸µà¹
+
+deleteTaskLabel=ลà¸à¸à¸²à¸
+deleteTaskMessage=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¸à¸²à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+deleteTaskAccesskey=ล
+deleteItemLabel=ลà¸
+deleteItemMessage=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+deleteItemAccesskey=ล
+deleteEventLabel=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+deleteEventMessage=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸¥à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+deleteEventAccesskey=ล
+
+calendarPropertiesEveryMinute=à¸à¸¸à¸ #1 à¸à¸²à¸à¸µ
+
+# LOCALIZATION NOTE (extractUsing)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+extractUsing=à¸à¸³à¸¥à¸±à¸à¹à¸à¹ %1$S
+
+# LOCALIZATION NOTE (extractUsingRegion)
+# Used in message header
+# %1$S will be replaced with language name from languageNames.properties
+# %2$S will be replaced with region like US in en-US
+extractUsingRegion=à¸à¸³à¸¥à¸±à¸à¹à¸à¹ %1$S (%2$S)
+
+# LOCALIZATION NOTE (unit)
+# Used to determine the correct plural form of a unit
+unitMinutes=#1 à¸à¸²à¸à¸µ
+unitHours=#1 à¸à¸±à¹à¸§à¹à¸¡à¸
+unitDays=#1 วัà¸
+unitWeeks=#1 สัà¸à¸à¸²à¸«à¹
+
+# LOCALIZATION NOTE (showCalendar)
+# Used in calendar list context menu
+# %1$S will be replaced with the calendar name
+# uses the access key calendar.context.togglevisible.accesskey
+showCalendar=à¹à¸ªà¸à¸ %1$S
+hideCalendar=à¸à¹à¸à¸ %1$S
+# uses the access key calendar.context.showonly.accesskey
+showOnlyCalendar=à¹à¸ªà¸à¸ %1$S à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (modifyConflict)
+# Used by the event dialog to resolve item modification conflicts.
+modifyConflictPromptButton1=à¹à¸à¸µà¸¢à¸à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¸à¸·à¹à¸ à¹
+modifyConflictPromptButton2=ละà¸à¸´à¹à¸à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸à¹à¸«à¸¥à¹à¸²à¸à¸µà¹
+
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedFrom): this is appended behind an attendee name
+# in the tooltip and the visible name for an attendee in the event summary dialog - don't add
+# leading or trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedFrom=(มà¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¹à¸§à¸à¸²à¸ %1$S)
+# LOCALIZATION_NOTE(dialog.attendee.append.delegatedTo): this is appended behind an attendee name
+# in the tooltip for an attendee in the event summary dialog - don't add leading or trailing
+# whitespaces here
+# delegation is different from simple invitation forwarding - in case of delegation the original
+# invited attendee gets replaced
+dialog.attendee.append.delegatedTo=(มà¸à¸à¸«à¸¡à¸²à¸¢à¹à¸¥à¹à¸§à¸à¸¶à¸ %1$S)
+
+# Accessible description of a grid calendar with no selected date
+minimonthNoSelectedDate=à¹à¸¡à¹à¹à¸à¹à¹à¸¥à¸·à¸à¸à¸§à¸±à¸à¸à¸µà¹
diff --git a/calendar/chrome/calendar/calendarCreation.dtd b/calendar/chrome/calendar/calendarCreation.dtd
new file mode 100644
index 00000000000..dd74b929c9b
--- /dev/null
+++ b/calendar/chrome/calendar/calendarCreation.dtd
@@ -0,0 +1,51 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/calendarCreation.properties b/calendar/chrome/calendar/calendarCreation.properties
new file mode 100644
index 00000000000..a2d649e7fa2
--- /dev/null
+++ b/calendar/chrome/calendar/calendarCreation.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+error.invalidUri=à¹à¸à¸£à¸à¸à¹à¸à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸
+error.alreadyExists=à¸à¸¸à¸à¸à¸à¸à¸£à¸±à¸à¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¹à¸¥à¹à¸§
diff --git a/calendar/chrome/calendar/dateFormat.properties b/calendar/chrome/calendar/dateFormat.properties
new file mode 100644
index 00000000000..a49a313543e
--- /dev/null
+++ b/calendar/chrome/calendar/dateFormat.properties
@@ -0,0 +1,146 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# In case you are looking for the note about different declensions on date
+# formats, here it is. If your language doesn't use different declensions of
+# month names, you shouldn't have much work. Just leave the *.monthFormat
+# string on "nominative" and the string month.*.name will be filled in.
+#
+# If you need a different form for a string, you can change the
+# *.monthFormat to a different value. Supported values are currently:
+# nominative (default), genitive
+# The modified month name form will then be filled in accordingly. If this
+# system does not suit your needs, please file a bug!
+
+# LOCALIZATION NOTE (month.*.name):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "nominative" or in places
+# where using a different declension is not yet supported.
+month.1.name=มà¸à¸£à¸²à¸à¸¡
+month.2.name=à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹
+month.3.name=มีà¸à¸²à¸à¸¡
+month.4.name=à¹à¸¡à¸©à¸²à¸¢à¸
+month.5.name=à¸à¸¤à¸©à¸ าà¸à¸¡
+month.6.name=มิà¸à¸¸à¸à¸²à¸¢à¸
+month.7.name=à¸à¸£à¸à¸à¸²à¸à¸¡
+month.8.name=สิà¸à¸«à¸²à¸à¸¡
+month.9.name=à¸à¸±à¸à¸¢à¸²à¸¢à¸
+month.10.name=à¸à¸¸à¸¥à¸²à¸à¸¡
+month.11.name=à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸
+month.12.name=à¸à¸±à¸à¸§à¸²à¸à¸¡
+
+# LOCALIZATION NOTE (month.*.genitive):
+# Some languages require different declensions of month names.
+# These values will be used if *.monthFormat is set to "genitive"
+# If your language doesn't use different declensions, just set the same
+# values as for month.*.name.
+month.1.genitive=มà¸à¸£à¸²à¸à¸¡
+month.2.genitive=à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹
+month.3.genitive=มีà¸à¸²à¸à¸¡
+month.4.genitive=à¹à¸¡à¸©à¸²à¸¢à¸
+month.5.genitive=à¸à¸¤à¸©à¸ าà¸à¸¡
+month.6.genitive=มิà¸à¸¸à¸à¸²à¸¢à¸
+month.7.genitive=à¸à¸£à¸à¸à¸²à¸à¸¡
+month.8.genitive=สิà¸à¸«à¸²à¸à¸¡
+month.9.genitive=à¸à¸±à¸à¸¢à¸²à¸¢à¸
+month.10.genitive=à¸à¸¸à¸¥à¸²à¸à¸¡
+month.11.genitive=à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸
+month.12.genitive=à¸à¸±à¸à¸§à¸²à¸à¸¡
+
+month.1.Mmm=ม.à¸.
+month.2.Mmm=à¸.à¸.
+month.3.Mmm=มี.à¸.
+month.4.Mmm=à¹à¸¡.ย.
+month.5.Mmm=à¸.à¸.
+month.6.Mmm=มิ.ย.
+month.7.Mmm=à¸.à¸.
+month.8.Mmm=ส.à¸.
+month.9.Mmm=à¸.ย.
+month.10.Mmm=à¸.à¸.
+month.11.Mmm=à¸.ย.
+month.12.Mmm=à¸.à¸.
+
+day.1.name=วัà¸à¸à¸²à¸à¸´à¸à¸¢à¹
+day.2.name=วัà¸à¸à¸±à¸à¸à¸£à¹
+day.3.name=วัà¸à¸à¸±à¸à¸à¸²à¸£
+day.4.name=วัà¸à¸à¸¸à¸
+day.5.name=วัà¸à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ
+day.6.name=วัà¸à¸¨à¸¸à¸à¸£à¹
+day.7.name=วัà¸à¹à¸ªà¸²à¸£à¹
+
+day.1.Mmm=à¸à¸²à¸à¸´à¸à¸¢à¹
+day.2.Mmm=à¸à¸±à¸à¸à¸£à¹
+day.3.Mmm=à¸à¸±à¸à¸à¸²à¸£
+day.4.Mmm=à¸à¸¸à¸
+day.5.Mmm=à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ
+day.6.Mmm=ศุà¸à¸£à¹
+day.7.Mmm=à¹à¸ªà¸²à¸£à¹
+
+# Can someone tell me why we're not counting from zero?
+day.1.short=à¸à¸²
+day.2.short=à¸
+day.3.short=à¸
+day.4.short=à¸
+day.5.short=à¸à¸¤
+day.6.short=ศ
+day.7.short=ส
+
+# Localizable day's date
+day.1.number=1
+day.2.number=2
+day.3.number=3
+day.4.number=4
+day.5.number=5
+day.6.number=6
+day.7.number=7
+day.8.number=8
+day.9.number=9
+day.10.number=10
+day.11.number=11
+day.12.number=12
+day.13.number=13
+day.14.number=14
+day.15.number=15
+day.16.number=16
+day.17.number=17
+day.18.number=18
+day.19.number=19
+day.20.number=20
+day.21.number=21
+day.22.number=22
+day.23.number=23
+day.24.number=24
+day.25.number=25
+day.26.number=26
+day.27.number=27
+day.28.number=28
+day.29.number=29
+day.30.number=30
+day.31.number=31
+
+# LOCALIZATION NOTE (dayOrdinalSymbol):
+# Allows to insert a string, a character or a symbol after the number of a
+# monthday in order to give it the meaning of ordinal number e.g. 1 -> 1st etc.
+# It's mainly used when formatting dates with both monthday and month name. It
+# affects the following localizable strings that hence must be localized *without*
+# any ordinal symbol for the monthday number:
+# dayHeaderLabel, monthlyDaysOfNth_day,
+# yearlyNthOn, daysIntervalBetweenYears,
+# daysIntervalBetweenMonths, daysIntervalInMonth.
+# Write only a single string if the ordinal symbol is the same for every monthday, otherwise
+# write a sequence of _31_ strings (one for each monthday) separated with commas.
+# If your language doesn't require that in the mentioned strings, leave it empty.
+# e.g.
+# dayOrdinalSymbol=.
+# -> daysIntervalInMonth: 'March 3. - 9., 2008'
+# dayOrdinalSymbol=st,nd,rd,th,th,th,th,th,th,th,th,th,th,th,th,
+# th,th,th,th,th,st,nd,rd,th,th,th,th,th,th,th,st
+# -> daysIntervalBetweenMonths: 'September 29th - November 1st, 2008'
+dayOrdinalSymbol=
+
+noon=à¹à¸à¸µà¹à¸¢à¸à¸§à¸±à¸
+midnight=à¹à¸à¸µà¹à¸¢à¸à¸à¸·à¸
+
+AllDay=à¸à¸¥à¸à¸à¸§à¸±à¸
+Repeating=(à¹à¸à¸´à¸à¸à¹à¸³)
diff --git a/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd b/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
new file mode 100644
index 00000000000..4c57836ccb4
--- /dev/null
+++ b/calendar/chrome/calendar/dialogs/calendar-event-dialog-reminder.dtd
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/global.dtd b/calendar/chrome/calendar/global.dtd
new file mode 100644
index 00000000000..b9ea1cb59fb
--- /dev/null
+++ b/calendar/chrome/calendar/global.dtd
@@ -0,0 +1,54 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/menuOverlay.dtd b/calendar/chrome/calendar/menuOverlay.dtd
new file mode 100644
index 00000000000..5e484309999
--- /dev/null
+++ b/calendar/chrome/calendar/menuOverlay.dtd
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/migration.dtd b/calendar/chrome/calendar/migration.dtd
new file mode 100644
index 00000000000..1edbc394cf4
--- /dev/null
+++ b/calendar/chrome/calendar/migration.dtd
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/migration.properties b/calendar/chrome/calendar/migration.properties
new file mode 100644
index 00000000000..77ea2857202
--- /dev/null
+++ b/calendar/chrome/calendar/migration.properties
@@ -0,0 +1,11 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+migratingApp = à¸à¸³à¸¥à¸±à¸à¹à¸¢à¸à¸¢à¹à¸²à¸¢ %1$Sâ¦
+
+# The next two lines are duplicated from migration.dtd until there is branding
+# for lightning
+migrationTitle = %1$S: à¸à¸²à¸£à¸à¸³à¹à¸à¹à¸²à¸à¹à¸à¸¡à¸¹à¸¥
+finished = à¹à¸ªà¸£à¹à¸à¸ªà¸¡à¸à¸¹à¸£à¸à¹
+disableExtTitle = à¸à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸µà¹à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹
diff --git a/calendar/chrome/calendar/preferences/alarms.dtd b/calendar/chrome/calendar/preferences/alarms.dtd
new file mode 100644
index 00000000000..9ae9c118f0b
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/alarms.dtd
@@ -0,0 +1,32 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/categories.dtd b/calendar/chrome/calendar/preferences/categories.dtd
new file mode 100644
index 00000000000..a6f734e638e
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/categories.dtd
@@ -0,0 +1,24 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/general.dtd b/calendar/chrome/calendar/preferences/general.dtd
new file mode 100644
index 00000000000..859159a3e04
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/general.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/preferences.dtd b/calendar/chrome/calendar/preferences/preferences.dtd
new file mode 100644
index 00000000000..cad87eac242
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/preferences.dtd
@@ -0,0 +1,8 @@
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/preferences/views.dtd b/calendar/chrome/calendar/preferences/views.dtd
new file mode 100644
index 00000000000..139a381453d
--- /dev/null
+++ b/calendar/chrome/calendar/preferences/views.dtd
@@ -0,0 +1,38 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/provider-uninstall.dtd b/calendar/chrome/calendar/provider-uninstall.dtd
new file mode 100644
index 00000000000..a4c53da6dc7
--- /dev/null
+++ b/calendar/chrome/calendar/provider-uninstall.dtd
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/providers/gdata/gdata.dtd b/calendar/chrome/calendar/providers/gdata/gdata.dtd
new file mode 100644
index 00000000000..b0fea728dae
--- /dev/null
+++ b/calendar/chrome/calendar/providers/gdata/gdata.dtd
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/calendar/providers/gdata/gdata.properties b/calendar/chrome/calendar/providers/gdata/gdata.properties
new file mode 100644
index 00000000000..e01eb96c640
--- /dev/null
+++ b/calendar/chrome/calendar/providers/gdata/gdata.properties
@@ -0,0 +1,53 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# If you wish to be mentioned as a translator, please make sure your name and
+# email is in the licence block as a contributor. Multiple names are fine too.
+
+# extension information.
+# When localizing, please keep in mind that these strings had to be approved by
+# the Google Brand Features Team. Be sure to make clear that this extension is
+# *FOR* Google Calendar and not *BY* Google. Also, it was explicitly stated,
+# that the phrase "Google Calendar" should be localized just as it is on the
+# localized versions of the Google Calendar UI.
+
+# Extension Manager strings
+extensions.{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}.description=à¸à¸à¸¸à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸à¸ªà¸à¸à¸à¸´à¸¨à¸à¸²à¸à¹à¸à¸¢à¸±à¸ Google Calendar
+extensions.{a62ef8ec-5fdc-40c2-873c-223b8a6925cc}.name=à¸à¸¹à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸ªà¸³à¸«à¸£à¸±à¸ Google Calendar
+
+# LOCALIZATION NOTE (busyTitle):
+# Events with only free/busy access don't have a title, they will use this
+# title instead. The calendar name is used as a parameter, since its often
+# named after the person whose calendar you are viewing.
+# %1$S = The calendar name
+busyTitle=à¹à¸¡à¹à¸§à¹à¸²à¸ (%1$S)
+
+# LOCALIZATION NOTE (quotaExceeded):
+# This is shown when the request quota has been exceeded.
+# %1$S = The session id (what the user enters as an email
+# in the new calendar dialog)
+
+
+# LOCALIZATION NOTE (syncProgressEvent):
+# %1$S = The name of the calendar that is being synchronized
+# %2$S = The number of events that have been synchronzed
+# %3$S = The total number of events in the synchronization run
+syncProgressEvent=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸°à¸ªà¸²à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸à¸ %1$S %2$S à¸à¸²à¸ %3$S
+
+# LOCALIZATION NOTE (syncProgressTask):
+# %1$S = The name of the calendar that is being synchronized
+# %2$S = The number of tasks that have been synchronzed
+# %3$S = The total number of tasks in the synchronization run
+syncProgressTask=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸°à¸ªà¸²à¸à¸à¸²à¸à¸à¸à¸ %1$S %2$S à¸à¸²à¸ %3$S
+
+# LOCALIZATION NOTE (syncStatus):
+# %1$S = The name of the calendar that is being synchronized
+syncStatus=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸°à¸ªà¸²à¸à¸à¸à¸´à¸à¸´à¸ %1$S
+
+# LOCALIZATION NOTE (requestWindowDescription):
+# %1$S - The session id (email) used for authentication
+
+# LOCALIZATION NOTE (requestWindowTitle)
+# %1$S - The session id (email) used for authentication
+requestWindowTitle=ลà¸à¸à¸·à¹à¸à¹à¸à¹à¸²à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸ %1$S
diff --git a/calendar/chrome/calendar/providers/wcap/wcap.properties b/calendar/chrome/calendar/providers/wcap/wcap.properties
new file mode 100644
index 00000000000..f002b7e144c
--- /dev/null
+++ b/calendar/chrome/calendar/providers/wcap/wcap.properties
@@ -0,0 +1,19 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# args: host
+accessingServerFailedError.text=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹ %1$S!
+loginFailed.text=à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§à¸«à¸£à¸·à¸ ID วาระà¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+
+# args: host
+noHttpsConfirmation.text=à¸à¸²à¸£à¹à¸à¹à¸²à¸ªà¸¹à¹à¸£à¸°à¸à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸¥à¸à¸à¸ ัยà¸à¸ %1$S!\nà¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸?
+noHttpsConfirmation.check.text=à¹à¸¡à¹à¸à¹à¸à¸à¸à¸²à¸¡à¸à¸µà¸
+noHttpsConfirmation.label=à¸à¸³à¹à¸à¸·à¸à¸!
+
+# args: host, prodId, serverVersion, wcapVersion
+insufficientWcapVersionConfirmation.label=รุà¹à¸ WCAP à¹à¸¡à¹à¹à¸à¸µà¸¢à¸à¸à¸!
+
+loginDialog.label=à¸à¹à¸à¸à¸à¸²à¸£à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸à¸´à¸à¸´à¸
+
+privateItem.title.text=สà¹à¸§à¸à¸à¸±à¸§
diff --git a/calendar/chrome/calendar/timezones.properties b/calendar/chrome/calendar/timezones.properties
new file mode 100644
index 00000000000..e0549e6e953
--- /dev/null
+++ b/calendar/chrome/calendar/timezones.properties
@@ -0,0 +1,435 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# extension:
+
+pref.timezone.floating=à¹à¸§à¸¥à¸²à¸à¹à¸à¸à¸à¸´à¹à¸
+pref.timezone.UTC=UTC/GMT
+
+# I've derived this list out of timezones.dtd
+# - replaced '_' with ' ' on value side
+# - corrected 'St xyz' to 'St. xyz'
+
+# timezone names:
+pref.timezone.Africa.Abidjan=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¸à¸µà¸à¸²à¸
+pref.timezone.Africa.Accra=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸±à¸à¸à¸£à¸²
+pref.timezone.Africa.Addis_Ababa=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¸´à¸ªà¸à¸²à¸à¸²à¸à¸²
+pref.timezone.Africa.Algiers=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸¥à¹à¸à¸µà¸¢à¸£à¹
+pref.timezone.Africa.Asmara=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸ªà¸¡à¸²à¸£à¸²
+pref.timezone.Africa.Bamako=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¸¡à¸²à¹à¸
+pref.timezone.Africa.Bangui=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸±à¸à¸à¸µ
+pref.timezone.Africa.Banjul=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸±à¸à¸à¸¹à¸¥
+pref.timezone.Africa.Bissau=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸´à¸ªà¹à¸à¸²
+pref.timezone.Africa.Blantyre=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸¥à¸±à¸à¹à¸à¸£à¹
+pref.timezone.Africa.Brazzaville=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸£à¸²à¸à¸à¸²à¸§à¸´à¸¥
+pref.timezone.Africa.Bujumbura=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸¹à¸à¸¸à¸¡à¸à¸¹à¸£à¸²
+pref.timezone.Africa.Cairo=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¹à¸£
+pref.timezone.Africa.Casablanca=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¸à¸²à¸à¸¥à¸±à¸à¸à¸²
+pref.timezone.Africa.Ceuta=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸§à¸à¸²
+pref.timezone.Africa.Conakry=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸à¸²à¸à¸£à¸µ
+pref.timezone.Africa.Dakar=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¸à¸²à¸£à¹
+pref.timezone.Africa.Dar_es_Salaam=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸ªà¸à¸²à¸¥à¸²à¸¡
+pref.timezone.Africa.Djibouti=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸´à¸à¸¹à¸à¸´
+pref.timezone.Africa.Douala=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸¹à¸à¸²à¸¥à¸²
+pref.timezone.Africa.El_Aaiun=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸¥à¸à¸²à¸¢à¸¹à¸
+pref.timezone.Africa.Freetown=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸£à¸µà¸à¸²à¸§à¸à¹
+pref.timezone.Africa.Gaborone=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¹à¸à¹à¸£à¹à¸
+pref.timezone.Africa.Harare=à¹à¸à¸à¸£à¸´à¸à¸²/ฮาราà¹à¸£
+pref.timezone.Africa.Johannesburg=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸®à¸±à¸à¹à¸à¸ªà¹à¸à¸´à¸£à¹à¸
+pref.timezone.Africa.Kampala=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸±à¸¡à¸à¸²à¸¥à¸²
+pref.timezone.Africa.Khartoum=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¸à¸¹à¸¡
+pref.timezone.Africa.Kigali=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸´à¸à¸²à¸¥à¸µ
+pref.timezone.Africa.Kinshasa=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸²à¸à¸²
+pref.timezone.Africa.Lagos=à¹à¸à¸à¸£à¸´à¸à¸²/ลาà¸à¸à¸ª
+pref.timezone.Africa.Libreville=à¹à¸à¸à¸£à¸´à¸à¸²/ลีà¹à¸à¸£à¸à¸§à¸´à¸¥
+pref.timezone.Africa.Lome=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸¥à¹à¸¡
+pref.timezone.Africa.Luanda=à¹à¸à¸à¸£à¸´à¸à¸²/ลูà¸à¸±à¸à¸à¸²
+pref.timezone.Africa.Lubumbashi=à¹à¸à¸à¸£à¸´à¸à¸²/ลูà¸à¸¸à¸¡à¸à¸²à¸à¸µ
+pref.timezone.Africa.Lusaka=à¹à¸à¸à¸£à¸´à¸à¸²/ลูà¸à¸²à¸à¸²
+pref.timezone.Africa.Malabo=à¹à¸à¸à¸£à¸´à¸à¸²/มาลาà¹à¸
+pref.timezone.Africa.Maputo=à¹à¸à¸à¸£à¸´à¸à¸²/มาà¸à¸¹à¹à¸
+pref.timezone.Africa.Maseru=à¹à¸à¸à¸£à¸´à¸à¸²/มาà¹à¸à¸£à¸¹
+pref.timezone.Africa.Mbabane=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸±à¸¡à¸à¸²à¸à¸²à¹à¸
+pref.timezone.Africa.Mogadishu=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸¡à¸à¸²à¸à¸´à¸à¸¹
+pref.timezone.Africa.Monrovia=à¹à¸à¸à¸£à¸´à¸à¸²/มà¸à¸à¹à¸£à¹à¸§à¸µà¸¢
+pref.timezone.Africa.Nairobi=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¹à¸£à¸à¸µ
+pref.timezone.Africa.Ndjamena=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¹à¸à¸à¸²à¹à¸¡à¸à¸²
+pref.timezone.Africa.Niamey=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸µà¸à¸²à¹à¸¡
+pref.timezone.Africa.Nouakchott=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸¹à¹à¸à¸à¸à¸à¸
+pref.timezone.Africa.Ouagadougou=à¹à¸à¸à¸£à¸´à¸à¸²/วาà¸à¸²à¸à¸¹à¸à¸¹
+pref.timezone.Africa.Porto-Novo=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸à¸£à¹à¹à¸-à¹à¸à¹à¸§
+pref.timezone.Africa.Sao_Tome=à¹à¸à¸à¸£à¸´à¸à¸²/à¹à¸à¸²à¹à¸à¹à¸¡
+pref.timezone.Africa.Tripoli=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸£à¸´à¹à¸à¸¥à¸µ
+pref.timezone.Africa.Tunis=à¹à¸à¸à¸£à¸´à¸à¸²/à¸à¸¹à¸à¸´à¸ª
+pref.timezone.Africa.Windhoek=à¹à¸à¸à¸£à¸´à¸à¸²/วิà¸à¸à¹à¸®à¸¸à¸
+pref.timezone.America.Anchorage=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¹à¸à¸à¹à¸£à¸
+pref.timezone.America.Anguilla=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¸§à¸´à¸¥à¸¥à¸²
+pref.timezone.America.Antigua=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¸´à¸à¸²
+pref.timezone.America.Araguaina=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¸²à¸à¸§à¸¢à¸à¸²
+pref.timezone.America.Argentina.Buenos_Aires=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸±à¸§à¹à¸à¸ªà¹à¸à¹à¸£à¸ª
+pref.timezone.America.Argentina.Catamarca=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸²à¸à¸²à¸¡à¸²à¸£à¹à¸à¸²
+pref.timezone.America.Argentina.Cordoba=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸à¸£à¹à¹à¸à¸à¸²
+pref.timezone.America.Argentina.Jujuy=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸¹à¸à¸¸à¸¢
+pref.timezone.America.Argentina.La_Rioja=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/ลารีà¹à¸à¸à¸²
+pref.timezone.America.Argentina.Mendoza=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¹à¸¡à¸à¹à¸à¸à¸²
+pref.timezone.America.Argentina.Rio_Gallegos=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/ริà¹à¸à¸à¸²à¹à¸¢à¸à¸à¸ª
+pref.timezone.America.Argentina.San_Juan=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸²à¸à¸®à¸§à¸
+pref.timezone.America.Argentina.Tucuman=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸¹à¸à¸¸à¸¡à¸²à¸
+pref.timezone.America.Argentina.Ushuaia=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¸à¸à¸´à¸à¸²/à¸à¸¹à¸à¸±à¸§à¹à¸
+pref.timezone.America.Aruba=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¸¹à¸à¸²
+pref.timezone.America.Asuncion=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸°à¸à¸¸à¸à¸à¸´à¸à¸à¸
+pref.timezone.America.Bahia=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¹à¸¢à¸µà¸¢
+pref.timezone.America.Barbados=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¹à¹à¸à¹à¸à¸ª
+pref.timezone.America.Belem=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸µà¹à¸¥à¹à¸¡
+pref.timezone.America.Belize=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¥à¸µà¸
+pref.timezone.America.Blanc-Sablon=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸¥à¸±à¸-à¸à¸²à¸à¸¥à¸
+pref.timezone.America.Boa_Vista=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸±à¸§à¸§à¸µà¸ªà¸à¸²
+pref.timezone.America.Bogota=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¹à¸à¸à¸²
+pref.timezone.America.Boise=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸¢à¸à¸µ
+pref.timezone.America.Cambridge_Bay=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¡à¸à¸£à¸´à¸à¸à¹à¹à¸à¸¢à¹
+pref.timezone.America.Cancun=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¸¸à¸
+pref.timezone.America.Caracas=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¸²à¸à¸±à¸ª
+pref.timezone.America.Cayenne=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¹à¸¢à¸
+pref.timezone.America.Cayman=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¢à¹à¹à¸¡à¸
+pref.timezone.America.Chicago=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸²à¹à¸
+pref.timezone.America.Chihuahua=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸µà¸§à¸²à¸§à¸²
+pref.timezone.America.Costa_Rica=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸ªà¸à¸²à¸£à¸´à¸à¸²
+pref.timezone.America.Cuiaba=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸¹à¸¢à¸²à¸à¸²
+pref.timezone.America.Curacao=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸¹à¸£à¸²à¹à¸à¸²
+pref.timezone.America.Dawson=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸§à¹à¸ªà¸±à¸
+pref.timezone.America.Dawson_Creek=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸§à¹à¸ªà¸±à¸à¸à¸£à¸µà¸
+pref.timezone.America.Denver=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¹à¸§à¸à¸£à¹
+pref.timezone.America.Detroit=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸µà¸à¸£à¸à¸¢à¸à¹
+pref.timezone.America.Dominica=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¡à¸´à¸à¸´à¸à¸²
+pref.timezone.America.Edmonton=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸¡à¸±à¸à¸à¸±à¸
+pref.timezone.America.Eirunepe=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸£à¸¹à¹à¸à¹à¸
+pref.timezone.America.El_Salvador=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¥à¸à¸±à¸¥à¸§à¸²à¸à¸à¸£à¹
+pref.timezone.America.Fortaleza=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸£à¹à¸à¸²à¹à¸¥à¸à¸²
+pref.timezone.America.Glace_Bay=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¥à¸à¹à¸à¸¢à¹
+pref.timezone.America.Godthab=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¹à¸à¸à¸à¸²à¸
+pref.timezone.America.Goose_Bay=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸¹à¸ªà¹à¸à¸¢à¹
+pref.timezone.America.Grand_Turk=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸£à¸à¸à¹à¹à¸à¸´à¸£à¹à¸
+pref.timezone.America.Grenada=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸£à¹à¸à¸à¸²
+pref.timezone.America.Guadeloupe=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸§à¸²à¹à¸à¸à¸¥à¸¹à¸
+pref.timezone.America.Guatemala=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸±à¸§à¹à¸à¸¡à¸²à¸¥à¸²
+pref.timezone.America.Guayaquil=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸±à¸§à¸¢à¸²à¸à¸´à¸¥
+pref.timezone.America.Guyana=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸¢à¸à¸²à¸à¸²
+pref.timezone.America.Halifax=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸®à¸¥à¸´à¹à¸à¸à¸à¹
+pref.timezone.America.Havana=à¸à¹à¸¡à¸£à¸´à¸à¸²/ฮาวาà¸à¸²
+pref.timezone.America.Hermosillo=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸£à¹à¹à¸¡à¸à¸µà¹à¸¢
+pref.timezone.America.Indiana.Indianapolis=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²à¹à¸à¸¥à¸´à¸ª
+pref.timezone.America.Indiana.Knox=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²/à¸à¹à¸à¸à¸à¹
+pref.timezone.America.Indiana.Marengo=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²/มาà¹à¸£à¸à¹à¸
+pref.timezone.America.Indiana.Petersburg=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²/à¸à¸µà¹à¸à¸à¸£à¹à¸ªà¹à¸à¸´à¸£à¹à¸
+pref.timezone.America.Indiana.Vevay=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²/วีà¹à¸§à¸¢à¹
+pref.timezone.America.Indiana.Vincennes=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸à¸µà¹à¸à¸à¸²/à¹à¸§à¸à¸à¸à¸à¸à¹
+pref.timezone.America.Inuvik=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸¹à¸§à¸´à¸
+pref.timezone.America.Iqaluit=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸²à¸¥à¸¸à¸¢à¸à¹
+pref.timezone.America.Jamaica=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¹à¸¡à¸à¸²
+pref.timezone.America.Juneau=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸¹à¹à¸
+pref.timezone.America.Kentucky.Louisville=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¸±à¸à¸à¸µ/ลุยสà¹à¸§à¸´à¸¥à¸¥à¹
+pref.timezone.America.Kentucky.Monticello=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¸±à¸à¸à¸µ/มà¸à¸à¸à¸´à¹à¸à¸¥à¹à¸¥
+pref.timezone.America.La_Paz=à¸à¹à¸¡à¸£à¸´à¸à¸²/ลาà¸à¸²à¸
+pref.timezone.America.Lima=à¸à¹à¸¡à¸£à¸´à¸à¸²/ลิมา
+pref.timezone.America.Los_Angeles=à¸à¹à¸¡à¸£à¸´à¸à¸²/ลà¸à¸ªà¹à¸à¸à¹à¸à¸¥à¸´à¸ª
+pref.timezone.America.Maceio=à¸à¹à¸¡à¸£à¸´à¸à¸²/มาà¹à¸à¹à¸
+pref.timezone.America.Managua=à¸à¹à¸¡à¸£à¸´à¸à¸²/มาà¸à¸²à¸à¸±à¸§
+pref.timezone.America.Manaus=à¸à¹à¸¡à¸£à¸´à¸à¸²/มาà¹à¸à¸²à¸ªà¹
+pref.timezone.America.Martinique=à¸à¹à¸¡à¸£à¸´à¸à¸²/มารà¹à¸à¸´à¸à¸µà¸
+pref.timezone.America.Mazatlan=à¸à¹à¸¡à¸£à¸´à¸à¸²/มาà¸à¸±à¸à¸¥à¸±à¸
+pref.timezone.America.Menominee=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸¡à¹à¸à¸¡à¸´à¸à¸µ
+pref.timezone.America.Merida=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸¡à¸£à¸µà¸à¸²
+pref.timezone.America.Mexico_City=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸¡à¹à¸à¸à¸´à¹à¸à¸à¸´à¸à¸µ
+pref.timezone.America.Miquelon=à¸à¹à¸¡à¸£à¸´à¸à¸²/มีà¹à¸à¸à¸¥à¸
+pref.timezone.America.Moncton=à¸à¹à¸¡à¸£à¸´à¸à¸²/มà¸à¸à¸à¹à¸à¸±à¸
+pref.timezone.America.Monterrey=à¸à¹à¸¡à¸£à¸´à¸à¸²/มà¸à¸à¹à¸à¸à¸£à¹à¹à¸£à¸¢à¹
+pref.timezone.America.Montevideo=à¸à¹à¸¡à¸£à¸´à¸à¸²/มà¸à¸à¹à¸à¸§à¸´à¹à¸à¹à¸
+pref.timezone.America.Montreal=à¸à¹à¸¡à¸£à¸´à¸à¸²/มà¸à¸à¸à¸£à¸µà¸à¸à¸¥
+pref.timezone.America.Montserrat=à¸à¹à¸¡à¸£à¸´à¸à¸²/มà¸à¸à¸à¹à¹à¸à¸à¸£à¹à¸£à¸±à¸
+pref.timezone.America.Nassau=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸ªà¸à¸
+pref.timezone.America.New_York=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸§à¸¢à¸à¸£à¹à¸
+pref.timezone.America.Nipigon=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸´à¸à¸à¸
+pref.timezone.America.Nome=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸¡
+pref.timezone.America.Noronha=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸£à¸à¸à¸¢à¸²
+pref.timezone.America.Panama=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸à¸²à¸¡à¸²
+pref.timezone.America.Pangnirtung=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¹à¸à¸µà¸¢à¸£à¹à¸à¸¸à¸
+pref.timezone.America.Paramaribo=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸²à¸£à¸²à¸¡à¸²à¸£à¸´à¹à¸
+pref.timezone.America.Phoenix=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸µà¸à¸´à¸à¸à¹
+pref.timezone.America.Port-au-Prince=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸£à¹à¹à¸à¹à¸à¸£à¸à¸à¹
+pref.timezone.America.Port_of_Spain=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸£à¹à¸à¸à¸à¸à¸ªà¹à¸à¸
+pref.timezone.America.Porto_Velho=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸£à¹à¹à¸à¹à¸§à¸¥à¹à¸®
+pref.timezone.America.Puerto_Rico=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸£à¹à¹à¸à¸£à¸´à¹à¸
+pref.timezone.America.Rainy_River=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸£à¸à¸à¸µà¹à¸£à¸´à¹à¸§à¸à¸£à¹
+pref.timezone.America.Rankin_Inlet=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸£à¸à¸à¸´à¸à¸à¸´à¸à¹à¸¥à¸
+pref.timezone.America.Recife=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸£à¸à¸µà¸à¸µ
+pref.timezone.America.Regina=à¸à¹à¸¡à¸£à¸´à¸à¸²/รีà¹à¸à¸à¸²
+pref.timezone.America.Rio_Branco=à¸à¹à¸¡à¸£à¸´à¸à¸²/รีà¸à¸¹à¸à¸£à¸±à¸à¸à¸¹
+pref.timezone.America.Santiago=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸±à¸à¸à¸´à¸à¸²à¹à¸
+pref.timezone.America.Santo_Domingo=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸±à¸à¹à¸à¹à¸à¸¡à¸´à¸à¹à¸
+pref.timezone.America.Sao_Paulo=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸²à¹à¸à¸²à¹à¸¥
+pref.timezone.America.Scoresbysund=à¸à¹à¸¡à¸£à¸´à¸à¸²/สà¸à¸à¸£à¹à¸ªà¸à¸´à¸à¸¸à¸à¸à¹
+pref.timezone.America.Shiprock=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸à¸£à¹à¸à¸
+pref.timezone.America.St_Johns=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¹à¸à¸à¸«à¹à¸
+pref.timezone.America.St_Kitts=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¹à¸à¸´à¸à¸ªà¹
+pref.timezone.America.St_Lucia=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¹à¸¥à¸¹à¹à¸à¸µà¸¢
+pref.timezone.America.St_Thomas=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¹à¹à¸à¸¡à¸±à¸ª
+pref.timezone.America.St_Vincent=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸à¹à¸§à¸´à¸à¹à¸à¸à¸à¹
+pref.timezone.America.Swift_Current=à¸à¹à¸¡à¸£à¸´à¸à¸²/สวิà¸à¸à¹à¹à¸à¸à¹à¸£à¸à¸à¹
+pref.timezone.America.Tegucigalpa=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸à¸¹à¸à¸´à¸à¸±à¸¥à¸à¸²
+pref.timezone.America.Thule=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸¹à¹à¸¥
+pref.timezone.America.Thunder_Bay=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸±à¸à¹à¸à¸à¸£à¹à¹à¸à¸¢à¹
+pref.timezone.America.Tijuana=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸´à¸®à¸±à¸§à¸à¸²
+pref.timezone.America.Toronto=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸à¸£à¸à¸à¹à¸
+pref.timezone.America.Tortola=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¸à¸à¸£à¹à¹à¸à¸à¸²
+pref.timezone.America.Vancouver=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸§à¸à¸à¸¹à¹à¸§à¸à¸£à¹
+pref.timezone.America.Whitehorse=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸§à¸à¹à¸®à¸à¸£à¹à¸ª
+pref.timezone.America.Winnipeg=à¸à¹à¸¡à¸£à¸´à¸à¸²/วิà¸à¸à¸´à¹à¸à¸
+pref.timezone.America.Yakutat=à¸à¹à¸¡à¸£à¸´à¸à¸²/ยาà¸à¸¹à¸à¸±à¸
+pref.timezone.America.Yellowknife=à¸à¹à¸¡à¸£à¸´à¸à¸²/à¹à¸¢à¸¥à¹à¸¥à¸§à¹à¹à¸à¸à¹
+pref.timezone.Antarctica.Casey=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¸à¸²à¹à¸
+pref.timezone.Antarctica.Davis=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¹à¸à¸§à¸´à¸ª
+pref.timezone.Antarctica.DumontDUrville=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¸à¸¹à¸¡à¸à¸à¹à¹à¸à¸à¸£à¹à¸§à¸´à¸¥à¸¥à¹
+pref.timezone.Antarctica.Mawson=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/มà¸à¸§à¹à¸ªà¸±à¸
+pref.timezone.Antarctica.McMurdo=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¹à¸¡à¸à¹à¸¡à¸à¸£à¹à¹à¸
+pref.timezone.Antarctica.Palmer=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¸à¸²à¸¥à¹à¸¡à¸à¸£à¹
+pref.timezone.Antarctica.Rothera=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/รà¸à¸à¹à¸à¸à¸£à¸²
+pref.timezone.Antarctica.South_Pole=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¸à¸±à¹à¸§à¹à¸¥à¸à¹à¸à¹
+pref.timezone.Antarctica.Syowa=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/à¹à¸à¹à¸¢à¸§à¸²
+pref.timezone.Antarctica.Vostok=à¹à¸à¸à¸à¸²à¸£à¹à¸à¸à¸´à¸à¸²/วà¸à¸ªà¸à¹à¸à¸
+pref.timezone.Arctic.Longyearbyen=à¸à¸²à¸£à¹à¸à¸à¸´à¸/ลà¸à¸à¹à¸¢à¸µà¸¢à¸£à¹à¹à¸à¸µà¸¢à¸
+pref.timezone.Asia.Aden=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¹à¸à¸
+pref.timezone.Asia.Almaty=à¹à¸à¹à¸à¸µà¸¢/à¸à¸±à¸¥à¸¡à¸²à¸à¸µ
+pref.timezone.Asia.Amman=à¹à¸à¹à¸à¸µà¸¢/à¸à¸±à¸¡à¸¡à¸²à¸
+pref.timezone.Asia.Anadyr=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸²à¹à¸à¸£à¹
+pref.timezone.Asia.Aqtau=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸à¸à¸
+pref.timezone.Asia.Aqtobe=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸à¹à¸à¹à¸
+pref.timezone.Asia.Ashgabat=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸à¸²à¸à¸±à¸
+pref.timezone.Asia.Baghdad=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸à¹à¸à¸
+pref.timezone.Asia.Bahrain=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸«à¹à¹à¸£à¸
+pref.timezone.Asia.Baku=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸¹
+pref.timezone.Asia.Bangkok=à¹à¸à¹à¸à¸µà¸¢/à¸à¸£à¸¸à¸à¹à¸à¸
+pref.timezone.Asia.Beirut=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸£à¸¸à¸
+pref.timezone.Asia.Bishkek=à¹à¸à¹à¸à¸µà¸¢/à¸à¸´à¸à¹à¸à¸
+pref.timezone.Asia.Brunei=à¹à¸à¹à¸à¸µà¸¢/à¸à¸£à¸¹à¹à¸
+pref.timezone.Asia.Choibalsan=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸¢à¸à¸±à¸¥à¸à¸±à¸
+pref.timezone.Asia.Chongqing=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸à¸´à¹à¸
+pref.timezone.Asia.Colombo=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸¥à¸±à¸¡à¹à¸
+pref.timezone.Asia.Damascus=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸¡à¸±à¸ªà¸à¸±à¸ª
+pref.timezone.Asia.Dhaka=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸²
+pref.timezone.Asia.Dili=à¹à¸à¹à¸à¸µà¸¢/à¸à¸´à¸¥à¸µ
+pref.timezone.Asia.Dubai=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¹à¹à¸
+pref.timezone.Asia.Dushanbe=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¹à¸à¸²à¸à¹à¸
+pref.timezone.Asia.Gaza=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸²
+pref.timezone.Asia.Harbin=à¹à¸à¹à¸à¸µà¸¢/ฮารà¹à¸à¸´à¸
+pref.timezone.Asia.Hong_Kong=à¹à¸à¹à¸à¸µà¸¢/ฮà¹à¸à¸à¸à¸
+pref.timezone.Asia.Hovd=à¹à¸à¹à¸à¸µà¸¢/ฮà¸à¸à¸à¹
+pref.timezone.Asia.Irkutsk=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸à¸à¸¸à¸à¸ªà¸à¹
+pref.timezone.Asia.Istanbul=à¹à¸à¹à¸à¸µà¸¢/à¸à¸´à¸ªà¸à¸±à¸à¸à¸¹à¸¥
+pref.timezone.Asia.Jakarta=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸²à¸£à¹à¸à¸²
+pref.timezone.Asia.Jayapura=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸¢à¸²à¸à¸¹à¸£à¸²
+pref.timezone.Asia.Jerusalem=à¹à¸à¹à¸à¸µà¸¢/à¹à¸¢à¸£à¸¹à¸à¸²à¹à¸¥à¹à¸¡
+pref.timezone.Asia.Kabul=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸¹à¸¥
+pref.timezone.Asia.Kamchatka=à¹à¸à¹à¸à¸µà¸¢/à¸à¸±à¸¡à¸à¸±à¸à¸à¸²
+pref.timezone.Asia.Karachi=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸£à¸²à¸à¸µ
+pref.timezone.Asia.Kashgar=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸à¸²à¸£à¹
+pref.timezone.Asia.Kathmandu=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸¡à¸²à¸à¸à¸¸
+pref.timezone.Asia.Krasnoyarsk=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¥à¸²à¸ªà¹à¸à¸¢à¸²à¸£à¹à¸ªà¸à¹
+pref.timezone.Asia.Kuala_Lumpur=à¹à¸à¹à¸à¸µà¸¢/à¸à¸±à¸§à¸¥à¸²à¸¥à¸±à¸¡à¹à¸à¸à¸£à¹
+pref.timezone.Asia.Kuching=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¹à¸à¸´à¸
+pref.timezone.Asia.Kuwait=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¹à¹à¸§à¸
+pref.timezone.Asia.Macau=à¹à¸à¹à¸à¸µà¸¢/มาà¹à¸à¹à¸²
+pref.timezone.Asia.Magadan=à¹à¸à¹à¸à¸µà¸¢/มาà¸à¸²à¸à¸²à¸
+pref.timezone.Asia.Makassar=à¹à¸à¹à¸à¸µà¸¢/มาà¸à¸²à¸ªà¸à¸²à¸£à¹
+pref.timezone.Asia.Manila=à¹à¸à¹à¸à¸µà¸¢/มะà¸à¸´à¸¥à¸²
+pref.timezone.Asia.Muscat=à¹à¸à¹à¸à¸µà¸¢/มัสà¸à¸±à¸
+pref.timezone.Asia.Nicosia=à¹à¸à¹à¸à¸µà¸¢/à¸à¸´à¹à¸à¹à¸à¸µà¸¢
+pref.timezone.Asia.Novosibirsk=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¹à¸§à¸à¸´à¹à¸à¸µà¸¢à¸£à¹à¸à¸à¹
+pref.timezone.Asia.Omsk=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸¡à¸ªà¸à¹
+pref.timezone.Asia.Oral=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸£à¸±à¸¥
+pref.timezone.Asia.Phnom_Penh=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸¡à¹à¸à¸
+pref.timezone.Asia.Pontianak=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸à¸à¸´à¸à¸²à¸à¸±à¸
+pref.timezone.Asia.Pyongyang=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸µà¸¢à¸à¸¢à¸²à¸
+pref.timezone.Asia.Qatar=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸²à¸£à¹
+pref.timezone.Asia.Qyzylorda=à¹à¸à¹à¸à¸µà¸¢/à¸à¸´à¸à¸à¸µà¸¥à¸à¸£à¹à¸à¸²
+pref.timezone.Asia.Rangoon=à¹à¸à¹à¸à¸µà¸¢/ยà¹à¸²à¸à¸à¸¸à¹à¸
+pref.timezone.Asia.Riyadh=à¹à¸à¹à¸à¸µà¸¢/ริยาà¸
+pref.timezone.Asia.Sakhalin=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸®à¸²à¸¥à¸´à¸
+pref.timezone.Asia.Samarkand=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸¡à¸²à¸£à¹à¸à¸²à¸à¸à¹
+pref.timezone.Asia.Seoul=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸¥
+pref.timezone.Asia.Shanghai=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸µà¹à¸¢à¸à¹à¸®à¹
+pref.timezone.Asia.Singapore=à¹à¸à¹à¸à¸µà¸¢/สิà¸à¸à¹à¸à¸£à¹
+pref.timezone.Asia.Taipei=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¹à¸
+pref.timezone.Asia.Tashkent=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¹à¸à¸à¸à¹
+pref.timezone.Asia.Tbilisi=à¹à¸à¹à¸à¸µà¸¢/à¸à¸à¸´à¸¥à¸´à¸à¸´
+pref.timezone.Asia.Tehran=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¸«à¸°à¸£à¸²à¸
+pref.timezone.Asia.Thimphu=à¹à¸à¹à¸à¸µà¸¢/à¸à¸´à¸¡à¸à¸¹
+pref.timezone.Asia.Tokyo=à¹à¸à¹à¸à¸µà¸¢/à¹à¸à¹à¸à¸µà¸¢à¸§
+pref.timezone.Asia.Ulaanbaatar=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¹à¸¥à¸²à¸à¸à¸²à¸à¸à¸£à¹
+pref.timezone.Asia.Urumqi=à¹à¸à¹à¸à¸µà¸¢/à¸à¸¸à¸£à¸¸à¸¡à¸à¸µ
+pref.timezone.Asia.Vientiane=à¹à¸à¹à¸à¸µà¸¢/à¹à¸§à¸µà¸¢à¸à¸à¸±à¸à¸à¸à¹
+pref.timezone.Asia.Vladivostok=à¹à¸à¹à¸à¸µà¸¢/วลาà¸à¸´à¸§à¸à¸ªà¸à¹à¸à¸
+pref.timezone.Asia.Yakutsk=à¹à¸à¹à¸à¸µà¸¢/ยาà¸à¸¸à¸à¸ªà¸à¹
+pref.timezone.Asia.Yekaterinburg=à¹à¸à¹à¸à¸µà¸¢/à¹à¸¢à¸à¸²à¹à¸à¸£à¸´à¸à¸à¸¸à¸£à¹à¸
+pref.timezone.Asia.Yerevan=à¹à¸à¹à¸à¸µà¸¢/à¹à¸¢à¹à¸£à¸§à¸²à¸
+pref.timezone.Atlantic.Azores=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¸à¸°à¸à¸à¸£à¹à¸ª
+pref.timezone.Atlantic.Bermuda=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¹à¸à¸à¸£à¹à¸¡à¸´à¸§à¸à¸²
+pref.timezone.Atlantic.Canary=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¸à¸²à¸à¸²à¸£à¸µ
+pref.timezone.Atlantic.Cape_Verde=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¸à¸²à¸à¸¹à¹à¸§à¸£à¹à¸à¸µ
+pref.timezone.Atlantic.Faroe=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¹à¸à¹à¸£
+pref.timezone.Atlantic.Madeira=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/มาà¹à¸à¸£à¸²
+pref.timezone.Atlantic.Reykjavik=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¹à¸£à¸à¸¢à¸²à¸§à¸´à¸
+pref.timezone.Atlantic.South_Georgia=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¹à¸à¸²à¸à¹à¸à¸à¸£à¹à¹à¸à¸µà¸¢
+pref.timezone.Atlantic.St_Helena=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/à¹à¸à¸à¸à¹à¹à¸®à¹à¸¥à¸à¸²
+pref.timezone.Atlantic.Stanley=à¹à¸à¸à¹à¸¥à¸à¸à¸´à¸/สà¹à¸à¸à¸¥à¸µà¸¢à¹
+pref.timezone.Australia.Adelaide=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¹à¸à¸à¸´à¹à¸¥à¸
+pref.timezone.Australia.Brisbane=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¸à¸£à¸´à¸ªà¹à¸à¸
+pref.timezone.Australia.Broken_Hill=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¹à¸à¸£à¸à¹à¸à¹à¸à¸®à¸´à¸¥à¸¥à¹
+pref.timezone.Australia.Currie=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¹à¸à¸à¸£à¹à¸£à¸µ
+pref.timezone.Australia.Darwin=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¸à¸²à¸£à¹à¸§à¸´à¸
+pref.timezone.Australia.Eucla=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/ยูà¸à¸¥à¸²
+pref.timezone.Australia.Hobart=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¹à¸®à¸à¸²à¸£à¹à¸
+pref.timezone.Australia.Lindeman=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/ลิà¸à¹à¸à¸à¹à¸¡à¸
+pref.timezone.Australia.Lord_Howe=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/ลà¸à¸£à¹à¸à¹à¸®à¹à¸§
+pref.timezone.Australia.Melbourne=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¹à¸¡à¸¥à¹à¸à¸´à¸£à¹à¸
+pref.timezone.Australia.Perth=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¹à¸à¸´à¸£à¹à¸
+pref.timezone.Australia.Sydney=à¸à¸à¸ªà¹à¸à¸£à¹à¸¥à¸µà¸¢/à¸à¸´à¸à¸à¸µà¸¢à¹
+pref.timezone.Europe.Amsterdam=ยุà¹à¸£à¸/à¸à¸±à¸¡à¸ªà¹à¸à¸à¸£à¹à¸à¸±à¸¡
+pref.timezone.Europe.Andorra=ยุà¹à¸£à¸/à¸à¸±à¸à¸à¸à¸£à¹à¸£à¸²
+pref.timezone.Europe.Athens=ยุà¹à¸£à¸/à¹à¸à¹à¸à¸à¸ªà¹
+pref.timezone.Europe.Belgrade=ยุà¹à¸£à¸/à¹à¸à¸¥à¹à¸à¸£à¸
+pref.timezone.Europe.Berlin=ยุà¹à¸£à¸/à¹à¸à¸à¸£à¹à¸¥à¸´à¸
+pref.timezone.Europe.Bratislava=ยุà¹à¸£à¸/à¸à¸£à¸²à¸à¸´à¸ªà¸¥à¸²à¸§à¸²
+pref.timezone.Europe.Brussels=ยุà¹à¸£à¸/à¸à¸£à¸±à¸ªà¹à¸à¸¥à¸ªà¹
+pref.timezone.Europe.Bucharest=ยุà¹à¸£à¸/à¸à¸¹à¸à¸²à¹à¸£à¸ªà¸à¹
+pref.timezone.Europe.Budapest=ยุà¹à¸£à¸/à¸à¸¹à¸à¸²à¹à¸à¸ªà¸à¹
+pref.timezone.Europe.Chisinau=ยุà¹à¸£à¸/à¸à¸µà¸à¸µà¹à¸à¸²
+pref.timezone.Europe.Copenhagen=ยุà¹à¸£à¸/à¹à¸à¹à¸à¸à¹à¸®à¹à¸à¸
+pref.timezone.Europe.Dublin=ยุà¹à¸£à¸/à¸à¸±à¸à¸¥à¸´à¸
+pref.timezone.Europe.Gibraltar=ยุà¹à¸£à¸/ยิà¸à¸£à¸à¸¥à¸à¸²à¸£à¹
+pref.timezone.Europe.Guernsey=ยุà¹à¸£à¸/à¹à¸à¸´à¸£à¹à¸à¸à¸µà¸¢à¹
+pref.timezone.Europe.Helsinki=ยุà¹à¸£à¸/à¹à¸®à¸¥à¸à¸´à¸à¸à¸´
+pref.timezone.Europe.Isle_of_Man=ยุà¹à¸£à¸/à¹à¸à¸²à¸°à¹à¸¡à¸
+pref.timezone.Europe.Istanbul=ยุà¹à¸£à¸/à¸à¸´à¸ªà¸à¸±à¸à¸à¸¹à¸¥
+pref.timezone.Europe.Jersey=ยุà¹à¸£à¸/à¹à¸à¸à¸£à¹à¸à¸µà¸¢à¹
+pref.timezone.Europe.Kaliningrad=ยุà¹à¸£à¸/à¸à¸²à¸¥à¸µà¸à¸´à¸à¸à¸£à¸²à¸
+pref.timezone.Europe.Kiev=ยุà¹à¸£à¸/à¹à¸à¸µà¸¢à¸
+pref.timezone.Europe.Lisbon=ยุà¹à¸£à¸/ลิสà¸à¸à¸
+pref.timezone.Europe.Ljubljana=ยุà¹à¸£à¸/ลูà¸à¸¥à¸´à¸¢à¸²à¸à¸²
+pref.timezone.Europe.London=ยุà¹à¸£à¸/ลà¸à¸à¸à¸à¸
+pref.timezone.Europe.Luxembourg=ยุà¹à¸£à¸/ลัà¸à¹à¸à¸¡à¹à¸à¸´à¸£à¹à¸
+pref.timezone.Europe.Madrid=ยุà¹à¸£à¸/มาà¸à¸£à¸´à¸
+pref.timezone.Europe.Malta=ยุà¹à¸£à¸/มà¸à¸¥à¸à¸²
+pref.timezone.Europe.Mariehamn=ยุà¹à¸£à¸/มารีฮามà¸à¹
+pref.timezone.Europe.Minsk=ยุà¹à¸£à¸/มิà¸à¸ªà¸à¹
+pref.timezone.Europe.Monaco=ยุà¹à¸£à¸/à¹à¸¡à¸à¸²à¹à¸
+pref.timezone.Europe.Moscow=ยุà¹à¸£à¸/มà¸à¸ªà¹à¸
+pref.timezone.Europe.Nicosia=ยุà¹à¸£à¸/à¸à¸´à¹à¸à¹à¸à¸µà¸¢
+pref.timezone.Europe.Oslo=ยุà¹à¸£à¸/à¸à¸à¸ªà¹à¸¥
+pref.timezone.Europe.Paris=ยุà¹à¸£à¸/à¸à¸²à¸£à¸µà¸ª
+pref.timezone.Europe.Podgorica=ยุà¹à¸£à¸/à¸à¸à¸à¹à¸à¸£à¸´à¸à¸²
+pref.timezone.Europe.Prague=ยุà¹à¸£à¸/à¸à¸£à¸²à¸
+pref.timezone.Europe.Riga=ยุà¹à¸£à¸/ริà¸à¸²
+pref.timezone.Europe.Rome=ยุà¹à¸£à¸/à¹à¸£à¸¡
+pref.timezone.Europe.Samara=ยุà¹à¸£à¸/à¸à¸²à¸¡à¸²à¸£à¸²
+pref.timezone.Europe.San_Marino=ยุà¹à¸£à¸/à¸à¸²à¸à¸¡à¸²à¸£à¸µà¹à¸
+pref.timezone.Europe.Sarajevo=ยุà¹à¸£à¸/à¸à¸²à¸£à¸²à¹à¸¢à¹à¸§
+pref.timezone.Europe.Simferopol=ยุà¹à¸£à¸/à¸à¸´à¸¡à¹à¸à¸à¹à¸£à¹à¸à¸¥
+pref.timezone.Europe.Skopje=ยุà¹à¸£à¸/สà¹à¸à¹à¸à¸µà¸¢
+pref.timezone.Europe.Sofia=ยุà¹à¸£à¸/à¹à¸à¹à¸à¸µà¸¢
+pref.timezone.Europe.Stockholm=ยุà¹à¸£à¸/สà¸à¸à¸à¹à¸®à¸¥à¹à¸¡
+pref.timezone.Europe.Tallinn=ยุà¹à¸£à¸/à¸à¸²à¸¥à¸¥à¸´à¸à¸à¹
+pref.timezone.Europe.Tirane=ยุà¹à¸£à¸/à¸à¸´à¸£à¸²à¸à¸²
+pref.timezone.Europe.Uzhgorod=ยุà¹à¸£à¸/à¸à¸¸à¸à¹à¸à¸£à¸à¸
+pref.timezone.Europe.Vaduz=ยุà¹à¸£à¸/วาà¸à¸¸à¸
+pref.timezone.Europe.Vatican=ยุà¹à¸£à¸/วาà¸à¸´à¸à¸±à¸
+pref.timezone.Europe.Vienna=ยุà¹à¸£à¸/à¹à¸§à¸µà¸¢à¸à¸à¸²
+pref.timezone.Europe.Vilnius=ยุà¹à¸£à¸/วิลà¸à¸µà¸à¸¸à¸ª
+pref.timezone.Europe.Volgograd=ยุà¹à¸£à¸/à¹à¸§à¸¥à¹à¸à¸à¸£à¸²à¸
+pref.timezone.Europe.Warsaw=ยุà¹à¸£à¸/วà¸à¸£à¹à¸à¸
+pref.timezone.Europe.Zagreb=ยุà¹à¸£à¸/à¸à¸²à¹à¸à¸£à¹à¸
+pref.timezone.Europe.Zaporozhye=ยุà¹à¸£à¸/à¸à¸²à¹à¸à¹à¸£à¸à¸µ
+pref.timezone.Europe.Zurich=ยุà¹à¸£à¸/à¸à¸¹à¸£à¸´à¸
+pref.timezone.Indian.Antananarivo=à¸à¸´à¸à¹à¸à¸µà¸¢/à¸à¸±à¸à¸à¸²à¸à¸²à¸à¸²à¸£à¸´à¹à¸§
+pref.timezone.Indian.Chagos=à¸à¸´à¸à¹à¸à¸µà¸¢/à¸à¸²à¸à¸à¸ª
+pref.timezone.Indian.Christmas=à¸à¸´à¸à¹à¸à¸µà¸¢/à¸à¸£à¸´à¸ªà¸à¹à¸¡à¸²à¸ª
+pref.timezone.Indian.Cocos=à¸à¸´à¸à¹à¸à¸µà¸¢/à¹à¸à¹à¸à¸ª
+pref.timezone.Indian.Comoro=à¸à¸´à¸à¹à¸à¸µà¸¢/à¹à¸à¹à¸¡à¹à¸£
+pref.timezone.Indian.Kerguelen=à¸à¸´à¸à¹à¸à¸µà¸¢/à¹à¸à¸£à¹à¹à¸à¹à¸¥à¸
+pref.timezone.Indian.Mahe=à¸à¸´à¸à¹à¸à¸µà¸¢/มาà¹à¸®
+pref.timezone.Indian.Maldives=à¸à¸´à¸à¹à¸à¸µà¸¢/มัลà¸à¸µà¸à¸ªà¹
+pref.timezone.Indian.Mauritius=à¸à¸´à¸à¹à¸à¸µà¸¢/มà¸à¸£à¸´à¹à¸à¸µà¸¢à¸ª
+pref.timezone.Indian.Mayotte=à¸à¸´à¸à¹à¸à¸µà¸¢/มายà¸à¸
+pref.timezone.Indian.Reunion=à¸à¸´à¸à¹à¸à¸µà¸¢/à¹à¸£à¸à¸¹à¹à¸à¸µà¸¢à¸
+pref.timezone.Pacific.Apia=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¸à¸µà¸à¸²
+pref.timezone.Pacific.Auckland=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸à¸à¹à¸¥à¸à¸à¹
+pref.timezone.Pacific.Chatham=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸à¸à¸±à¸¡
+pref.timezone.Pacific.Easter=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸µà¸ªà¹à¸à¸à¸£à¹
+pref.timezone.Pacific.Efate=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸µà¸à¸²à¹à¸
+pref.timezone.Pacific.Enderbury=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸à¸à¹à¸à¸à¸£à¹à¹à¸à¸à¸£à¸µ
+pref.timezone.Pacific.Fakaofo=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¹à¸à¸²à¹à¸
+pref.timezone.Pacific.Fiji=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸´à¸à¸´
+pref.timezone.Pacific.Funafuti=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸¹à¸à¸°à¸à¸¹à¸à¸µ
+pref.timezone.Pacific.Galapagos=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¸¥à¸²à¸à¸²à¸à¸à¸ª
+pref.timezone.Pacific.Gambier=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸à¸¡à¹à¸à¸µà¸¢à¸£à¹
+pref.timezone.Pacific.Guadalcanal=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸§à¸²à¸à¸²à¸¥à¸à¸°à¹à¸à¸¥
+pref.timezone.Pacific.Guam=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸§à¸¡
+pref.timezone.Pacific.Honolulu=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸®à¹à¸à¸¥à¸¹à¸¥à¸¹
+pref.timezone.Pacific.Johnston=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸à¸«à¹à¸à¸ªà¸à¸±à¸
+pref.timezone.Pacific.Kiritimati=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸´à¸£à¸´à¸ªà¸¡à¸²à¸ª
+pref.timezone.Pacific.Kosrae=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸à¸ªà¹à¸£
+pref.timezone.Pacific.Kwajalein=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸§à¸²à¸à¸²à¸¥à¸µà¸
+pref.timezone.Pacific.Majuro=à¹à¸à¸à¸´à¸à¸´à¸/มาà¸à¸¹à¹à¸£
+pref.timezone.Pacific.Marquesas=à¹à¸à¸à¸´à¸à¸´à¸/มารà¹à¹à¸à¸§à¸à¸±à¸ª
+pref.timezone.Pacific.Midway=à¹à¸à¸à¸´à¸à¸´à¸/มิà¸à¹à¸§à¸¢à¹
+pref.timezone.Pacific.Nauru=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¸à¸¹à¸£à¸¹
+pref.timezone.Pacific.Niue=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸µà¸à¸¹à¹à¸
+pref.timezone.Pacific.Norfolk=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸à¸£à¹à¸à¸à¸¥à¹à¸
+pref.timezone.Pacific.Noumea=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸¹à¹à¸¡à¸à¸²
+pref.timezone.Pacific.Pago_Pago=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¹à¸à¸à¸²à¹à¸
+pref.timezone.Pacific.Palau=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¹à¸¥à¸²
+pref.timezone.Pacific.Pitcairn=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸´à¸à¹à¸à¸£à¹à¸
+pref.timezone.Pacific.Ponape=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸à¸à¸²à¹à¸
+pref.timezone.Pacific.Port_Moresby=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸à¸£à¹à¸à¸¡à¸à¸£à¹à¸ªà¸à¸µ
+pref.timezone.Pacific.Rarotonga=à¹à¸à¸à¸´à¸à¸´à¸/ราà¹à¸£à¸à¸à¸à¸à¸²
+pref.timezone.Pacific.Saipan=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸à¸à¸±à¸
+pref.timezone.Pacific.Tahiti=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¸®à¸´à¸à¸´
+pref.timezone.Pacific.Tarawa=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸²à¸£à¸°à¸§à¸²
+pref.timezone.Pacific.Tongatapu=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸à¸à¸à¸²à¸à¸²à¸à¸¹
+pref.timezone.Pacific.Truk=à¹à¸à¸à¸´à¸à¸´à¸/à¸à¸£à¸¸à¸
+pref.timezone.Pacific.Wake=à¹à¸à¸à¸´à¸à¸´à¸/à¹à¸§à¸
+pref.timezone.Pacific.Wallis=à¹à¸à¸à¸´à¸à¸´à¸/วาลลิส
+
+# the following have been missing
+
+# added with 2008d:
+
+# added with 2008i:
+
+# added with 2010i
+
+#added with 2011b
+
+#added with 2011n
+
+#added with 2013a
+
+#added with 2014b
+
+#added with 2014j
+
+#added with 2.2015g
+
+#added with 2.2016b
+pref.timezone.Europe.Ulyanovsk=ยุà¹à¸£à¸/à¸à¸¸à¸¥à¸¢à¸²à¸à¸à¸à¸ªà¸à¹
+pref.timezone.Europe.Astrakhan=ยุà¹à¸£à¸/à¸à¸±à¸ªà¸à¸£à¸²à¸à¸±à¸
+pref.timezone.Asia.Barnaul=à¹à¸à¹à¸à¸µà¸¢/à¸à¸²à¸£à¸à¸±à¸¥
+
+#added with 2.2016i
+pref.timezone.Europe.Kirov=ยุà¹à¸£à¸/à¸à¸µà¸£à¸à¸
+
+#added with 2.2016j
+pref.timezone.Europe.Saratov=ยุà¹à¸£à¸/à¸à¸²à¸£à¸²à¸à¸à¸
+pref.timezone.Asia.Atyrau=à¹à¸à¹à¸à¸µà¸¢/à¸à¸°à¸à¸µà¸£à¸²à¸à¸¹
+
+#added with 2.2017b
diff --git a/calendar/chrome/lightning/lightning-toolbar.dtd b/calendar/chrome/lightning/lightning-toolbar.dtd
new file mode 100644
index 00000000000..23a294cf39b
--- /dev/null
+++ b/calendar/chrome/lightning/lightning-toolbar.dtd
@@ -0,0 +1,50 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/lightning/lightning.dtd b/calendar/chrome/lightning/lightning.dtd
new file mode 100644
index 00000000000..c352fb7647b
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.dtd
@@ -0,0 +1,97 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/calendar/chrome/lightning/lightning.properties b/calendar/chrome/lightning/lightning.properties
new file mode 100644
index 00000000000..b8be779e534
--- /dev/null
+++ b/calendar/chrome/lightning/lightning.properties
@@ -0,0 +1,167 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# addon description:
+extensions.{e2fda1a4-762b-4020-b5ad-a41df1933103}.name=Lightning
+
+# Lightning branding
+brandShortName=Lightning
+
+# Task mode title
+taskModeApplicationTitle=à¸à¸²à¸
+
+# Tab titles
+tabTitleCalendar=à¸à¸à¸´à¸à¸´à¸
+tabTitleTasks=à¸à¸²à¸
+
+# Html event display in message
+imipHtml.header=à¸à¸³à¹à¸à¸´à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+imipHtml.summary=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸:
+imipHtml.location=à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸:
+imipHtml.when=à¹à¸¡à¸·à¹à¸:
+imipHtml.organizer=à¸à¸¹à¹à¸à¸±à¸:
+imipHtml.description=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢:
+# LOCALIZATION_NOTE(imipHtml.attachments): This is a label for one or more (additional) links to
+# documents or websites attached to this event.
+imipHtml.attachments=à¹à¸à¸¥à¹à¹à¸à¸:
+imipHtml.comment=à¸à¸§à¸²à¸¡à¸à¸´à¸à¹à¸«à¹à¸:
+imipHtml.attendees=à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡:
+# LOCALIZATION_NOTE(imipHtml.url): This is a label for a reference to an (alternate) online
+# representation of the event (either directly human readable or not).
+imipHtml.url=ลิà¸à¸à¹à¸à¸µà¹à¹à¸à¸µà¹à¸¢à¸§à¸à¹à¸à¸:
+imipHtml.canceledOccurrences=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¸¢à¸à¹à¸¥à¸´à¸:
+imipHtml.modifiedOccurrences=à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸à¸¥à¸:
+imipHtml.newLocation=à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸«à¸¡à¹: %1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedFrom): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegator or a comma separated list of delegators
+# LOCALIZATION_NOTE(imipHtml.attendeeDelegatedTo): this is appended behind an attendee name in the
+# email invitation preview - don't add leading/trailing whitespaces here
+# %1$S - a single delegatee or a comma separated list of delegatees
+
+# LOCALIZATION_NOTE(imipHtml.attendee.combined): tooltip for itip icon in email invitation preview.
+# Given an attendee loungeexample.org of type room is a mandatory participant and has accepted the
+# invitation, the tooltip would be:
+# lounge@example.org (room) is a required participant. lounge@example.org has confirmed attendance.
+# %1$S - value of imipHtml.attendeeRole2.*
+# %2$S - value of imipHtml.attendeePartStat2.*
+
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.CHAIR): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.NON-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+imipHtml.attendeeRole2.NON-PARTICIPANT=%1$S à¹à¸à¹à¸à¸à¸¹à¹à¹à¸¡à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.OPT-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+# LOCALIZATION_NOTE(imipHtml.attendeeRole2.REQ-PARTICIPANT): used to compose
+# imipHtml.attendee.combined
+# %1$S - value of imipHtml.attendeeUserType2.*
+
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.ACCEPTED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.ACCEPTED=%1$S à¹à¸à¹à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DECLINED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.DECLINED=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¹à¸§à¸¡
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.DELEGATED): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+# %2$S - single delegatee or comma separated list of delegatees
+# delegation is different from invitation forwarding - in case of the former the original attendee
+# is replaced, while on the latter the receiver may take part additionally
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.NEEDS-ACTION): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+# LOCALIZATION_NOTE(imipHtml.attendeePartStat2.TENTATIVE): used to compose
+# imipHtml.attendee.combined
+# %1$S - common name or email address of the attendee
+imipHtml.attendeePartStat2.TENTATIVE=%1$S à¹à¸à¹à¸¢à¸·à¸à¸¢à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸¢à¹à¸²à¸à¹à¸¡à¹à¹à¸à¹à¸à¸à¸
+
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.INDIVIDUAL): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing an individual attendee
+imipHtml.attendeeUserType2.INDIVIDUAL=%1$S
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.GROUP): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a group (e.g. a distribution list)
+imipHtml.attendeeUserType2.GROUP=%1$S (à¸à¸¥à¸¸à¹à¸¡)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.RESOURCE): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a resource (e.g. projector)
+imipHtml.attendeeUserType2.RESOURCE=%1$S (à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.ROOM): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing a room
+imipHtml.attendeeUserType2.ROOM=%1$S (หà¹à¸à¸)
+# LOCALIZATION_NOTE(imipHtml.attendeeUserType2.UNKNOWN): used to compose
+# imipHtml.attendeeRole2.*
+# %1$S - email address or common name representing an attendee of unknown type
+imipHtml.attendeeUserType2.UNKNOWN=%1$S
+
+imipAddedItemToCal2=à¹à¸à¸´à¹à¸¡à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸à¸¢à¸±à¸à¸à¸à¸´à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¹à¸§
+imipCanceledItem2=ลà¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸²à¸à¸à¸à¸´à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸à¹à¸¥à¹à¸§
+imipUpdatedItem2=à¸à¸±à¸à¹à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¹à¸¥à¹à¸§
+imipBarCancelText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¸¢à¸à¹à¸¥à¸´à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+imipBarCounterText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸à¸à¸³à¹à¸à¸´à¸
+imipBarDeclineCounterText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸à¸à¸à¸à¸à¸¸à¸
+imipBarPublishText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+imipBarRequestText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸³à¹à¸à¸´à¸à¹à¸à¸¢à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹
+imipBarUpdateText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¸à¸±à¸à¹à¸à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹à¸¡à¸µà¸à¸¢à¸¹à¹
+imipBarReplyText=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¸¡à¸µà¸à¸²à¸£à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸³à¹à¸à¸´à¸
+# LOCALIZATION_NOTE(imipBarReplyToRecentlyRemovedItem):
+# %1$S - datetime of deletion
+imipBarProcessingFailed=à¸à¸²à¸£à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¹à¸à¸à¸§à¸²à¸¡à¸¥à¹à¸¡à¹à¸«à¸¥à¸§ สà¸à¸²à¸à¸°: %1$S
+imipSendMail.title=à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸²à¸à¸à¸µà¹à¸¡à¸¥
+imipSendMail.text=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸ªà¹à¸à¸à¸²à¸£à¹à¸à¹à¸à¹à¸à¸·à¸à¸à¸à¸²à¸à¸à¸µà¹à¸¡à¸¥à¸à¸à¸à¸à¸µà¹à¸«à¸£à¸·à¸à¹à¸¡à¹?
+imipNoIdentity=à¹à¸¡à¹à¸¡à¸µ
+imipNoCalendarAvailable=à¹à¸¡à¹à¸¡à¸µà¸à¸à¸´à¸à¸´à¸à¸à¸µà¹à¹à¸à¸µà¸¢à¸à¹à¸à¹
+
+itipReplySubject2=à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸³à¹à¸à¸´à¸: %1$S
+itipReplyBodyAccept=%1$S à¹à¸à¹à¸¢à¸à¸¡à¸£à¸±à¸à¸à¸³à¹à¸à¸´à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸à¸à¸à¸¸à¸
+itipReplyBodyDecline=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸³à¹à¸à¸´à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸à¸à¸à¸¸à¸
+itipReplySubjectAccept2=ยà¸à¸¡à¸£à¸±à¸: %1$S
+itipReplySubjectDecline2=à¸à¸à¸´à¹à¸ªà¸à¸à¸³à¹à¸à¸´à¸: %1$S
+itipReplySubjectTentative2=à¹à¸¡à¹à¹à¸à¹à¸à¸à¸: %1$S
+itipRequestSubject2=à¸à¸³à¹à¸à¸´à¸: %1$S
+itipRequestUpdatedSubject2=à¸à¸±à¸à¹à¸à¸: %1$S
+itipRequestBody=%1$S à¹à¸à¹à¹à¸à¸´à¸à¸à¸¸à¸à¹à¸à¸¢à¸±à¸ %2$S
+itipCancelSubject2=ยà¸à¹à¸¥à¸´à¸: %1$S
+itipCancelBody=%1$S à¹à¸à¹à¸¢à¸à¹à¸¥à¸´à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸µà¹: %2$S
+itipCounterBody=%1$S à¹à¸à¹à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸ "%2$S":
+itipDeclineCounterBody=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸ "%2$S"
+itipDeclineCounterSubject=à¸à¸à¸´à¹à¸ªà¸à¸à¸²à¸£à¹à¸à¹à¹à¸¢à¹à¸: %1$S
+
+
+invitationsLink.label=à¸à¸³à¹à¸à¸´à¸: %1$S
+
+# LOCALIZATION_NOTE(binaryComponentKnown): This is shown when Lightning is
+# missing the binary component and knows how to calculate the expected version
+# number. To test, remove the binary component from the components/
+# subdirectory and start Lightning, or force install into a different
+# Thunderbird version. In the last part of the sentence it should be made clear
+# that the user can install e.g. 3.7, 3.7.1 or anything other 3.7.x version
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The current Lightning version
+# %3$S - The expected Lightning version
+
+# LOCALIZATION_NOTE(binaryComponentUnknown): This is shown when Lightning is
+# missing the binary component but can't calculate the expected version. This
+# happens in the rare case that Lightning is installed into something other
+# than Thunderbird or Seamonkey. You may link to a different page if you can
+# commit to keeping it up to date, I'd recommend staying with the English page.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+# %2$S - The application brand name, e.g. Postbox
+# %3$S - The application version
+# %3$S - The current Lightning version
+
+# LOCALIZATION_NOTE(binaryComponentTitle): The title for the dialog that
+# notifies about a version mismatch.
+# %1$S - The Lightning brand name, from the brandShortName string above.
+
+# LOCALIZATION NOTE(noIdentitySelectedNotification):
diff --git a/chat/accounts.dtd b/chat/accounts.dtd
new file mode 100644
index 00000000000..448c051c486
--- /dev/null
+++ b/chat/accounts.dtd
@@ -0,0 +1,41 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/chat/accounts.properties b/chat/accounts.properties
new file mode 100644
index 00000000000..7d536135598
--- /dev/null
+++ b/chat/accounts.properties
@@ -0,0 +1,9 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (passwordPromptTitle, passwordPromptText):
+# %S is replaced with the name of the account
+passwordPromptTitle=รหัสà¸à¹à¸²à¸à¸ªà¸³à¸«à¸£à¸±à¸ %S
+passwordPromptText=à¹à¸à¸£à¸à¸à¹à¸à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸à¸à¸à¸¸à¸à¸ªà¸³à¸«à¸£à¸±à¸ %S à¹à¸à¸·à¹à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸µ
+passwordPromptSaveCheckbox=à¹à¸à¹à¸à¸±à¸§à¸à¸±à¸à¸à¸²à¸£à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸à¸·à¹à¸à¸à¸à¸à¸³à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸µà¹
diff --git a/chat/commands.properties b/chat/commands.properties
new file mode 100644
index 00000000000..8a876c207c5
--- /dev/null
+++ b/chat/commands.properties
@@ -0,0 +1,27 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (commands):
+# %S is a comma separated list of command names.
+commands=à¸à¸³à¸ªà¸±à¹à¸: %S\nà¹à¸à¹ /help <command> สำหรัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# LOCALIZATION NOTE (noCommand, noHelp):
+# %S is the command name the user typed.
+noCommand=à¹à¸¡à¹à¸¡à¸µà¸à¸³à¸ªà¸±à¹à¸ '%S'
+noHelp=à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸à¸§à¸²à¸¡à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸³à¸ªà¸±à¹à¸ '%S' à¸à¸à¸à¸ ัย!
+
+sayHelpString=say <message>: สà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸¢à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸£à¸°à¸¡à¸§à¸¥à¸à¸¥à¸à¸³à¸ªà¸±à¹à¸
+rawHelpString=raw <message>: สà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸¢à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸«à¸¥à¸µà¸à¹à¸¥à¸µà¹à¸¢à¸à¹à¸à¸à¸à¸´à¸à¸µ HTML
+helpHelpString=help <name>: à¹à¸ªà¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸³à¸ªà¸±à¹à¸ <name> หรืà¸à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸³à¸ªà¸±à¹à¸à¸à¸µà¹à¹à¸à¹à¸à¹à¸à¹à¸à¹à¹à¸¡à¸·à¹à¸à¸à¸¹à¸à¹à¸à¹à¹à¸à¸¢à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸²à¸¡à¸´à¹à¸à¸à¸£à¹
+
+# LOCALIZATION NOTE (statusCommand):
+# %1$S is replaced with a status command name
+# (one of "back", "away", "busy", "dnd", or "offline").
+# %2$S is replaced with the localized version of that status type
+# (one of the 5 strings below).
+statusCommand=%1$S <status message>: à¸à¸±à¹à¸à¸ªà¸à¸²à¸à¸°à¹à¸à¹à¸ %2$S à¸à¹à¸§à¸¢à¸à¹à¸à¸à¸§à¸²à¸¡à¸ªà¸à¸²à¸à¸°à¸à¸±à¸§à¹à¸¥à¸·à¸à¸
+back=à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+away=à¹à¸¡à¹à¸à¸¢à¸¹à¹
+busy=à¹à¸¡à¹à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+dnd=à¹à¸¡à¹à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+offline=à¸à¸à¸à¹à¸¥à¸à¹
diff --git a/chat/contacts.properties b/chat/contacts.properties
new file mode 100644
index 00000000000..10a18b468ff
--- /dev/null
+++ b/chat/contacts.properties
@@ -0,0 +1,8 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (defaultGroup):
+# This is the name of the group that will automatically be created when adding a
+# buddy without specifying a group.
+defaultGroup=à¸à¸¹à¹à¸à¸´à¸à¸à¹à¸
diff --git a/chat/conversations.properties b/chat/conversations.properties
new file mode 100644
index 00000000000..105b367a2ab
--- /dev/null
+++ b/chat/conversations.properties
@@ -0,0 +1,80 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (targetChanged):
+# %1$S is the new conversation title (display name of the new target),
+# %2$S is the protocol name used for the new target.
+targetChanged=à¸à¸²à¸£à¸ªà¸à¸à¸à¸²à¸à¸°à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¸¢ %1$S à¹à¸à¸¢à¹à¸à¹ %2$S
+
+# LOCALIZATION NOTE (statusChanged):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+statusChanged=%1$S à¸à¸à¸à¸à¸µà¹ %2$S
+# LOCALIZATION NOTE (statusChangedWithStatusText):
+# %1$S is the display name of the contact.
+# %2$S is the new status type (a value from status.properties).
+# %3$S is the status text (eg. "I'm currently away from the computer").
+statusChangedWithStatusText=%1$S à¸à¸à¸à¸à¸µà¹ %2$S: %3$S
+# LOCALIZATION NOTE (statusChangedFromUnknown[WithStatusText]):
+# special case of the previous 2 strings for when the status was
+# previously unknown. These 2 strings should not mislead the user
+# into thinking the person's status has just changed.
+statusChangedFromUnknown=%1$S %2$S
+statusChangedFromUnknownWithStatusText=%1$S %2$S: %3$S
+# LOCALIZATION NOTE (statusKnown[WithStatusText]):
+# special case of the previous 2 strings for when an account has just
+# been reconnected, so the status is now known. These 2 strings should not
+# mislead the user into thinking the person's status has just changed.
+statusKnown=à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¹à¹à¸¥à¹à¸§ (%1$S %2$S)
+statusKnownWithStatusText=à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¹à¹à¸¥à¹à¸§ (%1$S %2$S: %3$S).
+# LOCALIZATION NOTE (statusUnknown):
+# %S is the display name of the contact.
+statusUnknown=à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸¥à¹à¸§ (à¹à¸¡à¹à¸à¸£à¸²à¸à¸ªà¸à¸²à¸à¸°à¸à¸à¸ %S à¸à¸µà¸à¸à¹à¸à¹à¸)
+
+accountDisconnected=à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸¥à¹à¸§
+accountReconnected=à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸µà¸à¸à¸à¸à¸¸à¸à¹à¸«à¸¡à¹à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (autoReply):
+# %S is replaced by the text of a message that was sent as an automatic reply.
+autoReply=à¸à¸²à¸£à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´ - %S
+
+# LOCALIZATION NOTE (noTopic):
+# Displayed instead of the topic when no topic is set.
+noTopic=à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸à¸§à¸²à¸¡à¸«à¸±à¸§à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸à¸«à¹à¸à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (topicSet):
+# %1$S is the conversation name, %2$S is the topic.
+topicSet=หัวà¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸ %1$S à¸à¸·à¸: %2$S
+# LOCALIZATION NOTE (topicNotSet):
+# %S is the conversation name.
+topicNotSet=à¹à¸¡à¹à¸¡à¸µà¸«à¸±à¸§à¸à¹à¸à¸ªà¸³à¸«à¸£à¸±à¸ %S
+# LOCALIZATION NOTE (topicChanged):
+# %1$S is the user who changed the topic, %2$S is the new topic.
+topicChanged=%1$S à¹à¸à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¸«à¸±à¸§à¸à¹à¸à¹à¸à¹à¸: %2$S
+# LOCALIZATION NOTE (topicCleared):
+# %1$S is the user who cleared the topic.
+topicCleared=%1$S à¹à¸à¹à¸¥à¹à¸²à¸à¸«à¸±à¸§à¸à¹à¸
+
+# LOCALIZATION NOTE (nickSet):
+# This is displayed as a system message when a participant changes his/her
+# nickname in a conversation.
+# %1$S is the old nick.
+# %2$S is the new nick.
+nickSet=%1$S à¸à¸¹à¸à¸£à¸¹à¹à¸à¸±à¸à¹à¸à¸à¸·à¹à¸ %2$S à¹à¸¥à¹à¸§
+# LOCALIZATION NOTE (nickSet.you):
+# This is displayed as a system message when your nickname is changed.
+# %S is your new nick.
+nickSet.you=à¸à¸¸à¸à¸à¸¹à¸à¸£à¸¹à¹à¸à¸±à¸à¹à¸à¸à¸·à¹à¸ %S à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (messenger.conversations.selections.ellipsis):
+# ellipsis is used when copying a part of a message to show that the message was cut
+messenger.conversations.selections.ellipsis=[â¦]
+
+# LOCALIZATION NOTE (messenger.conversations.selections.{system,content,action}MessagesTemplate):
+# These 3 templates are used to format selected messages before copying them.
+# Do not translate the texts between % characters, but feel free to adjust
+# whitespace and separators to make them fit your locale.
+messenger.conversations.selections.systemMessagesTemplate=%time% - %message%
+messenger.conversations.selections.contentMessagesTemplate=%time% - %sender%: %message%
+messenger.conversations.selections.actionMessagesTemplate=%time% * %sender% %message%
diff --git a/chat/dateFormat.properties b/chat/dateFormat.properties
new file mode 100644
index 00000000000..b84c3ff83c3
--- /dev/null
+++ b/chat/dateFormat.properties
@@ -0,0 +1,62 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+month.1.Mmm=ม.à¸.
+month.2.Mmm=à¸.à¸.
+month.3.Mmm=มี.à¸.
+month.4.Mmm=à¹à¸¡.ย.
+month.5.Mmm=à¸.à¸.
+month.6.Mmm=มิ.ย.
+month.7.Mmm=à¸.à¸.
+month.8.Mmm=ส.à¸.
+month.9.Mmm=à¸.ย.
+month.10.Mmm=à¸.à¸.
+month.11.Mmm=à¸.ย.
+month.12.Mmm=à¸.à¸.
+
+month.1.name=มà¸à¸£à¸²à¸à¸¡
+month.2.name=à¸à¸¸à¸¡à¸ าà¸à¸±à¸à¸à¹
+month.3.name=มีà¸à¸²à¸à¸¡
+month.4.name=à¹à¸¡à¸©à¸²à¸¢à¸
+month.5.name=à¸à¸¤à¸©à¸ าà¸à¸¡
+month.6.name=มิà¸à¸¸à¸à¸²à¸¢à¸
+month.7.name=à¸à¸£à¸à¸à¸²à¸à¸¡
+month.8.name=สิà¸à¸«à¸²à¸à¸¡
+month.9.name=à¸à¸±à¸à¸¢à¸²à¸¢à¸
+month.10.name=à¸à¸¸à¸¥à¸²à¸à¸¡
+month.11.name=à¸à¸¤à¸¨à¸à¸´à¸à¸²à¸¢à¸
+month.12.name=à¸à¸±à¸à¸§à¸²à¸à¸¡
+
+day.1.name=วัà¸à¸à¸²à¸à¸´à¸à¸¢à¹
+day.2.name=วัà¸à¸à¸±à¸à¸à¸£à¹
+day.3.name=วัà¸à¸à¸±à¸à¸à¸²à¸£
+day.4.name=วัà¸à¸à¸¸à¸
+day.5.name=วัà¸à¸à¸¤à¸«à¸±à¸ªà¸à¸à¸µ
+day.6.name=วัà¸à¸¨à¸¸à¸à¸£à¹
+day.7.name=วัà¸à¹à¸ªà¸²à¸£à¹
+
+day.1.Mmm=à¸à¸².
+day.2.Mmm=à¸.
+day.3.Mmm=à¸.
+day.4.Mmm=à¸.
+day.5.Mmm=à¸à¸¤.
+day.6.Mmm=ศ.
+day.7.Mmm=ส.
+
+day.1.short=à¸à¸²
+day.2.short=à¸
+day.3.short=à¸
+day.4.short=à¸
+day.5.short=à¸à¸¤
+day.6.short=ศ
+day.7.short=ส
+
+noon=à¹à¸à¸µà¹à¸¢à¸à¸§à¸±à¸
+midnight=à¹à¸à¸µà¹à¸¢à¸à¸à¸·à¸
+
+AllDay=à¸à¸¥à¸à¸à¸§à¸±à¸
+
+# LOCALIZATION NOTE (finduri-MonthYear):
+# %1$S is the month name, %2$S is the year (4 digits format).
+finduri-MonthYear=%1$S %2$S
diff --git a/chat/facebook.properties b/chat/facebook.properties
new file mode 100644
index 00000000000..c45a7e7bf89
--- /dev/null
+++ b/chat/facebook.properties
@@ -0,0 +1,6 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+facebook.chat.name=Facebook Chat
+facebook.disabled=à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸ Facebook Chat à¸à¸µà¸à¸à¹à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ Facebook à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸à¹à¸§à¸¢à¹ XMPP à¸à¸à¸à¹à¸à¸²
diff --git a/chat/imtooltip.properties b/chat/imtooltip.properties
new file mode 100644
index 00000000000..74c9ab4f1ff
--- /dev/null
+++ b/chat/imtooltip.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+buddy.username=à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹
+buddy.account=à¸à¸±à¸à¸à¸µ
+contact.tags=à¸à¹à¸²à¸¢à¸à¸³à¸à¸±à¸
diff --git a/chat/irc.properties b/chat/irc.properties
new file mode 100644
index 00000000000..a8c3c642b36
--- /dev/null
+++ b/chat/irc.properties
@@ -0,0 +1,209 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (irc.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring an IRC account.
+irc.usernameHint=à¸à¸·à¹à¸à¹à¸¥à¹à¸
+
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if the account is
+# disconnected because of an error.
+connection.error.lost=à¸à¸²à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+connection.error.timeOut=à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸«à¸¡à¸à¹à¸§à¸¥à¸²
+connection.error.invalidUsername=%S à¹à¸¡à¹à¹à¸à¹à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸
+connection.error.invalidPassword=รหัสà¸à¹à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+connection.error.passwordRequired=à¸à¹à¸à¸à¸à¸²à¸£à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸
+
+# LOCALIZATION NOTE (joinChat.*):
+# These show up on the join chat menu. An underscore is for the access key.
+joinChat.channel=_à¸à¹à¸à¸
+joinChat.password=_รหัสà¸à¹à¸²à¸
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.server=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+options.port=à¸à¸à¸£à¹à¸
+options.ssl=à¹à¸à¹ SSL
+options.encoding=à¸à¸¸à¸à¸à¸±à¸à¸à¸£à¸°
+options.quitMessage=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸à¸
+options.partMessage=à¸à¹à¸à¸à¸§à¸²à¸¡à¸¥à¸²
+options.showServerTab=à¹à¸ªà¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+options.alternateNicks=à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸·à¹à¸
+
+# LOCALIZATION NOTE (ctcp.version):
+# %1$S is the nickname of the user whose version was requested.
+# %2$S is the version response from the client.
+ctcp.version=%1$S à¸à¸³à¸¥à¸±à¸à¹à¸à¹ "%2$S"
+# LOCALIZATION NOTE (ctcp.time):
+# %1$S is the nickname of the user whose time was requested.
+# %2$S is the time response.
+ctcp.time=à¹à¸§à¸¥à¸²à¸ªà¸³à¸«à¸£à¸±à¸ %1$S à¸à¸·à¸ %2$S
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command, the %S is the command name
+# Each command first gives the parameter it accepts and then a description of
+# the command.
+command.action=%S <à¸à¸²à¸£à¸à¸£à¸°à¸à¸³à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£>: à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸²à¸£à¸à¸£à¸°à¸à¸³
+command.ban=%S <nick!user@host>: หà¹à¸²à¸¡à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸à¸£à¸¹à¸à¹à¸à¸à¸à¸µà¹à¸à¸³à¸«à¸à¸
+command.ctcp=%S <nick> <msg>: สà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡ CTCP à¹à¸à¸¢à¸±à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸
+command.chanserv=%S <command>: สà¹à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸à¸¢à¸±à¸ ChanServ
+command.deop=%S <nick1>[,<nick2>]*: à¹à¸à¸²à¸ªà¸à¸²à¸à¸°à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¸à¸à¸à¸à¸²à¸à¸à¸à¹à¸à¸à¸à¸«à¸à¸¶à¹à¸ à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸³à¸ªà¸´à¹à¸à¸à¸µà¹
+command.devoice=%S <nick1>[,<nick2>]*: à¹à¸à¸²à¸ªà¸à¸²à¸à¸°à¸à¸²à¸£à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸²à¸à¸à¸à¹à¸à¸à¸à¸«à¸à¸¶à¹à¸ à¹à¸à¸·à¹à¸à¸à¹à¸à¸à¸à¸±à¸à¹à¸¡à¹à¹à¸«à¹à¸à¸¹à¸à¸«à¸²à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸¥à¹à¸²à¸§à¸¡à¸µà¸à¸²à¸£à¸à¸§à¸à¸à¸¸à¸¡ (+m) à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸³à¸ªà¸´à¹à¸à¸à¸µà¹
+command.invite2=%S <nick>[ <nick>]* [<channel>]: à¹à¸à¸´à¸à¸à¸·à¸à¹à¸¥à¹à¸à¸à¸¢à¹à¸²à¸à¸à¹à¸à¸¢à¸«à¸à¸¶à¹à¸à¸à¸·à¹à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸¸à¸à¹à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸ หรืà¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¹à¸à¸à¸à¸µà¹à¸£à¸°à¸à¸¸
+command.join=%S <room1>[ <key1>][,<room2>[ <key2>]]*: à¸à¹à¸à¸à¸à¹à¸à¸à¸à¸¢à¹à¸²à¸à¸à¹à¸à¸¢à¸«à¸à¸¶à¹à¸à¸à¹à¸à¸ à¹à¸à¸¢à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸°à¸à¸¸à¸à¸µà¸¢à¹à¸à¸à¸à¸à¹à¸à¸à¹à¸à¹à¹à¸à¹à¸à¹à¸¥à¸°à¸à¸£à¸±à¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£
+command.kick=%S <nick> [<message>]: à¹à¸à¸²à¹à¸à¸£à¸à¸²à¸à¸à¸à¸à¸à¸à¸à¸²à¸à¸à¹à¸à¸ à¹à¸à¸¢à¸à¸¸à¸à¸à¸°à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¸à¸¶à¸à¸à¸°à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸µà¹à¹à¸à¹
+command.list=%S: à¹à¸ªà¸à¸à¸£à¸²à¸¢à¸à¸²à¸£à¸«à¹à¸à¸à¸ªà¸à¸à¸à¸²à¸à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢ à¹à¸à¸£à¸à¸£à¸°à¸§à¸±à¸à¸à¹à¸§à¸¢à¸§à¹à¸²à¸à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸²à¸à¹à¸¡à¹à¹à¸«à¹à¸à¸¸à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸«à¸²à¸à¸à¸¸à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸µà¹
+command.memoserv=%S <command>: สà¹à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸à¸¢à¸±à¸ MemoServ
+command.modeUser2=%S <nick> [(+|-)<mode>]: รัภà¸à¸±à¹à¸à¸à¹à¸² หรืà¸à¹à¸¥à¸´à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸«à¸¡à¸à¸à¸à¸à¸à¸¹à¹à¹à¸à¹
+command.modeChannel2=%S [<channel>] [(+|-)<new mode> [<parameter>][,<parameter>]*]: รัภà¸à¸±à¹à¸à¸à¹à¸² หรืà¸à¹à¸¥à¸´à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸«à¸¡à¸à¸à¹à¸à¸
+command.msg=%S <nick> <message>: สà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸¶à¸à¸à¸¹à¹à¹à¸à¹ (à¹à¸¡à¹à¸ªà¹à¸à¸à¸¶à¸à¸à¹à¸à¸à¹à¸à¸¢à¸à¸£à¸)
+command.nick=%S <new nickname>: à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸à¸à¸à¸¸à¸
+command.nickserv=%S <command>: สà¹à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸à¸¢à¸±à¸ NickServ
+command.notice=%S <target> <message>: สà¹à¸à¸à¸£à¸°à¸à¸²à¸¨à¹à¸à¸¢à¸±à¸à¸à¸¹à¹à¹à¸à¹à¸«à¸£à¸·à¸à¸à¹à¸à¸
+command.op=%S <nick1>[,<nick2>]*: มà¸à¸à¸ªà¸à¸²à¸à¸°à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¹à¸«à¹à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸«à¸à¸¶à¹à¸ à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸³à¸ªà¸´à¹à¸à¸à¸µà¹
+command.operserv=%S <command>: สà¹à¸à¸à¸³à¸ªà¸±à¹à¸à¹à¸à¸¢à¸±à¸ OperServ
+command.part=%S [message]: à¸à¸à¸à¸à¸²à¸à¸à¹à¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸£à¹à¸à¸¡à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+command.ping=%S [<nick>]: à¸à¸²à¸¡à¹à¸§à¸¥à¸²à¸à¸µà¹à¸¥à¹à¸²à¸à¹à¸²à¸à¸à¸à¸à¸¹à¹à¹à¸à¹ (หรืà¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸«à¸²à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸°à¸à¸¸à¸à¸¹à¹à¹à¸à¹)
+command.quit=%S <message>: à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸£à¹à¸à¸¡à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+command.quote=%S <command>: สà¹à¸à¸à¸³à¸ªà¸±à¹à¸à¸à¸´à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+command.time=%S: à¹à¸ªà¸à¸à¸à¸¥à¹à¸§à¸¥à¸²à¸à¹à¸à¸à¸à¸´à¹à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸µà¹à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹ IRC
+command.topic=%S [<new topic>]: à¸à¸±à¹à¸à¸à¹à¸²à¸«à¸±à¸§à¸à¹à¸à¸à¸à¸à¸à¹à¸à¸à¸à¸µà¹
+command.umode=%S (+|-)<new mode>: à¸à¸±à¹à¸à¸à¹à¸²à¸«à¸£à¸·à¸à¹à¸¥à¸´à¸à¸à¸±à¹à¸à¸à¹à¸²à¹à¸«à¸¡à¸à¸à¸¹à¹à¹à¸à¹
+command.version=%S <nick>: à¸à¸à¸£à¸¸à¹à¸à¸à¸à¸à¹à¸à¸¥à¹à¸à¸à¸à¹à¸à¸à¸à¸à¸¹à¹à¹à¸à¹
+command.voice=%S <nick1>[,<nick2>]*: มà¸à¸à¸ªà¸à¸²à¸à¸°à¸à¸²à¸£à¸à¸¹à¸à¸à¹à¸à¸à¹à¸«à¹à¹à¸à¹à¸à¸à¹à¸à¸à¸à¸«à¸à¸¶à¹à¸ à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸§à¸à¸à¸¸à¸¡à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸³à¸ªà¸´à¹à¸à¸à¸µà¹
+command.whois2=%S [<nick>]: รัà¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¸à¸¹à¹à¹à¸à¹
+
+# LOCALIZATION NOTE (message.*):
+# These are shown as system messages in the conversation.
+# %1$S is the nick and %2$S is the nick and host of the user who joined.
+message.join=%1$S [%2$S] à¹à¸à¹à¸²à¸«à¹à¸à¸à¹à¸¥à¹à¸§
+message.rejoined=à¸à¸¸à¸à¹à¸à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¸à¸µà¹à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸¥à¹à¸§
+# %1$S is the nick of who kicked you.
+# %2$S is message.kicked.reason, if a kick message was given.
+message.kicked.you=à¸à¸¸à¸à¸à¸¹à¸à¹à¸à¸°à¸à¸à¸à¹à¸à¸¢ %1$S %2$S
+# %1$S is the nick that is kicked, %2$S the nick of the person who kicked
+# %1$S. %3$S is message.kicked.reason, if a kick message was given.
+message.kicked=%1$S à¹à¸à¹à¸à¸¹à¸ %2$S %3$S à¹à¸à¸°à¸à¸à¸
+# %S is the kick message
+message.kicked.reason=: %S
+# %1$S is the new mode, %2$S is the nickname of the user whose mode
+# was changed, and %3$S is who set the mode.
+message.usermode=à¹à¸«à¸¡à¸ %1$S สำหรัภ%2$S à¸à¸±à¹à¸à¹à¸à¸¢ %3$S
+# %1$S is the new channel mode and %2$S is who set the mode.
+message.channelmode=à¹à¸«à¸¡à¸à¸à¹à¸à¸ %1$S à¸à¸±à¹à¸à¹à¸à¸¢ %2$S
+# %S is the user's mode.
+message.yourmode=à¹à¸«à¸¡à¸à¸à¸à¸à¸à¸¸à¸à¸à¸·à¸ %S
+# Could not change the nickname. %S is the user's nick.
+message.nick.fail=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£ à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸à¸à¸à¸¸à¸à¸¢à¸±à¸à¸à¸à¹à¸à¹à¸ %S
+# The parameter is the message.parted.reason, if a part message is given.
+message.parted.you=à¸à¸¸à¸à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸ (ลา %1$S)
+# %1$S is the user's nick, %2$S is message.parted.reason, if a part message is given.
+message.parted=%1$S à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸¥à¹à¸§ (ลา %2$S)
+# %S is the part message supplied by the user.
+message.parted.reason=: %S
+# %1$S is the user's nick, %2$S is message.quit2 if a quit message is given.
+message.quit=%1$S à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸¥à¹à¸§ (à¸à¸à¸ %2$S)
+# The parameter is the quit message given by the user.
+message.quit2=: %S
+# %1$S is the nickname of the user that invited us, %2$S is the conversation
+# name.
+message.inviteReceived=%1$S à¹à¸à¹à¹à¸à¸´à¸à¸à¸¸à¸à¹à¸à¸¢à¸±à¸ %2$S
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to.
+message.invited=%1$S à¹à¸à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %2$S à¹à¸¥à¹à¸§
+# %1$S is the nickname of the invited user, %2$S is the conversation name
+# they were invited to but are already in
+message.alreadyInChannel=%1$S à¸à¸¢à¸¹à¹à¹à¸ %2$S à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§
+# %S is the nickname of the user who was summoned.
+message.summoned=%S à¸à¸¹à¸à¸à¸§à¸à¹à¸¥à¹à¸§
+# %S is the nickname of the user whose WHOIS information follows this message.
+message.whois=à¸à¹à¸à¸¡à¸¹à¸¥ WHOIS สำหรัภ%S:
+# %1$S is the nickname of the (offline) user whose WHOWAS information follows this message.
+message.whowas=%1$S à¸à¸à¸à¹à¸¥à¸à¹à¸à¸¢à¸¹à¹ à¸à¹à¸à¸¡à¸¹à¸¥ WHOWAS สำหรัภ%1$S:
+# %1$S is the entry description (from tooltip.*), %2$S is its value.
+message.whoisEntry=\ua0\ua0\ua0\ua0%1$S: %2$S
+# %S is the nickname that is not known to the server.
+message.unknownNick=%S à¹à¸à¹à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸µà¹à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸
+# %1$S is the nickname of the user who changed the mode and %2$S is the new
+# channel key (password).
+message.channelKeyAdded=%1$S à¹à¸à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¹à¸à¸à¹à¸à¹à¸ %2$S
+message.channelKeyRemoved=%S à¹à¸à¹à¹à¸à¸²à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¹à¸à¸à¸à¸à¸
+# This will be followed by a list of ban masks.
+message.banMasks=à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸±à¸à¸à¹à¸à¹à¸à¸à¸µà¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸ %S:
+message.noBanMasks=à¹à¸¡à¹à¸¡à¸µà¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸µà¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸ªà¸³à¸«à¸£à¸±à¸ %S
+message.banMaskAdded=à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸ %1$S à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¹à¸à¸¢ %2$S
+message.banMaskRemoved=à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¸à¸µà¹à¸à¸£à¸à¸à¸±à¸ %1$S à¹à¸¡à¹à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¹à¸à¸¢ %2$S à¸à¸µà¸à¸à¹à¸à¹à¸
+# LOCALIZATION NOTE (message.ping): Semi-colon list of plural forms.
+# See: http://developer.mozilla.org/en/docs/Localization_and_Plurals
+# %1$S is the nickname of the user or the server that was pinged.
+# #2 is the delay (in milliseconds).
+message.ping=à¸à¸²à¸£à¸à¸à¸à¸à¸¥à¸±à¸ Ping à¸à¸²à¸ %1$S à¹à¸ #2 มิลลิวิà¸à¸²à¸à¸µ
+
+
+# LOCALIZATION NOTE (error.*):
+# These are shown as error messages in the conversation or server tab.
+# %S is the channel name.
+error.noChannel=à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸: %S
+error.tooManyChannels=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %S; à¸à¸¸à¸à¹à¸à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¹à¸à¸à¸¡à¸²à¸à¹à¸à¸´à¸à¹à¸
+# %1$S is your new nick, %2$S is the kill message from the server.
+error.nickCollision=à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸¹à¸à¹à¸à¹à¹à¸¥à¹à¸§ à¸à¸³à¸¥à¸±à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¹à¸à¹à¸ %1$S [%2$S]
+error.erroneousNickname=%S à¹à¸¡à¹à¹à¸à¹à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸µà¹à¸à¸à¸¸à¸à¸²à¸
+error.banned=à¸à¸¸à¸à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹
+error.bannedSoon=à¸à¸¸à¸à¸à¸°à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹à¹à¸à¹à¸£à¹à¸§ ๠à¸à¸µà¹
+error.mode.wrongUser=à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸«à¸¡à¸à¹à¸«à¹à¸à¸¹à¹à¹à¸à¹à¸à¸·à¹à¸
+# %S is the nickname or channel name that isn't available.
+error.noSuchNick=%S à¹à¸¡à¹à¸à¸à¸à¹à¸¥à¸à¹
+error.wasNoSuchNick=à¹à¸¡à¹à¸¡à¸µà¸à¸·à¹à¸à¹à¸¥à¹à¸: %S
+error.noSuchChannel=à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸: %S
+error.unavailable=%S à¹à¸¡à¹à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸à¹à¸à¸à¸à¸°à¸à¸µà¹
+# %S is the channel name.
+error.channelBanned=à¸à¸¸à¸à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸ %S
+error.cannotSendToChannel=à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸¢à¸±à¸ %S
+error.channelFull=à¸à¹à¸à¸ %S à¹à¸à¹à¸¡à¹à¸¥à¹à¸§
+error.inviteOnly=à¸à¸¸à¸à¸à¹à¸à¸à¸à¸¹à¸à¹à¸à¸´à¸à¹à¸à¸·à¹à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %S
+error.nonUniqueTarget=%S à¹à¸¡à¹à¹à¸à¹ user@host หรืà¸à¸à¸·à¹à¸à¹à¸à¸à¸ªà¸±à¹à¸à¸à¸µà¹à¹à¸¡à¹à¸à¹à¸³à¸à¸±à¸à¸«à¸£à¸·à¸à¸à¸¸à¸à¹à¸à¹à¸à¸¢à¸²à¸¢à¸²à¸¡à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¹à¸à¸à¸¡à¸²à¸à¹à¸à¸´à¸à¹à¸à¸à¸£à¹à¸à¸¡à¸à¸±à¸à¹à¸à¸à¸£à¸±à¹à¸à¹à¸à¸µà¸¢à¸§
+error.notChannelOp=à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¹à¸à¸à¸¹à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¹à¸à¸ %S
+error.notChannelOwner=à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¹à¸²à¸à¸à¸à¸à¹à¸à¸ %S
+error.wrongKey=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %S รหัสà¸à¹à¸²à¸à¸à¹à¸à¸à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+error.sendMessageFailed=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸à¸°à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸¥à¹à¸²à¸ªà¸¸à¸à¸à¸à¸à¸à¸¸à¸ à¹à¸à¸£à¸à¸¥à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸¡à¸·à¹à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¹à¸à¸¹à¸à¸ªà¸£à¹à¸²à¸à¸à¸¶à¹à¸à¹à¸«à¸¡à¹à¹à¸¥à¹à¸§
+# %1$S is the channel the user tried to join, %2$S is the channel
+# he was forwarded to.
+error.channelForward=à¸à¸¸à¸à¸à¸²à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %1$S à¹à¸à¹ à¹à¸¥à¸°à¸à¸°à¸à¸¹à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸ªà¹à¸à¸à¸²à¸à¹à¸à¸¢à¸±à¸ %2$S à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´
+# %S is the mode that the user tried to set but was not recognized
+# by the server as a valid mode.
+error.unknownMode=''%S' à¹à¸¡à¹à¹à¸à¹à¹à¸«à¸¡à¸à¸à¸¹à¹à¹à¸à¹à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the descriptions given in a tooltip with information received
+# from a whois response.
+# The human readable ("realname") description of the user.
+tooltip.realname=à¸à¸·à¹à¸
+tooltip.server=à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸¢à¸±à¸
+# The username and hostname that the user connects from (usually based on the
+# reverse DNS of the user's IP, but often mangled by the server to
+# protect users).
+tooltip.connectedFrom=à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸
+tooltip.registered=ลà¸à¸à¸°à¹à¸à¸µà¸¢à¸
+tooltip.registeredAs=ลà¸à¸à¸°à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸·à¹à¸
+tooltip.secure=à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸µà¹à¸à¸¥à¸à¸à¸ ัย
+# The away message of the user
+tooltip.away=à¹à¸¡à¹à¸à¸¢à¸¹à¹
+tooltip.ircOp=à¸à¸¹à¹à¹à¸«à¹à¸à¸£à¸´à¸à¸²à¸£ IRC
+tooltip.bot=à¸à¸à¸
+tooltip.lastActivity=à¸à¸´à¸à¸à¸£à¸£à¸¡à¸¥à¹à¸²à¸ªà¸¸à¸
+# %S is the timespan elapsed since the last activity.
+tooltip.timespan=%S à¸à¸µà¹à¹à¸¥à¹à¸§
+tooltip.channels=à¹à¸à¹à¸à¸²à¸à¹à¸à¸à¸à¸°à¸à¸µà¹
+
+# %1$S is the server name, %2$S is some generic server information (usually a
+# location or the date the user was last seen).
+tooltip.serverValue=%1$S (%2$S)
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=à¹à¸à¹
+no=à¹à¸¡à¹
diff --git a/chat/logger.properties b/chat/logger.properties
new file mode 100644
index 00000000000..6ac973d5360
--- /dev/null
+++ b/chat/logger.properties
@@ -0,0 +1,7 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (badLogfile):
+# %S is the filename of the log file.
+badLogfile=à¹à¸à¸¥à¹à¸£à¸²à¸¢à¸à¸²à¸£à¸à¸±à¸à¸à¸¶à¸à¸§à¹à¸²à¸à¹à¸à¸¥à¹à¸²à¸«à¸£à¸·à¸à¹à¸ªà¸µà¸¢à¸«à¸²à¸¢: %S
diff --git a/chat/matrix.properties b/chat/matrix.properties
new file mode 100644
index 00000000000..5d324c992ba
--- /dev/null
+++ b/chat/matrix.properties
@@ -0,0 +1,17 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.connectServer=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+options.connectPort=à¸à¸à¸£à¹à¸
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for Matrix accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_หà¹à¸à¸
diff --git a/chat/skype.properties b/chat/skype.properties
new file mode 100644
index 00000000000..ed2de38cb81
--- /dev/null
+++ b/chat/skype.properties
@@ -0,0 +1,14 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*):
+# These will show in the account manager to show progress during a connection.
+connecting.authenticating=à¸à¸³à¸¥à¸±à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸
+connecting.registrationToken=à¸à¸³à¸¥à¸±à¸à¸£à¸±à¸à¹à¸à¹à¸à¹à¸à¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
+
+# LOCALIZATION NOTE (error.*):
+# These will show in the account manager if the account is disconnected
+# because of an error.
+error.auth=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¹à¸à¸¢à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+error.registrationToken=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸±à¸à¹à¸à¹à¸à¹à¸à¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
diff --git a/chat/status.properties b/chat/status.properties
new file mode 100644
index 00000000000..07d3696cce7
--- /dev/null
+++ b/chat/status.properties
@@ -0,0 +1,23 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+availableStatusType=à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+awayStatusType=à¹à¸¡à¹à¸à¸¢à¸¹à¹
+unavailableStatusType=à¹à¸¡à¹à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+offlineStatusType=à¸à¸à¸à¹à¸¥à¸à¹
+invisibleStatusType=มà¸à¸à¹à¸¡à¹à¹à¸«à¹à¸
+idleStatusType=à¹à¸¡à¹à¹à¸à¹à¹à¸à¹à¸à¸²à¸
+mobileStatusType=มืà¸à¸à¸·à¸
+# LOCALIZATION NOTE (unknownStatusType):
+# the status of a buddy is unknown when it's in the list of a disconnected account
+unknownStatusType=à¹à¸¡à¹à¸à¸£à¸²à¸
+
+# LOCALIZATION NOTE (statusWithStatusMessage):
+# Used to display the status of a buddy together with its status message.
+# %1$S is the status type, %2$S is the status message text.
+statusWithStatusMessage=%1$S - %2$S
+
+# LOCALIZATION NOTE (messenger.status.defaultIdleAwayMessage):
+# This will be the away message put automatically when the user is idle.
+messenger.status.defaultIdleAwayMessage=à¸à¸à¸°à¸à¸µà¹à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹
diff --git a/chat/twitter.properties b/chat/twitter.properties
new file mode 100644
index 00000000000..d37c44e3ff8
--- /dev/null
+++ b/chat/twitter.properties
@@ -0,0 +1,120 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (twitter.protocolName)
+# This name is used whenever the name of the protocol is shown.
+twitter.protocolName=Twitter
+
+# LOCALIZATION NOTE (error.*):
+# These are errors that will be shown to the user in conversation.
+error.tooLong=สà¸à¸²à¸à¸°à¸¡à¸µà¸à¸§à¸²à¸¡à¸¢à¸²à¸§à¹à¸à¸´à¸ 140 à¸à¸±à¸à¸à¸£à¸°
+# LOCALIZATION NOTE (error.general, error.retweet, error.delete):
+# %1$S will be either the error string returned by the twitter server,
+# in English, inside parenthesis, or the empty string if we have no specific
+# message for the error.
+# %2$S is the message that caused the error.
+error.general=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸ %1$S à¸à¸à¸°à¸ªà¹à¸: %2$S
+error.retweet=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸ %1$S à¸à¸à¸°à¸£à¸µà¸à¸§à¸µà¸: %2$S
+error.delete=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸ %1$S à¸à¸à¸°à¸¥à¸: %2$S
+error.like=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸ %1$S à¸à¸à¸°à¸à¸¹à¸à¹à¸: %2$S
+error.unlike=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸ %1$S à¸à¸à¸°à¹à¸¥à¸´à¸à¸à¸¹à¸à¹à¸: %2$S
+# LOCALIZATION NOTE (error.descriptionTooLong)
+# %S is the truncated string that was sent to the server.
+error.descriptionTooLong=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢à¸¢à¸²à¸§à¹à¸à¸´à¸à¸à¸§à¸²à¸¡à¸¢à¸²à¸§à¸ªà¸¹à¸à¸ªà¸¸à¸ (à¸à¸±à¸à¸à¸£à¸° 160 à¸à¸±à¸§) à¸à¸¶à¹à¸à¸à¸¹à¸à¸à¸±à¸à¸à¸à¸à¹à¸à¸¢à¸à¸±à¸à¹à¸à¸¡à¸±à¸à¸´à¹à¸à¹à¸: %S
+
+# LOCALIZATION NOTE (timeline):
+# This is the title of the conversation tab, %S will be replaced by
+# @.
+timeline=à¹à¸à¸¡à¹à¹à¸¥à¸à¹à¸à¸à¸ %S
+
+# LOCALIZATION NOTE (action.*):
+# This will be an action in the context menu of displayed tweets.
+action.copyLink=à¸à¸±à¸à¸¥à¸à¸à¸¥à¸´à¸à¸à¹à¹à¸à¸¢à¸±à¸à¸à¸§à¸µà¸
+action.retweet=รีà¸à¸§à¸µà¸
+action.reply=à¸à¸à¸à¸à¸¥à¸±à¸
+action.delete=ลà¸
+# LOCALIZATION NOTE (action.follow, action.stopFollowing):
+# %S will be replaced by the screen name of a twitter user.
+action.follow=à¸à¸´à¸à¸à¸²à¸¡ %S
+action.stopFollowing=หยุà¸à¸à¸²à¸£à¸à¸´à¸à¸à¸²à¸¡ %S
+action.like=à¸à¸¹à¸à¹à¸
+action.unlike=à¹à¸à¸²à¸à¸²à¸£à¸à¸¹à¸à¹à¸à¸à¸à¸
+
+# LOCALIZATION NOTE (event.follow, event.unfollow, event.followed):
+# This will be displayed in system messages inside the timeline conversation.
+# %S will be replaced by the screen name of a twitter user.
+event.follow=à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸²à¸¡ %S
+event.unfollow=à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸²à¸¡ %S à¸à¸µà¸à¸à¹à¸à¹à¸
+event.followed=%S à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸²à¸¡à¸à¸¸à¸
+# LOCALIZATION NOTE (event.deleted):
+# %S will be replaced by the text of the deleted tweet.
+event.deleted=à¸à¸¸à¸à¹à¸à¹à¸¥à¸à¸à¸§à¸µà¸à¸à¸µà¹: "%S"
+
+# LOCALIZATION NOTE (replyingToStatusText):
+# This will be visible in the status bar of the conversation window
+# while the user is typing a reply to a tweet.
+# %S will be replaced by the text of the tweet the user is replying to.
+replyingToStatusText=à¸à¸³à¸¥à¸±à¸à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸¶à¸: %S
+
+# LOCALIZATION NOTE (connection.*):
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds ⦠at the end, so do not include
+# periods at the end of these messages.)
+connection.initAuth=à¸à¸³à¸¥à¸±à¸à¹à¸£à¸´à¹à¸¡à¸à¸£à¸°à¸à¸§à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸
+connection.requestAuth=à¸à¸³à¸¥à¸±à¸à¸£à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸à¸à¸à¸¸à¸
+connection.requestAccess=à¸à¸³à¸¥à¸±à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸±à¹à¸à¸ªà¸¸à¸à¸à¹à¸²à¸¢
+connection.requestTimelines=à¸à¸³à¸¥à¸±à¸à¸à¸à¹à¸à¸¡à¹à¹à¸¥à¸à¹à¸à¸à¸à¸à¸¹à¹à¹à¸à¹
+# LOCALIZATION NOTE (connection.error.*):
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.userMismatch=à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹à¹à¸¡à¹à¸à¸£à¸à¸à¸±à¸
+connection.error.failedToken=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸±à¸à¹à¸à¹à¸à¹à¸à¸à¸³à¸à¸
+connection.error.authCancelled=à¸à¸¸à¸à¹à¸à¹à¸¢à¸à¹à¸¥à¸´à¸à¸à¸£à¸°à¸à¸§à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸
+connection.error.authFailed=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸±à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸
+connection.error.noNetwork=à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢
+
+# LOCALIZATION NOTE (authPrompt):
+# This is the prompt in the browser window that pops up to authorize us
+# to use a Twitter account. It is shown in the title bar of the authorization
+# window.
+authPrompt=à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸à¸±à¸à¸à¸µ Twitter à¸à¸à¸à¸à¸¸à¸
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.track=à¸à¸³à¸ªà¸³à¸à¸±à¸à¸à¸µà¹à¸à¸´à¸à¸à¸²à¸¡
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the Twitter information that will appear in the tooltip
+# for each participant on the home timeline.
+# LOCALIZATION NOTE (tooltip.created_at): the date the user joined.
+tooltip.created_at=à¸à¸¹à¹à¹à¸à¹à¸à¸±à¹à¸à¹à¸à¹
+tooltip.location=à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+tooltip.lang=ภาษา
+tooltip.time_zone=à¹à¸à¸à¹à¸§à¸¥à¸²
+tooltip.url=หà¸à¹à¸²à¹à¸£à¸
+# LOCALIZATION NOTE (tooltip.protected):
+# whether the user's tweets are publicly visible.
+tooltip.protected=à¸à¸à¸à¹à¸à¸à¸à¸§à¸µà¸
+# LOCALIZATION NOTE (tooltip.following):
+# whether you are subscribed to the user's tweets.
+tooltip.following=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸²à¸¡à¹à¸à¸à¸à¸°à¸à¸µà¹
+tooltip.name=à¸à¸·à¹à¸
+tooltip.description=à¸à¸³à¸à¸à¸´à¸à¸²à¸¢
+# LOCALIZATION NOTE (tooltip.*_count):
+# Please see the right side of the official Twitter website UI.
+tooltip.friends_count=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸²à¸¡
+tooltip.statuses_count=à¸à¸§à¸µà¸
+tooltip.followers_count=à¸à¸¹à¹à¸à¸´à¸à¸à¸²à¸¡
+tooltip.listed_count=รายà¸à¸²à¸£
+
+# LOCALIZATION NOTE (yes, no):
+# These are used to turn true/false values into a yes/no response.
+yes=à¹à¸à¹
+no=à¹à¸¡à¹
+
+command.follow=%S <username>[ <username>]*: à¹à¸£à¸´à¹à¸¡à¸à¸´à¸à¸à¸²à¸¡à¸à¸¹à¹à¹à¸à¹
+command.unfollow=%S <username>[ <username>]*: หยุà¸à¸à¸´à¸à¸à¸²à¸¡à¸à¸¹à¹à¹à¸à¹
diff --git a/chat/xmpp.properties b/chat/xmpp.properties
new file mode 100644
index 00000000000..19d966df0c5
--- /dev/null
+++ b/chat/xmpp.properties
@@ -0,0 +1,276 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (connection.*)
+# These will be displayed in the account manager in order to show the progress
+# of the connection.
+# (These will be displayed in account.connection.progress from
+# accounts.properties, which adds ⦠at the end, so do not include
+# periods at the end of these messages.)
+connection.initializingStream=à¸à¸³à¸¥à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¹à¸à¹à¸à¸²à¸à¸ªà¸à¸£à¸µà¸¡
+connection.initializingEncryption=à¸à¸³à¸¥à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª
+connection.authenticating=à¸à¸³à¸¥à¸±à¸à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸
+connection.gettingResource=à¸à¸³à¸¥à¸±à¸à¸£à¸±à¸à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£
+connection.downloadingRoster=à¸à¸³à¸¥à¸±à¸à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¸£à¸²à¸¢à¸à¸·à¹à¸à¸à¸¹à¹à¸à¸´à¸à¸à¹à¸
+connection.srvLookup=à¸à¸³à¸¥à¸±à¸à¸à¹à¸à¸«à¸²à¹à¸£à¸à¸à¸à¸£à¹à¸ SRV
+
+# LOCALIZATION NOTE (connection.error.*)
+# These will show in the account manager if an error occurs during the
+# connection attempt.
+connection.error.invalidUsername=à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ (à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹à¸à¸à¸à¸à¸¸à¸à¸à¸§à¸£à¸¡à¸µà¸à¸±à¸à¸à¸£à¸° '@')
+connection.error.failedToCreateASocket=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¸£à¹à¸²à¸à¸à¹à¸à¸à¹à¸à¹à¸ (à¸à¸¸à¸à¸à¸à¸à¹à¸¥à¸à¹à¸à¸¢à¸¹à¹à¸«à¸£à¸·à¸à¹à¸à¸¥à¹à¸²?)
+connection.error.serverClosedConnection=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¹à¸à¹à¸à¸´à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+connection.error.resetByPeer=à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¹à¸à¸£à¸µà¹à¸à¹à¸à¹à¸à¸¢à¹à¸à¸µà¸¢à¸£à¹
+connection.error.timedOut=à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸«à¸¡à¸à¹à¸§à¸¥à¸²
+connection.error.receivedUnexpectedData=à¹à¸à¹à¸£à¸±à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¹à¸¡à¹à¸à¸²à¸à¹à¸§à¹
+connection.error.incorrectResponse=à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸à¸à¸à¸à¸¥à¸±à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+connection.error.startTLSRequired=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª à¹à¸à¹à¸à¸¸à¸à¹à¸à¹à¸à¸´à¸à¸à¸²à¸£à¹à¸à¹à¸à¸²à¸
+connection.error.startTLSNotSupported=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª à¹à¸à¹à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸à¸à¸à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£
+connection.error.failedToStartTLS=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸£à¸´à¹à¸¡à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª
+connection.error.noAuthMec=à¹à¸¡à¹à¸¡à¸µà¸à¸¥à¹à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸µà¹à¹à¸ªà¸à¸à¹à¸à¸¢à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+connection.error.noCompatibleAuthMec=à¹à¸¡à¹à¸¡à¸µà¸à¸¥à¹à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸à¸µà¹à¹à¸ªà¸à¸à¹à¸à¸¢à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹à¸£à¸à¸à¸£à¸±à¸
+connection.error.notSendingPasswordInClear=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸£à¸à¸à¸£à¸±à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¹à¸à¸¢à¸à¸²à¸£à¸ªà¹à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸à¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸£à¸£à¸¡à¸à¸²
+connection.error.authenticationFailure=à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+connection.error.notAuthorized=à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸£à¸à¸à¸à¸§à¸²à¸¡à¸à¸¹à¸à¸à¹à¸à¸ (à¸à¸¸à¸à¸à¹à¸à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸à¸´à¸à¸«à¸£à¸·à¸à¹à¸à¸¥à¹à¸²?)
+connection.error.failedToGetAResource=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸£à¸±à¸à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£
+connection.error.failedMaxResourceLimit=à¸à¸±à¸à¸à¸µà¸à¸µà¹à¸à¸¹à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸²à¸à¸«à¸¥à¸²à¸¢à¸à¸µà¹à¸¡à¸²à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¹à¸§à¸¥à¸²à¹à¸à¸µà¸¢à¸§à¸à¸±à¸
+connection.error.failedResourceNotValid=à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+connection.error.XMPPNotSupported=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸ XMPP
+
+# LOCALIZATION NOTE (conversation.error.notDelivered):
+# This is displayed in a conversation as an error message when a message
+# the user has sent wasn't delivered.
+# %S is replaced by the text of the message that wasn't delivered.
+conversation.error.notDelivered=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹: %S
+# This is displayed in a conversation as an error message when joining a MUC
+# fails.
+# %S is the name of the MUC.
+conversation.error.joinFailed=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡: %S
+# This is displayed in a conversation as an error message when the user is
+# banned from a room.
+# %S is the name of the MUC room.
+conversation.error.joinForbidden=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¸à¸à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¸«à¹à¸à¸à¸à¸µà¹
+conversation.error.joinFailedNotAuthorized=à¸à¸³à¹à¸à¹à¸à¸à¹à¸à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸: à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¸à¸µà¹
+conversation.error.creationFailedNotAllowed=à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸¹à¸à¸à¸³à¸à¸±à¸: à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸ªà¸£à¹à¸²à¸à¸«à¹à¸à¸
+# This is displayed in a conversation as an error message when remote server
+# is not found.
+# %S is the name of MUC room.
+conversation.error.joinFailedRemoteServerNotFound=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸ %S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¹à¹à¸®à¸ªà¸à¹à¸«à¹à¸à¸
+conversation.error.changeTopicFailedNotAuthorized=à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸à¸±à¹à¸à¸«à¸±à¸§à¸à¹à¸à¸à¸à¸à¸«à¹à¸à¸à¸à¸µà¹
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that he is not in.
+# %1$S is the name of MUC room.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsNotInRoom=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¶à¸ %1$S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¸à¸à¹à¸¡à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¹à¸à¸«à¹à¸à¸à¸à¸µà¸à¸à¹à¸à¹à¸: %2$S
+# This is displayed in a conversation as an error message when the user sends
+# a message to a room that the recipient is not in.
+# %1$S is the jid of the recipient.
+# %2$S is the text of the message that wasn't delivered.
+conversation.error.sendFailedAsRecipientNotInRoom=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¶à¸ %1$S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¹à¹à¸£à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¹à¸à¸«à¹à¸à¸à¸à¸µà¸à¸à¹à¸à¹à¸: %2$S
+# These are displayed in a conversation as a system error message.
+conversation.error.remoteServerNotFound=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸à¸à¸à¸¹à¹à¸£à¸±à¸
+conversation.error.unknownSendError=à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸à¸µà¹à¹à¸¡à¹à¸à¸£à¸²à¸à¸ªà¸²à¹à¸«à¸à¸¸à¹à¸à¸à¸²à¸£à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹
+# %S is the name of the message recipient.
+conversation.error.sendServiceUnavailable=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸ªà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸¶à¸ %S à¹à¸à¹à¹à¸à¸à¸à¸°à¸à¸µà¹
+# %S is the nick of participant that is not in room.
+conversation.error.nickNotInRoom=%S à¹à¸¡à¹à¹à¸à¹à¸à¸¢à¸¹à¹à¹à¸à¸«à¹à¸à¸
+conversation.error.banCommandAnonymousRoom=à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸«à¹à¸²à¸¡à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸²à¸à¸«à¹à¸à¸à¸à¸´à¸£à¸à¸²à¸¡ ลà¸à¸ /kick à¹à¸à¸
+conversation.error.banKickCommandNotAllowed=à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¸´à¹à¸à¸µà¹à¸à¸³à¹à¸à¹à¸à¹à¸à¸à¸²à¸£à¸¥à¸à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸£à¸²à¸¢à¸à¸µà¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.error.banKickCommandConflict=à¸à¸à¸à¸ ัย à¸à¸¸à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸¥à¸à¸à¸±à¸§à¸à¸¸à¸à¹à¸à¸à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.error.changeNickFailedConflict=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸ %S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸µà¹à¸à¸¹à¸à¹à¸à¹à¹à¸¥à¹à¸§
+conversation.error.changeNickFailedNotAcceptable=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸ %S à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸¹à¸à¸¥à¹à¸à¸à¹à¸à¸«à¹à¸à¸à¸à¸µà¹
+conversation.error.inviteFailedForbidden=à¸à¸¸à¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¸à¸à¸´à¹à¸à¸µà¹à¸à¸³à¹à¸à¹à¸à¹à¸à¸à¸²à¸£à¹à¸à¸´à¸à¸à¸¹à¹à¹à¸à¹à¹à¸à¹à¸²à¸ªà¸¹à¹à¸«à¹à¸à¸à¸à¸µà¹
+# %S is the jid of user that is invited.
+conversation.error.failedJIDNotFound=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸ %S
+# %S is the jid that is invalid.
+conversation.error.invalidJID=%S à¹à¸à¹à¸ JID à¸à¸µà¹à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸ (à¸à¸±à¸§à¸£à¸°à¸à¸¸ Jabber à¸à¹à¸à¸à¸à¸¢à¸¹à¹à¹à¸à¸£à¸¹à¸à¹à¸à¸ user@domain)
+conversation.error.commandFailedNotInRoom=à¸à¸¸à¸à¸à¹à¸à¸à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¸à¸µà¸à¸à¸£à¸±à¹à¸à¹à¸à¸·à¹à¸à¹à¸«à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸³à¸ªà¸±à¹à¸à¸à¸µà¹à¹à¸à¹
+# %S is the name of the recipient.
+conversation.error.resourceNotAvailable=à¸à¸¸à¸à¸à¹à¸à¸à¹à¸£à¸´à¹à¸¡à¸à¸¸à¸¢à¸à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ %S สามารà¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¹à¸à¸¥à¹à¸à¸à¸à¹à¹à¸à¹à¸¡à¸²à¸à¸à¸§à¹à¸²à¸«à¸à¸¶à¹à¸à¹à¸à¸£à¸·à¹à¸à¸
+
+# LOCALIZATION NOTE (conversation.error.version.*):
+# %S is the name of the recipient.
+conversation.error.version.unknown=à¹à¸à¸¥à¹à¸à¸à¸à¹à¸à¸à¸ %S à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸à¸à¸²à¸£à¸ªà¸à¸à¸à¸²à¸¡à¹à¸§à¸à¸£à¹à¸à¸±à¸à¸à¸à¸à¸à¸à¸à¸à¹à¹à¸§à¸£à¹
+
+# LOCALIZATION NOTE (tooltip.*):
+# These are the titles of lines of information that will appear in
+# the tooltip showing details about a contact or conversation.
+# LOCALIZATION NOTE (tooltip.status):
+# %S will be replaced by the XMPP resource identifier
+tooltip.status=สà¸à¸²à¸à¸° (%S)
+tooltip.statusNoResource=สà¸à¸²à¸à¸°
+tooltip.subscription=à¸à¸²à¸£à¸à¸à¸à¸£à¸±à¸
+tooltip.fullName=à¸à¸·à¹à¸à¹à¸à¹à¸¡
+tooltip.nickname=à¸à¸·à¹à¸à¹à¸¥à¹à¸
+tooltip.email=à¸à¸µà¹à¸¡à¸¥
+tooltip.birthday=วัà¸à¹à¸à¸´à¸
+tooltip.userName=à¸à¸·à¹à¸à¸à¸¹à¹à¹à¸à¹
+tooltip.title=à¸à¸·à¹à¸à¹à¸£à¸·à¹à¸à¸
+tooltip.organization=à¸à¸à¸à¹à¸à¸£
+tooltip.locality=สà¸à¸²à¸à¸à¸µà¹
+tooltip.country=à¸à¸£à¸°à¹à¸à¸¨
+
+tooltip.telephone=หมายà¹à¸¥à¸à¹à¸à¸£à¸¨à¸±à¸à¸à¹
+
+# LOCALIZATION NOTE (chatRoomField.*):
+# These are the name of fields displayed in the 'Join Chat' dialog
+# for XMPP accounts.
+# The _ character won't be displayed; it indicates the next
+# character of the string should be used as the access key for this
+# field.
+chatRoomField.room=_หà¹à¸à¸
+chatRoomField.server=à¹à¸à¸´_รà¹à¸à¹à¸§à¸à¸£à¹
+chatRoomField.nick=_à¸à¸·à¹à¸à¹à¸¥à¹à¸
+chatRoomField.password=รหั_สà¸à¹à¸²à¸
+
+# LOCALIZATION NOTE (conversation.muc.*):
+# These are displayed as a system message when a chatroom invitation is
+# received.
+# %1$S is the inviter.
+# %2$S is the room.
+# %3$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2=%1$S à¹à¸à¹à¹à¸à¸´à¸à¸à¸¸à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %2$S: %3$S
+# %3$S is the password of the room.
+# %4$S is the reason which is a message provided by the person sending the
+# invitation.
+conversation.muc.invitationWithReason2.password=%1$S à¹à¸à¹à¹à¸à¸´à¸à¸à¸¸à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %2$S à¸à¹à¸§à¸¢à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸ %3$S: %4$S
+conversation.muc.invitationWithoutReason=%1$S à¹à¸à¹à¹à¸à¸´à¸à¸à¸¸à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %2$S
+# %3$S is the password of the room.
+conversation.muc.invitationWithoutReason.password=%1$S à¹à¸à¹à¹à¸à¸´à¸à¸à¸¸à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡ %2$S à¸à¹à¸§à¸¢à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸ %3$S
+
+# LOCALIZATION NOTE (conversation.muc.join):
+# This is displayed as a system message when a participant joins room.
+# %S is the nick of the participant.
+conversation.message.join=%S à¹à¸à¹à¸²à¸«à¹à¸à¸à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (conversation.muc.rejoined):
+# This is displayed as a system message when a participant rejoins room after
+# parting it.
+conversation.message.rejoined=à¸à¸¸à¸à¹à¸à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¹à¸«à¸¡à¹à¹à¸¥à¹à¸§
+
+# LOCALIZATION NOTE (conversation.message.parted.*):
+# These are displayed as a system message when a participant parts a room.
+# %S is the part message supplied by the user.
+conversation.message.parted.you=à¸à¸¸à¸à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.parted.you.reason=à¸à¸¸à¸à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸: %S
+# %1$S is the participant that is leaving.
+# %2$S is the part message supplied by the participant.
+conversation.message.parted=%1$S à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.parted.reason=%1$S à¹à¸à¹à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸: %2$S
+
+# LOCALIZATION NOTE (conversation.message.invitationDeclined*):
+# %1$S is the invitee that declined the invitation.
+# %2$S is the decline message supplied by the invitee.
+conversation.message.invitationDeclined=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸³à¹à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸
+conversation.message.invitationDeclined.reason=%1$S à¹à¸à¹à¸à¸à¸´à¹à¸ªà¸à¸à¸³à¹à¸à¸´à¸à¸à¸à¸à¸à¸¸à¸: %2$S
+
+# LOCALIZATION NOTE (conversation.message.banned.*):
+# These are displayed as a system message when a participant is banned from
+# a room.
+# %1$S is the participant that is banned.
+# %2$S is the reason.
+# %3$S is the person who is banning.
+conversation.message.banned=%1$S à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.banned.reason=%1$S à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¸«à¹à¸à¸: %2$S
+# %1$S is the person who is banning.
+# %2$S is the participant that is banned.
+# %3$S is the reason.
+conversation.message.banned.actor=%1$S à¹à¸à¹à¸«à¹à¸²à¸¡ %2$S à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.banned.actor.reason=%1$S à¹à¸à¹à¸«à¹à¸²à¸¡ %2$S à¸à¸²à¸à¸«à¹à¸à¸: %3$S
+conversation.message.banned.you=à¸à¸¸à¸à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¸«à¹à¸à¸
+# %1$S is the reason.
+conversation.message.banned.you.reason=à¸à¸¸à¸à¹à¸à¹à¸à¸¹à¸à¸«à¹à¸²à¸¡à¸à¸²à¸à¸«à¹à¸à¸: %1$S
+# %1$S is the person who is banning.
+# %2$S is the reason.
+conversation.message.banned.you.actor=%1$S à¹à¸à¹à¸«à¹à¸²à¸¡à¸à¸¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.banned.you.actor.reason=%1$S à¹à¸à¹à¸«à¹à¸²à¸¡à¸à¸¸à¸à¸à¸²à¸à¸«à¹à¸à¸: %2$S
+
+# LOCALIZATION NOTE (conversation.message.kicked.*):
+# These are displayed as a system message when a participant is kicked from
+# a room.
+# %1$S is the participant that is kicked.
+# %2$S is the reason.
+conversation.message.kicked=%1$S à¹à¸à¹à¸à¸¹à¸à¹à¸à¸°à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.kicked.reason=%1$S à¹à¸à¹à¸à¸¹à¸à¹à¸à¸°à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸: %2$S
+# %1$S is the person who is kicking.
+# %2$S is the participant that is kicked.
+# %3$S is the reason.
+conversation.message.kicked.actor=%1$S à¹à¸à¹à¹à¸à¸° %2$S à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.kicked.actor.reason=%1$S à¹à¸à¹à¹à¸à¸° %2$S à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸: %3$S
+conversation.message.kicked.you=à¸à¸¸à¸à¸à¸¹à¸à¹à¸à¸°à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸¥à¹à¸§
+# %1$S is the reason.
+conversation.message.kicked.you.reason=à¸à¸¸à¸à¸à¸¹à¸à¹à¸à¸°à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸¥à¹à¸§: %1$S
+# %1$S is the person who is kicking.
+# %2$S is the reason.
+conversation.message.kicked.you.actor=%1$S à¹à¸à¹à¹à¸à¸°à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸
+conversation.message.kicked.you.actor.reason=%1$S à¹à¸à¹à¹à¸à¸°à¸à¸¸à¸à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸: %2$S
+
+# LOCALIZATION NOTE (conversation.message.removedNonMember.*):
+# These are displayed as a system message when a participant is removed from
+# a room because the room has been changed to members-only.
+# %1$S is the participant that is removed.
+# %2$S is the person who changed the room configuration.
+conversation.message.removedNonMember=%1$S à¹à¸à¹à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¹à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸«à¹à¸à¸³à¸à¸±à¸à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸²à¸°à¸ªà¸¡à¸²à¸à¸´à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+conversation.message.removedNonMember.actor=%1$S à¹à¸à¹à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ %2$S à¹à¸à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸«à¹à¸à¸³à¸à¸±à¸à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸²à¸°à¸ªà¸¡à¸²à¸à¸´à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+conversation.message.removedNonMember.you=à¸à¸¸à¸à¹à¸à¹à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¹à¸à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸«à¹à¸à¸³à¸à¸±à¸à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸²à¸°à¸ªà¸¡à¸²à¸à¸´à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+# %1$S is the person who changed the room configuration.
+conversation.message.removedNonMember.you.actor=à¸à¸¸à¸à¹à¸à¹à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ %1$S à¹à¸à¹à¹à¸à¸¥à¸µà¹à¸¢à¸à¹à¸«à¹à¸à¸³à¸à¸±à¸à¹à¸à¸µà¸¢à¸à¹à¸à¸à¸²à¸°à¸ªà¸¡à¸²à¸à¸´à¸à¹à¸à¹à¸²à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (conversation.message.MUCShutdown):
+# These are displayed as a system message when a participant is removed from
+# a room because of a system shutdown.
+conversation.message.mucShutdown=à¸à¸¸à¸à¹à¸à¹à¸à¸¹à¸à¹à¸à¸²à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸£à¸°à¸à¸à¸à¸¹à¸à¸à¸´à¸
+
+# LOCALIZATION NOTE (conversation.message.version*):
+# %1$S is the name of the user whose version was requested.
+# %2$S is the client name response from the client.
+# %3$S is the client version response from the client.
+# %4$S is the operating system(OS) response from the client.
+conversation.message.version=%1$S à¸à¸³à¸¥à¸±à¸à¹à¸à¹ "%2$S %3$S"
+conversation.message.versionWithOS=%1$S à¸à¸³à¸¥à¸±à¸à¹à¸à¹ "%2$S %3$S" à¸à¸ %4$S
+
+# LOCALIZATION NOTE (options.*):
+# These are the protocol specific options shown in the account manager and
+# account wizard windows.
+options.resource=à¸à¸£à¸±à¸à¸¢à¸²à¸à¸£
+options.priority=à¸à¸§à¸²à¸¡à¸ªà¸³à¸à¸±à¸
+options.connectionSecurity=à¸à¸§à¸²à¸¡à¸à¸¥à¸à¸à¸ ัยà¸à¸à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+options.connectionSecurity.requireEncryption=à¸à¹à¸à¸à¸à¸²à¸£à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª
+options.connectionSecurity.opportunisticTLS=à¹à¸à¹à¸à¸²à¸£à¹à¸à¹à¸²à¸£à¸«à¸±à¸ªà¸«à¸²à¸à¸à¸£à¹à¸à¸¡à¹à¸à¹à¸à¸²à¸
+options.connectionSecurity.allowUnencryptedAuth=à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸ªà¹à¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¹à¸à¸à¹à¸¡à¹à¹à¸à¹à¸²à¸£à¸«à¸±à¸ª
+options.connectServer=à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹
+options.connectPort=à¸à¸à¸£à¹à¸
+options.domain=à¹à¸à¹à¸¡à¸
+
+# LOCALIZATION NOTE (*.protocolName)
+# This name is used whenever the name of the protocol is shown.
+gtalk.protocolName=Google Talk
+odnoklassniki.protocolName=Odnoklassniki
+
+# LOCALIZATION NOTE (gtalk.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Google Talk account.
+gtalk.usernameHint=à¸à¸µà¹à¸à¸¢à¸¹à¹à¸à¸µà¹à¸¡à¸¥
+
+# LOCALIZATION NOTE (odnoklassniki.usernameHint):
+# This is displayed inside the accountUsernameInfoWithDescription
+# string defined in imAccounts.properties when the user is
+# configuring a Odnoklassniki account.
+odnoklassniki.usernameHint=ID à¹à¸à¸£à¹à¸à¸¥à¹
+
+# LOCALZIATION NOTE (command.*):
+# These are the help messages for each command.
+command.join3=%S [<room>[@<server>][/<nick>]] [<password>]: à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¹à¸à¸¢à¸£à¸°à¸à¸¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸·à¹à¸, หรืà¸à¸à¸·à¹à¸, หรืà¸à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¹à¸à¸à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+command.part2=%S [<message>]: à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸£à¹à¸à¸¡à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+command.topic=%S [<new topic>]: à¸à¸±à¹à¸à¸à¹à¸²à¸«à¸±à¸§à¸à¹à¸à¸à¸à¸à¸«à¹à¸à¸à¸à¸µà¹
+command.ban=%S <nick>[<message>]: หà¹à¸²à¸¡à¹à¸à¸£à¸à¸²à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸ à¹à¸à¸¢à¸à¸¸à¸à¸à¸°à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸«à¹à¸à¸à¸à¸¶à¸à¸à¸°à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸µà¹à¹à¸à¹
+command.kick=%S <nick>[<message>]: à¹à¸à¸²à¹à¸à¸£à¸à¸²à¸à¸à¸à¸à¸à¸à¸à¸²à¸à¸«à¹à¸à¸ à¹à¸à¸¢à¸à¸¸à¸à¸à¸°à¸à¹à¸à¸à¹à¸à¹à¸à¸à¸¹à¹à¸à¸¹à¹à¸¥à¸«à¹à¸à¸à¸à¸¶à¸à¸à¸°à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸µà¹à¹à¸à¹
+command.invite=%S <jid>[<message>]: à¹à¸à¸´à¸à¸à¸¹à¹à¹à¸à¹à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¸à¸£à¹à¸à¸¡à¸à¹à¸à¸à¸§à¸²à¸¡à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+command.inviteto=%S <room jid>[<password>]: à¹à¸à¸´à¸à¸à¸¹à¹à¸ªà¸à¸à¸à¸²à¸à¸à¸à¸à¸¸à¸à¹à¸«à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸«à¹à¸à¸à¸à¸£à¹à¸à¸¡à¸à¹à¸§à¸¢à¸£à¸«à¸±à¸ªà¸à¹à¸²à¸à¸«à¸²à¸à¸à¸³à¹à¸à¹à¸
+command.me=%S <à¸à¸²à¸£à¸à¸£à¸°à¸à¸³à¸à¸µà¹à¸à¹à¸à¸à¸à¸²à¸£à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£>: à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¸²à¸£à¸à¸£à¸°à¸à¸³
+command.nick=%S <new nickname>: à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¸·à¹à¸à¹à¸¥à¹à¸à¸à¸à¸à¸à¸¸à¸
+command.msg=%S <nick> <message>: สà¹à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸¶à¸à¸à¸¹à¹à¹à¸à¹à¸²à¸£à¹à¸§à¸¡à¸à¸µà¹à¸à¸¢à¸¹à¹à¹à¸à¸«à¹à¸à¸
+command.version=%S: à¸à¸à¸à¹à¸à¸¡à¸¹à¸¥à¹à¸à¸µà¹à¸¢à¸§à¸à¸±à¸à¹à¸à¸¥à¹à¸à¹à¸à¸à¹à¸à¸µà¹à¸à¸¹à¹à¸ªà¸à¸à¸à¸²à¸à¸à¸à¸à¸¸à¸à¸à¸³à¸¥à¸±à¸à¹à¸à¹
diff --git a/chat/yahoo.properties b/chat/yahoo.properties
new file mode 100644
index 00000000000..5ad8e33da5a
--- /dev/null
+++ b/chat/yahoo.properties
@@ -0,0 +1,5 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+yahoo.disabled=à¹à¸¡à¹à¸£à¸à¸à¸£à¸±à¸ Yahoo Messenger à¸à¸µà¸à¸à¹à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸ Yahoo à¹à¸à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸£à¹à¸à¸à¸à¸¥à¸à¸±à¹à¸à¹à¸à¸´à¸¡
diff --git a/devtools/client/VariablesView.dtd b/devtools/client/VariablesView.dtd
new file mode 100644
index 00000000000..7583a97fc9f
--- /dev/null
+++ b/devtools/client/VariablesView.dtd
@@ -0,0 +1,12 @@
+
+
+
+
+
+
diff --git a/devtools/client/aboutdebugging.dtd b/devtools/client/aboutdebugging.dtd
new file mode 100644
index 00000000000..ea1cfcf344d
--- /dev/null
+++ b/devtools/client/aboutdebugging.dtd
@@ -0,0 +1,5 @@
+
+
+
diff --git a/devtools/client/aboutdebugging.ftl b/devtools/client/aboutdebugging.ftl
new file mode 100644
index 00000000000..5fc5076e6fd
--- /dev/null
+++ b/devtools/client/aboutdebugging.ftl
@@ -0,0 +1,279 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the about:debugging UI.
+
+
+# Page Title strings
+
+# Page title (ie tab title) for the Setup page
+about-debugging-page-title-setup-page = à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸ - à¸à¸±à¹à¸à¸à¹à¸²
+# Page title (ie tab title) for the Runtime page
+# { $selectedRuntimeId } is the id of the current runtime, such as "this-firefox", "localhost:6080", ...
+about-debugging-page-title-runtime-page = à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸ - รัà¸à¹à¸à¸¡à¹ / { $selectedRuntimeId }
+
+# Sidebar strings
+
+# Display name of the runtime for the currently running instance of Firefox. Used in the
+# Sidebar and in the Setup page.
+about-debugging-this-firefox-runtime-name = { -brand-shorter-name } à¸à¸µà¹
+# Sidebar heading for selecting the currently running instance of Firefox
+about-debugging-sidebar-this-firefox =
+ .name = { about-debugging-this-firefox-runtime-name }
+# Sidebar heading for connecting to some remote source
+about-debugging-sidebar-setup =
+ .name = à¸à¸±à¹à¸à¸à¹à¸²
+# Text displayed in the about:debugging sidebar when USB devices discovery is enabled.
+about-debugging-sidebar-usb-enabled = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ USB à¸à¸¢à¸¹à¹
+# Text displayed in the about:debugging sidebar when USB devices discovery is disabled
+# (for instance because the mandatory ADB extension is not installed).
+about-debugging-sidebar-usb-disabled = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸ USB à¸à¸¢à¸¹à¹
+# Connection status (connected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-connected = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¥à¹à¸§
+# Connection status (disconnected) for runtime items in the sidebar
+aboutdebugging-sidebar-runtime-connection-status-disconnected = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¥à¹à¸§
+# Text displayed in the about:debugging sidebar when no device was found.
+about-debugging-sidebar-no-devices = à¹à¸¡à¹à¸à¸à¸à¸¸à¸à¸à¸£à¸à¹
+# Text displayed in buttons found in sidebar items representing remote runtimes.
+# Clicking on the button will attempt to connect to the runtime.
+about-debugging-sidebar-item-connect-button = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+# Text displayed in buttons found in sidebar items when the runtime is connecting.
+about-debugging-sidebar-item-connect-button-connecting = à¸à¸³à¸¥à¸±à¸à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸â¦
+# Text displayed in buttons found in sidebar items when the connection failed.
+about-debugging-sidebar-item-connect-button-connection-failed = à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸¥à¹à¸¡à¹à¸«à¸¥à¸§
+# Text displayed in connection warning on sidebar item of the runtime when connecting to
+# the runtime is taking too much time.
+about-debugging-sidebar-item-connect-button-connection-not-responding = à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸¢à¸±à¸à¸£à¸à¸à¹à¸²à¸à¸à¸¢à¸¹à¹ à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸à¹à¸²à¸«à¸¡à¸²à¸¢
+# Text displayed as connection error in sidebar item when the connection has timed out.
+about-debugging-sidebar-item-connect-button-connection-timeout = à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸«à¸¡à¸à¹à¸§à¸¥à¸²
+# Temporary text displayed in sidebar items representing remote runtimes after
+# successfully connecting to them. Temporary UI, do not localize.
+about-debugging-sidebar-item-connected-label = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¹à¸¥à¹à¸§
+# Text displayed in sidebar items for remote devices where a compatible browser (eg
+# Firefox) has not been detected yet. Typically, Android phones connected via USB with
+# USB debugging enabled, but where Firefox is not started.
+about-debugging-sidebar-runtime-item-waiting-for-browser = à¸à¸³à¸¥à¸±à¸à¸£à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹â¦
+# Text displayed in sidebar items for remote devices that have been disconnected from the
+# computer.
+about-debugging-sidebar-runtime-item-unplugged = à¸à¸à¸à¸à¸¥à¸±à¹à¸à¹à¸¥à¹à¸§
+# Title for runtime sidebar items that are related to a specific device (USB, WiFi).
+about-debugging-sidebar-runtime-item-name =
+ .title = { $displayName } ({ $deviceName })
+# Title for runtime sidebar items where we cannot get device information (network
+# locations).
+about-debugging-sidebar-runtime-item-name-no-device =
+ .title = { $displayName }
+# Text to show in the footer of the sidebar that links to a help page
+# (currently: https://developer.mozilla.org/docs/Tools/about:debugging)
+about-debugging-sidebar-support = à¸à¹à¸²à¸¢à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸
+# Text to show as the ALT attribute of a help icon that accompanies the help about
+# debugging link in the footer of the sidebar
+about-debugging-sidebar-support-icon =
+ .alt = à¹à¸à¸à¸à¸à¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸
+# Text displayed in a sidebar button to refresh the list of USB devices. Clicking on it
+# will attempt to update the list of devices displayed in the sidebar.
+about-debugging-refresh-usb-devices-button = à¹à¸£à¸µà¸¢à¸à¸à¸¸à¸à¸à¸£à¸à¹à¹à¸«à¸¡à¹
+
+# Setup Page strings
+
+# Title of the Setup page.
+about-debugging-setup-title = à¸à¸±à¹à¸à¸à¹à¸²
+# Introduction text in the Setup page to explain how to configure remote debugging.
+about-debugging-setup-intro = à¸à¸³à¸«à¸à¸à¸à¹à¸²à¸§à¸´à¸à¸µà¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸µà¹à¸à¸¸à¸à¸à¹à¸à¸à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹à¸à¸à¸à¸à¸¸à¸à¸à¸²à¸à¸£à¸°à¸¢à¸°à¹à¸à¸¥
+# Explanatory text in the Setup page about what the 'This Firefox' page is for
+about-debugging-setup-this-firefox = à¹à¸à¹ { about-debugging-this-firefox-runtime-name } à¹à¸à¸·à¹à¸à¸à¸µà¸à¸±à¹à¸à¹à¸à¹à¸, สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸¥à¸°à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£à¸à¸ { -brand-shorter-name } รุà¹à¸à¸à¸µà¹
+# Title of the heading Connect section of the Setup page.
+about-debugging-setup-connect-heading = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹
+# USB section of the Setup page
+about-debugging-setup-usb-title = USB
+# Explanatory text displayed in the Setup page when USB debugging is disabled
+about-debugging-setup-usb-disabled = à¸à¸²à¸£à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸ªà¸´à¹à¸à¸à¸µà¹à¸à¸°à¸à¸²à¸§à¸à¹à¹à¸«à¸¥à¸à¹à¸¥à¸°à¹à¸à¸´à¹à¸¡à¸ªà¹à¸§à¸à¸à¸£à¸°à¸à¸à¸à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸à¸à¹à¸²à¸ USB à¸à¸à¸ Android à¸à¸µà¹à¸à¸³à¹à¸à¹à¸à¹à¸ { -brand-shorter-name }
+# Text of the button displayed in the USB section of the setup page when USB debugging is disabled.
+# Clicking on it will download components needed to debug USB Devices remotely.
+about-debugging-setup-usb-enable-button = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹ USB
+# Text of the button displayed in the USB section of the setup page when USB debugging is enabled.
+about-debugging-setup-usb-disable-button = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¸à¸à¸à¸£à¸à¹ USB
+# Text of the button displayed in the USB section of the setup page while USB debugging
+# components are downloaded and installed.
+about-debugging-setup-usb-updating-button = à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¹à¸à¸â¦
+# USB section of the Setup page (USB status)
+about-debugging-setup-usb-status-enabled = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹
+about-debugging-setup-usb-status-disabled = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸¢à¸¹à¹
+about-debugging-setup-usb-status-updating = à¸à¸³à¸¥à¸±à¸à¸à¸±à¸à¹à¸à¸â¦
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-dev-menu2 = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸¡à¸à¸¹à¸à¸±à¸à¸à¸±à¸à¸à¸²à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹ Android à¸à¸à¸à¸à¸¸à¸
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug2 = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸ USB à¹à¸à¹à¸¡à¸à¸¹à¸à¸±à¸à¸à¸±à¸à¸à¸² Android
+# USB section step by step guide
+about-debugging-setup-usb-step-enable-debug-firefox2 = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸ USB à¹à¸ Firefox à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹ Android
+# USB section step by step guide
+about-debugging-setup-usb-step-plug-device = à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸¸à¸à¸à¸£à¸à¹ Android à¸à¸±à¸à¸à¸à¸¡à¸à¸´à¸§à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸
+# Text shown in the USB section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://developer.mozilla.org/docs/Tools/Remote_Debugging/Debugging_over_USB
+about-debugging-setup-usb-troubleshoot = มีà¸à¸±à¸à¸«à¸²à¹à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¸à¸¸à¸à¸à¸£à¸à¹ USB? à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²
+# Network section of the Setup page
+about-debugging-setup-network =
+ .title = à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢
+# Text shown in the Network section of the setup page with a link to troubleshoot connection errors.
+# The link goes to https://developer.mozilla.org/en-US/docs/Tools/Remote_Debugging/Debugging_over_a_network
+about-debugging-setup-network-troubleshoot = มีà¸à¸±à¸à¸«à¸²à¹à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¹à¸²à¸à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢? à¹à¸à¹à¹à¸à¸à¸±à¸à¸«à¸²
+# Text of a button displayed after the network locations "Host" input.
+# Clicking on it will add the new network location to the list.
+about-debugging-network-locations-add-button = à¹à¸à¸´à¹à¸¡
+# Text to display when there are no locations to show.
+about-debugging-network-locations-empty-text = ยัà¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¸´à¹à¸¡à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸à¹à¸à¸£à¸·à¸à¸à¹à¸²à¸¢
+# Text of the label for the text input that allows users to add new network locations in
+# the Connect page. A host is a hostname and a port separated by a colon, as suggested by
+# the input's placeholder "localhost:6080".
+about-debugging-network-locations-host-input-label = à¹à¸®à¸ªà¸à¹
+# Text of a button displayed next to existing network locations in the Connect page.
+# Clicking on it removes the network location from the list.
+about-debugging-network-locations-remove-button = à¹à¸à¸²à¸à¸à¸
+# Text used as error message if the input value was already registered in the network locations form of the Setup page.
+# Variables:
+# $host-value (string) - The input value submitted by the user in the network locations form
+about-debugging-network-location-form-duplicate = มีà¸à¸²à¸£à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸ â{ $host-value }â à¸à¸¢à¸¹à¹à¹à¸¥à¹à¸§
+
+# Runtime Page strings
+
+# Below are the titles for the various categories of debug targets that can be found
+# on "runtime" pages of about:debugging.
+# Title of the temporary extensions category (only available for "This Firefox" runtime).
+about-debugging-runtime-temporary-extensions =
+ .name = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+# Title of the extensions category.
+about-debugging-runtime-extensions =
+ .name = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
+# Title of the tabs category.
+about-debugging-runtime-tabs =
+ .name = à¹à¸à¹à¸
+# Title of the service workers category.
+about-debugging-runtime-service-workers =
+ .name = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£
+# Title of the shared workers category.
+about-debugging-runtime-shared-workers =
+ .name = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸µà¹à¹à¸à¹à¸£à¹à¸§à¸¡à¸à¸±à¸
+# Title of the other workers category.
+about-debugging-runtime-other-workers =
+ .name = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸·à¹à¸ à¹
+# Title of the processes category.
+about-debugging-runtime-processes =
+ .name = à¹à¸à¸£à¹à¸à¸ª
+# Label of the button opening the performance profiler panel in runtime pages for remote
+# runtimes.
+about-debugging-runtime-profile-button2 = à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¹à¸à¸£à¹à¸à¸¥à¹
+# This string is displayed in the runtime page if the current configuration of the
+# target runtime is incompatible with service workers. "Learn more" points to MDN.
+# https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#Service_workers_not_compatible
+about-debugging-runtime-service-workers-not-compatible = à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£ à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# Displayed for runtime info in runtime pages.
+# { $name } is brand name such as "Firefox Nightly"
+# { $version } is version such as "64.0a1"
+about-debugging-runtime-name = { $name } ({ $version })
+# Text of a button displayed in Runtime pages for remote runtimes.
+# Clicking on the button will close the connection to the runtime.
+about-debugging-runtime-disconnect-button = à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is false on the target runtime.
+about-debugging-connection-prompt-enable-button = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸£à¸à¸¡à¸à¹à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+# Text of the connection prompt button displayed in Runtime pages, when the preference
+# "devtools.debugger.prompt-connection" is true on the target runtime.
+about-debugging-connection-prompt-disable-button = à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸£à¸à¸¡à¸à¹à¸à¸²à¸£à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸
+# Title of a modal dialog displayed on remote runtime pages after clicking on the Profile Runtime button.
+about-debugging-profiler-dialog-title2 = à¸à¸±à¸§à¸ªà¸£à¹à¸²à¸à¹à¸à¸£à¹à¸à¸¥à¹
+# Clicking on the header of a debug target category will expand or collapse the debug
+# target items in the category. This text is used as âtitleâ attribute of the header,
+# to describe this feature.
+about-debugging-collapse-expand-debug-targets = ยุภ/ à¸à¸¢à¸²à¸¢
+
+# Debug Targets strings
+
+# Displayed in the categories of "runtime" pages that don't have any debug target to
+# show. Debug targets depend on the category (extensions, tabs, workers...).
+about-debugging-debug-target-list-empty = ยัà¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¹à¸à¹à¸
+# Text of a button displayed next to debug targets of "runtime" pages. Clicking on this
+# button will open a DevTools toolbox that will allow inspecting the target.
+# A target can be an addon, a tab, a worker...
+about-debugging-debug-target-inspect-button = à¸à¸£à¸§à¸à¸ªà¸à¸
+# Text of a button displayed in the "This Firefox" page, in the Temporary Extension
+# section. Clicking on the button will open a file picker to load a temporary extension
+about-debugging-tmp-extension-install-button = à¹à¸«à¸¥à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸±à¹à¸§à¸à¸£à¸²à¸§â¦
+# Text displayed when trying to install a temporary extension in the "This Firefox" page.
+about-debugging-tmp-extension-install-error = à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸´à¸à¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸à¸à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will reload the extension.
+about-debugging-tmp-extension-reload-button = à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹
+# Text of a button displayed for a temporary extension loaded in the "This Firefox" page.
+# Clicking on the button will uninstall the extension and remove it from the page.
+about-debugging-tmp-extension-remove-button = à¹à¸à¸²à¸à¸à¸
+# Message displayed in the file picker that opens to select a temporary extension to load
+# (triggered by the button using "about-debugging-tmp-extension-install-button")
+# manifest.json .xpi and .zip should not be localized.
+# Note: this message is only displayed in Windows and Linux platforms.
+about-debugging-tmp-extension-install-message = à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹ manifest.json หรืà¸à¹à¸à¸¥à¹à¹à¸à¹à¸à¸à¸²à¸§à¸£ .xpi/.zip
+# This string is displayed as a message about the add-on having a temporaryID.
+about-debugging-tmp-extension-temporary-id = WebExtension à¸à¸µà¹à¸¡à¸µ ID à¸à¸±à¹à¸§à¸à¸£à¸²à¸§ à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+# Text displayed for extensions in "runtime" pages, before displaying a link the extension's
+# manifest URL.
+about-debugging-extension-manifest-url =
+ .label = URL à¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸
+# Text displayed for extensions in "runtime" pages, before displaying the extension's uuid.
+# UUIDs look like b293e463-481e-5148-a487-5aaf7a130429
+about-debugging-extension-uuid =
+ .label = UUID ภายà¹à¸
+# Text displayed for extensions (temporary extensions only) in "runtime" pages, before
+# displaying the location of the temporary extension.
+about-debugging-extension-location =
+ .label = à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+# Text displayed for extensions in "runtime" pages, before displaying the extension's ID.
+# For instance "geckoprofiler@mozilla.com" or "{ed26ddcb-5611-4512-a89a-51b8db81cfb2}".
+about-debugging-extension-id =
+ .label = ID สà¹à¸§à¸à¸à¸¢à¸²à¸¢
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+# Notes, this relates to the "Push" API, which is normally not localized so it is
+# probably better to not localize it.
+about-debugging-worker-action-push = à¸à¸¥à¸±à¸
+# This string is displayed as a label of the button that starts a service worker.
+about-debugging-worker-action-start = à¹à¸£à¸´à¹à¸¡
+# This string is displayed as a label of the button that unregisters a service worker.
+about-debugging-worker-action-unregister = à¹à¸¥à¸´à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
+# Displayed for service workers in runtime pages that listen to Fetch events.
+about-debugging-worker-fetch-listening =
+ .label = à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+ .value = à¸à¸³à¸¥à¸±à¸à¸£à¸±à¸à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+# Displayed for service workers in runtime pages that do not listen to Fetch events.
+about-debugging-worker-fetch-not-listening =
+ .label = à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+ .value = à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸±à¸à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥à¸à¸¢à¸¹à¹
+# Displayed for service workers in runtime pages that are currently running (service
+# worker instance is active).
+about-debugging-worker-status-running = à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸
+# Displayed for service workers in runtime pages that are registered but stopped.
+about-debugging-worker-status-stopped = หยุà¸à¸à¸¢à¸¹à¹
+# Displayed for service workers in runtime pages that are registering.
+about-debugging-worker-status-registering = à¸à¸³à¸¥à¸±à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
+# Displayed for service workers in runtime pages, to label the scope of a worker
+about-debugging-worker-scope =
+ .label = à¸à¸à¸à¹à¸à¸
+# Displayed for service workers in runtime pages, to label the push service endpoint (url)
+# of a worker
+about-debugging-worker-push-service =
+ .label = à¸à¸£à¸´à¸à¸²à¸£à¸à¸¥à¸±à¸
+# Displayed as name for the Main Process debug target in the Processes category. Only for
+# remote runtimes, if `devtools.aboutdebugging.process-debugging` is true.
+about-debugging-main-process-name = à¹à¸à¸£à¹à¸à¸ªà¸«à¸¥à¸±à¸
+# Displayed as description for the Main Process debug target in the Processes category.
+# Only for remote browsers, if `devtools.aboutdebugging.process-debugging` is true.
+about-debugging-main-process-description2 = à¹à¸à¸£à¹à¸à¸ªà¸«à¸¥à¸±à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¹à¸à¹à¸²à¸«à¸¡à¸²à¸¢
+# Alt text used for the close icon of message component (warnings, errors and notifications).
+about-debugging-message-close-icon =
+ .alt = à¸à¸´à¸à¸à¹à¸à¸à¸§à¸²à¸¡
+# Label text used for the error details of message component.
+about-debugging-message-details-label-error = รายละà¹à¸à¸µà¸¢à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸
+# Label text used for the warning details of message component.
+about-debugging-message-details-label-warning = รายละà¹à¸à¸µà¸¢à¸à¸à¸³à¹à¸à¸·à¸à¸
+# Label text used for default state of details of message component.
+about-debugging-message-details-label = รายละà¹à¸à¸µà¸¢à¸
diff --git a/devtools/client/aboutdebugging.properties b/devtools/client/aboutdebugging.properties
new file mode 100644
index 00000000000..7c8e18a4a3a
--- /dev/null
+++ b/devtools/client/aboutdebugging.properties
@@ -0,0 +1,214 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE (debug):
+# This string is displayed as a label of the button that starts
+# debugging a service worker.
+debug = à¸à¸µà¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (push):
+# This string is displayed as a label of the button that pushes a test payload
+# to a service worker.
+push = à¸à¸¥à¸±à¸
+
+# LOCALIZATION NOTE (start):
+# This string is displayed as a label of the button that starts a service worker.
+start = à¹à¸£à¸´à¹à¸¡
+
+scope = à¸à¸à¸à¹à¸à¸
+unregister = à¹à¸¥à¸´à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
+
+pushService = à¸à¸£à¸´à¸à¸²à¸£à¸à¸¥à¸±à¸
+
+# LOCALIZATION NOTE (fetch):
+# Fetch is an event type and should not be translated.
+fetch = à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+
+# LOCALIZATION NOTE (listeningForFetchEvents):
+# This is used to display the state of the SW in regard to fetch events.
+listeningForFetchEvents = à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸²à¸à¸¹à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+
+# LOCALIZATION NOTE (notListeningForFetchEvents):
+# This is used to display the state of the SW in regard to fetch events.
+notListeningForFetchEvents = à¹à¸¡à¹à¹à¸à¹à¸à¸³à¸¥à¸±à¸à¹à¸à¹à¸²à¸à¸¹à¹à¸«à¸à¸¸à¸à¸²à¸£à¸à¹à¸à¸²à¸£à¸à¸¶à¸à¸à¹à¸à¸¡à¸¹à¸¥
+
+# LOCALIZATION NOTE (addons):
+# This string is displayed as a header of the about:debugging#addons page.
+addons = สà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+
+# LOCALIZATION NOTE (addonDebugging.label):
+# This string is displayed next to a check box that enables the user to switch
+# addon debugging on/off.
+addonDebugging.label = à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+
+# LOCALIZATION NOTE (addonDebugging.tooltip):
+# This string is displayed in a tooltip that appears when hovering over a check
+# box that switches addon debugging on/off.
+addonDebugging.tooltip = à¸à¸²à¸£à¹à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¸à¸±à¸§à¹à¸¥à¸·à¸à¸à¸à¸µà¹à¸à¸°à¸à¸à¸¸à¸à¸²à¸à¹à¸«à¹à¸à¸¸à¸à¸à¸µà¸à¸±à¹à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¹à¸¥à¸°à¸ªà¹à¸§à¸à¸à¸·à¹à¸ ๠à¸à¸à¸à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹
+
+# LOCALIZATION NOTE (addonDebugging.learnMore):
+# This string is displayed as a link next to addonDebugging.label and leads the user to
+# the MDN documentation page for about:debugging.
+# (https://developer.mozilla.org/docs/Tools/about:debugging#Enabling_add-on_debugging)
+addonDebugging.learnMore = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE (loadTemporaryAddon2):
+# This string is displayed as a label of a button that allows the user to
+# load additional add-ons.
+loadTemporaryAddon2 = à¹à¸«à¸¥à¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡à¸à¸±à¹à¸§à¸à¸£à¸²à¸§â¦
+
+# LOCALIZATION NOTE (addonInstallError):
+# This string is displayed when an error occurs while installing an addon.
+# %S will be replaced with the error message.
+addonInstallError = à¹à¸à¸´à¸à¸à¹à¸à¸à¸´à¸à¸à¸¥à¸²à¸à¸£à¸°à¸«à¸§à¹à¸²à¸à¸à¸´à¸à¸à¸±à¹à¸: %S
+
+# LOCALIZATION NOTE (retryTemporaryInstall):
+# This string is displayed as a label of a button that allows the user to
+# retry a failed installation of a temporary add-on.
+retryTemporaryInstall = ลà¸à¸à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (extensions):
+# This string is displayed as a header above the list of loaded add-ons.
+extensions = สà¹à¸§à¸à¸à¸¢à¸²à¸¢
+
+# LOCALIZATION NOTE (temporaryExtensions):
+# This string is displayed as a header above the list of temporarily loaded add-ons.
+temporaryExtensions = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+
+# LOCALIZATION NOTE (systemExtensions):
+# This string is displayed as a header above the list of system add-ons.
+systemExtensions = สà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸à¸à¸£à¸°à¸à¸
+
+# LOCALIZATION NOTE (internalUUID):
+# This string is displayed as a label for the internal UUID of an extension.
+# The UUID is generated for this profile on install.
+internalUUID = UUID ภายà¹à¸
+
+# LOCALIZATION NOTE (extensionID):
+# This string is displayed as a label for the ID of an extension. This is not the same as the internal UUID.
+extensionID = ID สà¹à¸§à¸à¸à¸¢à¸²à¸¢
+
+# LOCALIZATION NOTE (manifestURL):
+# This string is displayed as a link for the manifest of an extension,
+# accessible in a browser, such as moz-extension://[internalUUID]/manifest.json.
+manifestURL = URL à¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸
+
+# LOCALIZATION NOTE (webExtTip):
+# This string is displayed as a message below the list of temporarily loaded add-ons.
+# Web-ext is a command line tool for web-extensions developers.
+# See https://developer.mozilla.org/Add-ons/WebExtensions/Getting_started_with_web-ext
+webExtTip = à¸à¸¸à¸à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹ web-ext à¹à¸à¸·à¹à¸à¹à¸«à¸¥à¸ WebExtension à¸à¸±à¹à¸§à¸à¸£à¸²à¸§à¹à¸à¹à¸à¸²à¸à¸à¸£à¸£à¸à¸±à¸à¸à¸³à¸ªà¸±à¹à¸
+
+# LOCALIZATION NOTE (webExtTip.learnMore):
+# This string is displayed as a link next to webExtTip and leads the user to the MDN
+# documentation page for web-ext.
+# (https://developer.mozilla.org/Add-ons/WebExtensions/Getting_started_with_web-ext)
+webExtTip.learnMore = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE (temporaryID):
+# This string is displayed as a message about the add-on having a temporaryID.
+temporaryID = WebExtension à¸à¸µà¹à¸¡à¸µ ID à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+
+# LOCALIZATION NOTE (temporaryID.learnMore):
+# This string is displayed as a link next to the temporaryID message and leads
+# the user to MDN.
+temporaryID.learnMore = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE (legacyExtensionWarning):
+# This string is displayed as a warning message when loading a temporary legacy extension.
+legacyExtensionWarning = à¸à¸µà¹à¸à¸·à¸à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¸à¸±à¹à¸à¹à¸à¸´à¸¡ à¸à¸¶à¸à¸£à¸°à¸§à¸±à¸à¸§à¹à¸²à¸ªà¹à¸§à¸à¸à¸¢à¸²à¸¢à¹à¸«à¸¥à¹à¸²à¸à¸µà¹à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸¡à¸à¸µà¹à¸à¸µà¸à¸à¹à¸à¹à¸ à¸à¸£à¸¸à¸à¸²à¸à¹à¸²à¸à¹à¸à¸à¸ªà¸²à¸£à¸à¸£à¸°à¸à¸à¸à¸à¸µà¹à¸¥à¸´à¸à¸à¹à¸¡à¸²à¹à¸¥à¸°à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸à¸à¹à¸§à¸¢à¸à¸§à¸²à¸¡à¸£à¸°à¸¡à¸±à¸à¸£à¸°à¸§à¸±à¸
+
+# LOCALIZATION NOTE (legacyExtensionWarning.learnMore):
+# This string is displayed as a link next to the legacyExtensionWarning message and leads
+# the user to https://wiki.mozilla.org/Add-ons/Future_of_Bootstrap.
+legacyExtensionWarning.learnMore = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE (selectAddonFromFile2):
+# This string is displayed as the title of the file picker that appears when
+# the user clicks the 'Load Temporary Add-on' button
+selectAddonFromFile2 = à¹à¸¥à¸·à¸à¸à¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸à¸«à¸£à¸·à¸à¹à¸à¹à¸à¹à¸à¸ (.xpi)
+
+# LOCALIZATION NOTE (reload):
+# This string is displayed as a label of the button that reloads a given addon.
+reload = à¹à¸«à¸¥à¸à¹à¸«à¸¡à¹
+
+# LOCALIZATION NOTE (remove):
+# This string is displayed as a label of the button that will remove a given addon.
+remove = à¹à¸à¸²à¸à¸à¸
+
+# LOCALIZATION NOTE (location):
+# This string is displayed as a label for the filesystem location of an extension.
+location = à¸à¸³à¹à¸«à¸à¹à¸à¸à¸µà¹à¸à¸±à¹à¸
+
+# LOCALIZATION NOTE (workers):
+# This string is displayed as a header of the about:debugging#workers page.
+workers = à¸à¸±à¸§à¸à¸³à¸à¸²à¸
+
+serviceWorkers = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£
+sharedWorkers = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸µà¹à¹à¸à¹à¸£à¹à¸§à¸¡à¸à¸±à¸
+otherWorkers = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸·à¹à¸ à¹
+
+# LOCALIZATION NOTE (running):
+# This string is displayed as the state of a service worker in RUNNING state.
+running = à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸
+
+# LOCALIZATION NOTE (stopped):
+# This string is displayed as the state of a service worker in STOPPED state.
+stopped = หยุà¸à¸à¸¢à¸¹à¹
+
+# LOCALIZATION NOTE (registering):
+# This string is displayed as the state of a service worker for which no service worker
+# registration could be found yet. Only active registrations are visible from
+# about:debugging, so such service workers are considered as registering.
+registering = à¸à¸³à¸¥à¸±à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
+
+# LOCALIZATION NOTE (tabs):
+# This string is displayed as a header of the about:debugging#tabs page.
+tabs = à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (pageNotFound):
+# This string is displayed as the main message at any error/invalid page.
+pageNotFound = à¹à¸¡à¹à¸à¸à¸«à¸à¹à¸²
+
+# LOCALIZATION NOTE (doesNotExist):
+# This string is displayed as an error message when navigating to an invalid page
+# %S will be replaced by the name of the page at run-time.
+doesNotExist = à¹à¸¡à¹à¸¡à¸µ #%S à¸à¸¢à¸¹à¹!
+
+# LOCALIZATION NOTE (nothing):
+# This string is displayed when the list of workers is empty.
+nothing = ยัà¸à¹à¸¡à¹à¸¡à¸µà¸ªà¸´à¹à¸à¹à¸
+
+# LOCALIZATION NOTE (configurationIsNotCompatible.label):
+# This string is displayed in about:debugging#workers if the current configuration of the
+# browser is incompatible with service workers. More details at
+# https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#Service_workers_not_compatible
+configurationIsNotCompatible.label = à¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸à¹à¸²à¹à¸à¸£à¸²à¸§à¹à¹à¸à¸à¸£à¹à¸à¸à¸à¸à¸¸à¸à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£
+
+# LOCALIZATION NOTE (configurationIsNotCompatible.learnMore):
+# This string is displayed as a link next to configurationIsNotCompatible.label and leads
+# the user to the MDN documentation page for about:debugging, on the section explaining
+# why service workers might not be available.
+# (https://developer.mozilla.org/en-US/docs/Tools/about%3Adebugging#Service_workers_not_compatible)
+configurationIsNotCompatible.learnMore = à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE (multiProcessWarningTitle):
+# This string is displayed as a warning message on top of the about:debugging#workers
+# page when multi-e10s is enabled
+multiProcessWarningTitle = à¸à¸²à¸£à¸à¸µà¸à¸±à¹à¸à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸±à¸à¹à¸¡à¹à¹à¸à¹à¸à¸±à¸à¹à¸à¸£à¹à¸à¸ªà¹à¸à¸·à¹à¸à¸«à¸²à¸«à¸¥à¸²à¸¢à¸à¸±à¸§à¹à¸à¸à¸à¸°à¸à¸µà¹
+
+# LOCALIZATION NOTE (multiProcessWarningMessage2):
+# This string is displayed in the warning section for multi-e10s in
+# about:debugging#workers
+multiProcessWarningMessage2 = สามารà¸à¹à¸à¹à¹à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸ âdom.ipc.multiOptOutâ à¹à¸à¸·à¹à¸à¸à¸±à¸à¸à¸±à¸à¹à¸«à¹à¹à¸à¹à¹à¸à¸£à¹à¸à¸ªà¹à¸à¸·à¹à¸à¸«à¸²à¹à¸à¸µà¸¢à¸à¸à¸±à¸§à¹à¸à¸µà¸¢à¸§à¸ªà¸³à¸«à¸£à¸±à¸à¸£à¸¸à¹à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸à¹à¸à¹
+
+# LOCALIZATION NOTE (multiProcessWarningUpdateLink2):
+# This string is the text content of a link in the warning section for multi-e10s in
+# about:debugging#workers. The link updates the pref and restarts the browser.
+multiProcessWarningUpdateLink2 = à¹à¸¥à¸·à¸à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¸£à¹à¸à¸ªà¹à¸à¸·à¹à¸à¸«à¸²à¸«à¸¥à¸²à¸¢à¸à¸±à¸§
+
+# LOCALIZATION NOTE (multiProcessWarningConfirmUpdate2):
+# This string is displayed as a confirmation message when the user clicks on
+# the multiProcessWarningUpdateLink in about:debugging#workers
+multiProcessWarningConfirmUpdate2 = à¹à¸¥à¸·à¸à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¸£à¹à¸à¸ªà¸«à¸¥à¸²à¸¢à¸à¸±à¸§?
diff --git a/devtools/client/accessibility.properties b/devtools/client/accessibility.properties
new file mode 100644
index 00000000000..174bd97f51d
--- /dev/null
+++ b/devtools/client/accessibility.properties
@@ -0,0 +1,218 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Accessibility panel
+# which is available from the Web Developer sub-menu -> 'Accessibility'.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (accessibility.role): A title text used for Accessibility
+# tree header column that represents accessible element role.
+accessibility.role=à¸à¸à¸à¸²à¸
+
+# LOCALIZATION NOTE (accessibility.name): A title text used for Accessibility
+# tree header column that represents accessible element name.
+accessibility.name=à¸à¸·à¹à¸
+
+# LOCALIZATION NOTE (accessibility.logo): A title text used for Accessibility
+# logo used on the accessibility panel landing page.
+accessibility.logo=à¹à¸¥à¹à¸à¹à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.properties): A title text used for header
+# for Accessibility details sidebar.
+accessibility.properties=à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´
+
+# LOCALIZATION NOTE (accessibility.treeName): A title text used for
+# Accessibility tree (that represents accessible element name) container.
+accessibility.treeName=à¸à¹à¸à¹à¸¡à¹à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.accessible.notAvailable): A title text
+# displayed when accessible sidebar panel does not have an accessible object to
+# display.
+accessibility.accessible.notAvailable=à¹à¸¡à¹à¸¡à¸µà¸à¹à¸à¸¡à¸¹à¸¥à¸à¸µà¹à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.enable): A title text for Enable
+# accessibility button used to enable accessibility service.
+accessibility.enable=à¹à¸à¸´à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.enabling): A title text for Enable
+# accessibility button used when accessibility service is being enabled.
+accessibility.enabling=à¸à¸³à¸¥à¸±à¸à¹à¸à¸´à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸â¦
+
+# LOCALIZATION NOTE (accessibility.disable): A title text for Disable
+# accessibility button used to disable accessibility service.
+accessibility.disable=à¸à¸´à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.disabling): A title text for Disable
+# accessibility button used when accessibility service is being
+# disabled.
+accessibility.disabling=à¸à¸³à¸¥à¸±à¸à¸à¸´à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸â¦
+
+# LOCALIZATION NOTE (accessibility.pick): A title text for Picker button
+# button used to pick accessible objects from the page.
+accessibility.pick=à¹à¸¥à¸·à¸à¸à¸§à¸±à¸à¸à¸¸à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹à¸à¸²à¸à¸«à¸à¹à¸²
+
+# LOCALIZATION NOTE (accessibility.disable.disabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can not
+# be disabled. It is the case when a user is using a 3rd party accessibility
+# tool such as screen reader.
+accessibility.disable.disabledTitle=à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸´à¸à¹à¸à¹ à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¹à¸à¹à¸à¹à¸ ายà¸à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸±à¸à¸à¸±à¸à¸à¸²
+
+# LOCALIZATION NOTE (accessibility.disable.enabledTitle): A title text used for
+# a tooltip for Disable accessibility button when accessibility service can be
+# disabled.
+accessibility.disable.enabledTitle=à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸°à¸à¸¹à¸à¸à¸´à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+
+# LOCALIZATION NOTE (accessibility.enable.disabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can not
+# be enabled.
+accessibility.enable.disabledTitle=à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¸´à¸à¹à¸à¹ à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸¹à¸à¸à¸´à¸à¸à¹à¸²à¸à¸à¹à¸²à¸à¸³à¸«à¸à¸à¸à¸§à¸²à¸¡à¹à¸à¹à¸à¸ªà¹à¸§à¸à¸à¸±à¸§à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.enable.enabledTitle): A title text used for
+# a tooltip for Enabled accessibility button when accessibility service can be
+# enabled.
+accessibility.enable.enabledTitle=à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸°à¸à¸¹à¸à¹à¸à¸´à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸à¹à¸à¹à¸¥à¸°à¸«à¸à¹à¸²à¸à¹à¸²à¸à¸à¸±à¹à¸à¸«à¸¡à¸
+
+# LOCALIZATION NOTE (accessibility.learnMore): A text that is used as is or as textual
+# description in places that link to accessibility inspector documentation.
+accessibility.learnMore=à¹à¸£à¸µà¸¢à¸à¸£à¸¹à¹à¹à¸à¸´à¹à¸¡à¹à¸à¸´à¸¡
+
+# LOCALIZATION NOTE (accessibility.description.general): A title text used when
+# accessibility service description is provided before accessibility inspector
+# is enabled.
+accessibility.description.general=à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸°à¸à¸¹à¸à¸à¸´à¸à¹à¸à¹à¸à¸²à¸à¹à¸à¸¢à¸à¹à¸²à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¹à¸à¸·à¹à¸à¸à¸à¸²à¸à¸à¸°à¸ªà¹à¸à¸à¸¥à¹à¸«à¹à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸à¹à¸¢à¹à¸¥à¸ à¸à¸£à¸¸à¸à¸²à¸à¸´à¸à¸²à¸£à¸à¸²à¸à¸´à¸à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¹à¸à¸à¸à¸µà¹à¸à¸°à¹à¸à¹à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸±à¸à¸à¸±à¸à¸à¸²à¸à¸·à¹à¸ à¹
+
+# LOCALIZATION NOTE (accessibility.description.general.p1): A title text for the first
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.description.general.p1=à¸à¸±à¸§à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸«à¹à¸à¸¸à¸à¸à¸£à¸§à¸à¸ªà¸à¸à¹à¸à¸£à¸à¸ªà¸£à¹à¸²à¸à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸à¸à¸«à¸à¹à¸²à¸à¸±à¸à¸à¸¸à¸à¸±à¸ à¸à¸¶à¹à¸à¸à¸¹à¸à¹à¸à¹à¹à¸à¸¢à¹à¸à¸£à¹à¸à¸£à¸¡à¸à¹à¸²à¸à¸«à¸à¹à¸²à¸à¸à¹à¸¥à¸°à¹à¸à¸à¹à¸à¹à¸¥à¸¢à¸µà¸à¹à¸§à¸¢à¹à¸«à¸¥à¸·à¸à¸à¸·à¹à¸à¹ %S
+
+# LOCALIZATION NOTE (accessibility.description.general.p2): A title text for the second
+# paragraph, used when accessibility service description is provided before accessibility
+# inspector is enabled.
+accessibility.description.general.p2=à¸à¸¸à¸à¸¥à¸±à¸à¸©à¸à¸°à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸à¸à¸²à¸à¸ªà¹à¸à¸à¸¥à¸à¹à¸à¹à¸à¸à¹à¸à¸£à¸·à¹à¸à¸à¸¡à¸·à¸à¸à¸±à¸à¸à¸±à¸à¸à¸²à¹à¸¥à¸°à¸à¸§à¸£à¸à¸´à¸à¹à¸¡à¸·à¹à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¹
+
+# LOCALIZATION NOTE (accessibility.description.oldVersion): A title text used
+# when accessibility service description is provided when a client is connected
+# to an older version of accessibility actor.
+accessibility.description.oldVersion=à¸à¸¸à¸à¹à¸à¹à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¸à¸±à¸à¹à¸à¸à¸£à¹à¸à¸µà¹à¹à¸à¹à¸²à¹à¸à¸´à¸à¹à¸ หาà¸à¸à¹à¸à¸à¸à¸²à¸£à¹à¸à¹à¹à¸à¸à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸ à¸à¸£à¸¸à¸à¸²à¹à¸à¸·à¹à¸à¸¡à¸à¹à¸à¸à¸±à¸à¹à¸à¸´à¸£à¹à¸à¹à¸§à¸à¸£à¹à¸à¸µà¸à¸±à¸à¹à¸à¸à¸£à¹à¸£à¸¸à¹à¸à¸¥à¹à¸²à¸ªà¸¸à¸
+
+# LOCALIZATION NOTE (accessibility.tree.menu.printToJSON): A title text used when a
+# context menu item for printing an accessible tree to JSON is rendered after triggering a
+# context menu for an accessible tree row.
+accessibility.tree.menu.printToJSON=à¸à¸´à¸¡à¸à¹à¹à¸à¹à¸ JSON
+
+# LOCALIZATION NOTE (accessibility.checks): A title text used for header for checks
+# section in Accessibility details sidebar.
+accessibility.checks=à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸
+
+# LOCALIZATION NOTE (accessibility.checks.empty): A title text used for indicating that
+# accessibility checks for a node yielded no results and another node should be
+# selected.
+accessibility.checks.empty=à¹à¸¥à¸·à¸à¸à¹à¸«à¸à¸à¸à¸·à¹à¸à¹à¸à¸·à¹à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¸à¹à¸
+
+# LOCALIZATION NOTE (accessibility.checks.empty2): A title text used for indicating that
+# accessibility checks for a node yielded no results and another node should be
+# selected.
+accessibility.checks.empty2=à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¸ªà¸³à¸«à¸£à¸±à¸à¹à¸«à¸à¸à¸à¸µà¹
+
+# LOCALIZATION NOTE (accessibility.contrast.header): A title text used for header for
+# checks related to color and contrast.
+accessibility.contrast.header=สีà¹à¸¥à¸°à¸à¸§à¸²à¸¡à¸à¸¡à¸à¸±à¸
+
+# LOCALIZATION NOTE (accessibility.contrast.error): A title text for the color
+# contrast ratio, used when the tool is unable to calculate the contrast ratio value.
+accessibility.contrast.error=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¸³à¸à¸§à¸
+
+# LOCALIZATION NOTE (accessibility.contrast.large.text): A title text for the color
+# contrast ratio label indicating that the color contrast criteria used is if for large
+# text. This is lower case because it's used as a label for a tree item in accessibility
+# tree.
+accessibility.contrast.large.text=à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸à¸²à¸à¹à¸«à¸à¹
+
+# LOCALIZATION NOTE (accessibility.contrast.large.title): A title text for the tooltip
+# used for the large text label (see accessibility.contrast.large.text).
+accessibility.contrast.large.title=à¸à¹à¸à¸à¸§à¸²à¸¡à¸¡à¸µà¸à¸à¸²à¸ 14 à¸à¸¸à¸à¹à¸¥à¸°à¸«à¸à¸²à¸«à¸£à¸·à¸à¹à¸«à¸à¹à¸à¸§à¹à¸² หรืà¸à¸¡à¸µà¸à¸à¸²à¸ 18 à¸à¸¸à¸à¸«à¸£à¸·à¸à¹à¸«à¸à¹à¸à¸§à¹à¸²
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AA): A title text for the paragraph
+# describing that the given colour contrast satisfies AA standard from Web Content
+# Accessibility Guidelines. %S in the content will be replaced by a link at run time
+# with the accessibility.learnMore string.
+accessibility.contrast.annotation.AA=à¸à¸£à¸à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸ WCAG AA สำหรัà¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹ %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.AAA): A title text for the
+# paragraph describing that the given colour contrast satisfies AAA standard from Web
+# Content Accessibility Guidelines. %S in the content will be replaced by a link at run
+# time with the accessibility.learnMore string.
+accessibility.contrast.annotation.AAA=à¸à¸£à¸à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸ WCAG AAA สำหรัà¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹ %S
+
+# LOCALIZATION NOTE (accessibility.contrast.annotation.fail): A title text for the
+# paragraph describing that the given colour contrast fails to meet the minimum level from
+# Web Content Accessibility Guidelines. %S in the content will be replaced by a link at
+# run time with the accessibility.learnMore string.
+accessibility.contrast.annotation.fail=à¹à¸¡à¹à¸à¸£à¸à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸ WCAG สำหรัà¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹ %S
+
+# LOCALIZATION NOTE (accessibility.badges): A title text for the group of badges
+# that are rendered for each accessible row within the accessibility tree when
+# one or more accessibility checks fail.
+accessibility.badges=à¸à¸²à¸£à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸²à¸£à¸à¹à¸§à¸¢à¸à¸²à¸£à¹à¸à¹à¸²à¸à¸¶à¸
+
+# LOCALIZATION NOTE (accessibility.filter.all): A title text for the filter
+# that is rendered within the accessibility panel toolbar for a button that
+# filters the tree based on all accessibility failures within it.
+accessibility.filter.all=à¸à¸±à¹à¸à¸«à¸¡à¸
+
+# LOCALIZATION NOTE (accessibility.badge.contrast): A title text for the badge
+# that is rendered within the accessible row in the accessibility tree for a
+# given accessible object that does not satisfy the WCAG guideline for colour
+# contrast.
+accessibility.badge.contrast=à¸à¸§à¸²à¸¡à¸à¸¡à¸à¸±à¸
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.warning): A label for the
+# badge and attached warning icon that is rendered within the accessible row in
+# the accessibility tree for a given accessible object that does not satisfy the
+# WCAG guideline for colour contrast.
+accessibility.badge.contrast.warning=à¸à¸³à¹à¸à¸·à¸à¸à¸à¸§à¸²à¸¡à¸à¸¡à¸à¸±à¸
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel): A title text for the
+# badge that is rendered within the accessible row in the accessibility tree for
+# a given accessible object that does not satisfy the WCAG guideline for text
+# alternative.
+
+# LOCALIZATION NOTE (accessibility.badge.contrast.tooltip): A title text for the
+# badge tooltip that is rendered on mouse hover over the badge in the accessible
+# row in the accessibility tree for a given accessible object that does not
+# satisfy the WCAG guideline for colour contrast.
+accessibility.badge.contrast.tooltip=à¹à¸¡à¹à¸à¸£à¸à¸à¸²à¸¡à¸¡à¸²à¸à¸£à¸à¸²à¸ WCAG สำหรัà¸à¸à¹à¸à¸à¸§à¸²à¸¡à¸à¸µà¹à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¹
+
+# LOCALIZATION NOTE (accessibility.badge.textLabel.tooltip): A title text
+# for the badge tooltip that is rendered on mouse hover over the badge in the
+# accessible row in the accessibility tree for a given accessible object that
+# does not satisfy the WCAG guideline for text alternative.
+
+# LOCALIZATION NOTE (accessibility.tree.filters): A title text for the toolbar
+# within the main accessibility panel that contains a list of filters to be for
+# accessibility audit.
+accessibility.tree.filters=à¸à¸£à¸§à¸à¸ªà¸à¸à¸à¸±à¸à¸«à¸²:
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is starting up.
+accessibility.progress.initializing=à¸à¸³à¸¥à¸±à¸à¹à¸à¸£à¸µà¸¢à¸¡à¹à¸à¹à¸à¸²à¸â¦
+
+# LOCALIZATION NOTE (accessibility.progress.initializing): A title text for the
+# accessibility panel overlay shown when accessibility audit is running showing
+# the number of nodes being audited. Semi-colon list of plural forms. See:
+# http://developer.mozilla.org/en/docs/Localization_and_Plurals
+accessibility.progress.progressbar=à¸à¸³à¸¥à¸±à¸à¸à¸£à¸§à¸à¸ªà¸à¸ #1 à¹à¸«à¸à¸
+
+# LOCALIZATION NOTE (accessibility.progress.finishing): A title text for the
+# accessibility panel overlay shown when accessibility audit is finishing up.
+accessibility.progress.finishing=à¸à¸³à¸¥à¸±à¸à¸à¸³à¹à¸à¸´à¸à¸à¸²à¸£à¹à¸«à¹à¹à¸ªà¸£à¹à¸à¸ªà¸´à¹à¸â¦
+
+# LOCALIZATION NOTE (accessibility.beta): A title text for the features in the
+# accessibility panel that are currently in beta.
diff --git a/devtools/client/animationinspector.properties b/devtools/client/animationinspector.properties
new file mode 100644
index 00000000000..149750d1fe2
--- /dev/null
+++ b/devtools/client/animationinspector.properties
@@ -0,0 +1,182 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+# LOCALIZATION NOTE These strings are used inside the Animation inspector
+# which is available as a sidebar panel in the Inspector.
+# The correct localization of this file might be to keep it in
+# English, or another language commonly spoken among web developers.
+# You want to make that choice consistent across the developer tools.
+# A good criteria is the language in which you'd find the best
+# documentation on web development on the web.
+
+# LOCALIZATION NOTE (panel.noAnimation):
+# This is the label shown in the panel when there are no displayable animations.
+# (e.g. In case of user selected a non-element node or a node that is not animated).
+panel.noAnimation=à¹à¸¡à¹à¸à¸à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸ªà¸³à¸«à¸£à¸±à¸à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¸±à¸à¸à¸¸à¸à¸±à¸\nà¹à¸¥à¸·à¸à¸à¸à¸à¸à¹à¸à¸£à¸°à¸à¸à¸à¸à¸·à¹à¸à¸à¸²à¸à¸«à¸à¹à¸²
+
+# LOCALIZATION NOTE (player.animationDurationLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation duration.
+player.animationDurationLabel=ระยะà¹à¸§à¸¥à¸²:
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in a tooltip on animation player widget, in case the
+# duration of the animation is infinite.
+player.infiniteDurationText=â
+
+# LOCALIZATION NOTE (player.animationDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation delay.
+player.animationDelayLabel=หà¸à¹à¸§à¸à¹à¸§à¸¥à¸²:
+
+# LOCALIZATION NOTE (player.animationEndDelayLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation endDelay.
+player.animationEndDelayLabel=à¸à¸à¸à¸²à¸£à¸«à¸à¹à¸§à¸à¹à¸§à¸¥à¸²:
+
+# LOCALIZATION NOTE (player.animationRateLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the animation playback rate.
+player.animationRateLabel=à¸à¸±à¸à¸£à¸²à¸à¸²à¸£à¹à¸¥à¹à¸:
+
+# LOCALIZATION NOTE (player.animationIterationCountLabel):
+# This string is displayed in each animation player widget. It is the label
+# displayed before the number of times the animation is set to repeat.
+player.animationIterationCountLabel=à¸à¸³à¸à¹à¸³:
+
+# LOCALIZATION NOTE (player.infiniteIterationCount):
+# In case the animation repeats infinitely, this string is displayed next to the
+# player.animationIterationCountLabel string, instead of a number.
+player.infiniteIterationCount=∞
+
+# LOCALIZATION NOTE (player.infiniteIterationCountText):
+# See player.infiniteIterationCount for a description of what this is.
+# Unlike player.infiniteIterationCount, this string isn't used in HTML, but in
+# a tooltip.
+player.infiniteIterationCountText=â
+
+# LOCALIZATION NOTE (player.animationIterationStartLabel2):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# iterationStart value.
+# %1$S will be replaced by the original iteration start value
+# %2$S will be replaced by the actual time of iteration start without time unit
+# e.g.
+# If iterationStart of animation is 0.5 and duration is 1 sec, the string will be
+# "Iteration start: 0.5 (0.5s)"
+player.animationIterationStartLabel2=à¸à¸²à¸£à¸à¸§à¸à¸à¹à¸³à¹à¸£à¸´à¹à¸¡: %1$S (%2$S)
+
+# LOCALIZATION NOTE (player.animationOverallEasingLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the easing
+# that applies to a whole iteration of an animation as opposed to the
+# easing that applies between animation keyframes.
+player.animationOverallEasingLabel=Easing à¸à¸±à¹à¸à¸«à¸¡à¸:
+
+# LOCALIZATION NOTE (player.animationTimingFunctionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the
+# animation-timing-function for CSS Animations.
+player.animationTimingFunctionLabel=à¸à¸±à¸à¸à¹à¸à¸±à¸à¸à¸²à¸£à¸à¸±à¸à¹à¸§à¸¥à¸²à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§:
+
+# LOCALIZATION NOTE (player.animationFillLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# fill mode value.
+player.animationFillLabel=à¹à¸à¸´à¸¡:
+
+# LOCALIZATION NOTE (player.animationDirectionLabel):
+# This string is displayed in a tooltip that appears when hovering over
+# animations in the timeline. It is the label displayed before the animation
+# direction value.
+player.animationDirectionLabel=à¸à¸´à¸¨à¸à¸²à¸:
+
+# LOCALIZATION NOTE (player.timeLabel):
+# This string is displayed in each animation player widget, to indicate either
+# how long (in seconds) the animation lasts, or what is the animation's current
+# time (in seconds too);
+player.timeLabel=%Ss
+
+# LOCALIZATION NOTE (player.infiniteDurationText):
+# This string is displayed in animation player widget, in case the duration of the
+# animation is infinite.
+player.infiniteTimeLabel=â
+
+# LOCALIZATION NOTE (player.playbackRateLabel):
+# This string is displayed in each animation player widget, as the label of
+# drop-down list items that can be used to change the rate at which the
+# animation runs (1Ã being the default, 2Ã being twice as fast).
+player.playbackRateLabel=%SÃ
+
+# LOCALIZATION NOTE (player.runningOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that the
+# animation is running on the compositor thread.
+player.runningOnCompositorTooltip=ภาà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸µà¹à¸à¸³à¸¥à¸±à¸à¸à¸³à¸à¸²à¸à¸à¸ Compositor thread
+
+# LOCALIZATION NOTE (player.allPropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is running on the compositor thread.
+player.allPropertiesOnCompositorTooltip=à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸±à¹à¸à¸«à¸¡à¸à¸à¸¹à¸à¹à¸à¸´à¹à¸¡à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸
+
+# LOCALIZATION NOTE (player.somePropertiesOnCompositorTooltip):
+# This string is displayed as a tooltip for the icon that indicates that
+# all of animation is not running on the compositor thread.
+player.somePropertiesOnCompositorTooltip=à¸à¸¸à¸à¸ªà¸¡à¸à¸±à¸à¸´à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸²à¸à¸ªà¹à¸§à¸à¸à¸¹à¸à¹à¸à¸´à¹à¸¡à¸à¸£à¸°à¸ªà¸´à¸à¸à¸´à¸ าà¸
+
+# LOCALIZATION NOTE (timeline.pausedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.pausedButtonTooltip=à¹à¸¥à¹à¸à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¹à¸
+
+# LOCALIZATION NOTE (timeline.resumedButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# pause/resume button that can be used to pause or resume the animations
+timeline.resumedButtonTooltip=หยุà¸à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸±à¹à¸§à¸à¸£à¸²à¸§
+
+# LOCALIZATION NOTE (timeline.rewindButtonTooltip):
+# This string is displayed in the timeline toolbar, as the tooltip of the
+# rewind button that can be used to rewind the animations
+timeline.rewindButtonTooltip=à¸à¸£à¸à¸ าà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸¥à¸±à¸
+
+# LOCALIZATION NOTE (timeline.timeGraduationLabel):
+# This string is displayed at the top of the animation panel, next to each time
+# graduation, to indicate what duration (in milliseconds) this graduation
+# corresponds to.
+timeline.timeGraduationLabel=%Sms
+
+# LOCALIZATION NOTE (timeline.cssanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.cssanimation.nameLabel=%S - ภาà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§ CSS
+
+# LOCALIZATION NOTE (timeline.csstransition.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a CSS Transition in the timeline UI.
+# %S will be replaced by the name of the transition at run-time.
+timeline.csstransition.nameLabel=%S - à¸à¸²à¸£à¹à¸à¸¥à¸µà¹à¸¢à¸à¸à¹à¸²à¸ CSS
+
+# LOCALIZATION NOTE (timeline.scriptanimation.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of a script-generated animation in the timeline UI.
+# %S will be replaced by the name of the animation at run-time.
+timeline.scriptanimation.nameLabel=%S - ภาà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸²à¸à¸ªà¸à¸£à¸´à¸à¸à¹
+
+# LOCALIZATION NOTE (timeline.scriptanimation.unnamedLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over an unnamed script-generated animation in the timeline UI.
+timeline.scriptanimation.unnamedLabel=ภาà¸à¹à¸à¸¥à¸·à¹à¸à¸à¹à¸«à¸§à¸à¸²à¸à¸ªà¸à¸£à¸´à¸à¸à¹
+
+# LOCALIZATION NOTE (timeline.unknown.nameLabel):
+# This string is displayed in a tooltip of the animation panel that is shown
+# when hovering over the name of an unknown animation type in the timeline UI.
+# This can happen if devtools couldn't figure out the type of the animation.
+# %S will be replaced by the name of the transition at run-time.
+timeline.unknown.nameLabel=%S
+
+# LOCALIZATION NOTE (detail.propertiesHeader.percentage):
+# This string is displayed on header label in .animated-properties-header.
+# %S represents the value in percentage with two decimal points, localized.
+# there are two "%" after %S to escape and display "%"
+detail.propertiesHeader.percentage=%S%%
diff --git a/devtools/client/app-manager.properties b/devtools/client/app-manager.properties
new file mode 100644
index 00000000000..89d3fee9635
--- /dev/null
+++ b/devtools/client/app-manager.properties
@@ -0,0 +1,29 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+validator.nonExistingFolder=à¹à¸¡à¹à¸¡à¸µà¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸à¸à¹à¸à¸£à¸à¸à¸²à¸£à¸à¸¢à¸¹à¹
+validator.expectProjectFolder=à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸à¸à¸à¹à¸à¸£à¸à¸à¸²à¸£à¹à¸¡à¹à¸à¸§à¸£à¹à¸à¹à¸à¹à¸à¸¥à¹
+validator.noManifestFile=à¹à¸à¸¥à¹à¸à¸à¸£à¹à¸£à¸²à¸à¸à¸à¸à¹à¸à¸£à¸à¸à¸²à¸£à¸à¹à¸à¸à¸¡à¸µà¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸à¸à¸¶à¹à¸à¸¡à¸µà¸à¸·à¹à¸ âmanifest.webappâ สำหรัà¸à¹à¸à¸à¸à¸µà¹à¹à¸à¹à¸à¹à¸à¸à¹à¸à¸à¸«à¸£à¸·à¸ âmanifest.jsonâ สำหรัà¸à¸ªà¹à¸§à¸à¹à¸ªà¸£à¸´à¸¡
+validator.invalidManifestURL=URL à¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸ â%Sâ à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸
+# LOCALIZATION NOTE (validator.invalidManifestJSON, validator.noAccessManifestURL):
+# %1$S is the error message, %2$S is the URI of the manifest.
+validator.invalidManifestJSON=Manifest à¸à¸à¸à¹à¸§à¹à¸à¹à¸à¸à¹à¸¡à¹à¹à¸à¹à¹à¸à¸¥à¹ JSON à¸à¸µà¹à¸à¸¹à¸à¸à¹à¸à¸: %1$S à¸à¸µà¹: %2$S
+validator.noAccessManifestURL=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¸à¹à¸²à¸à¹à¸à¸¥à¹ Manifest: %1$S à¸à¸µà¹: %2$S
+# LOCALIZATION NOTE (validator.invalidHostedManifestURL): %1$S is the URI of
+# the manifest, %2$S is the error message.
+validator.invalidHostedManifestURL=URL à¸à¸à¸ Manifest à¸à¸µà¹à¹à¸®à¸ªà¸à¹ â%1$Sâ à¹à¸¡à¹à¸à¸¹à¸à¸à¹à¸à¸: %2$S
+validator.invalidProjectType=à¹à¸¡à¹à¸£à¸¹à¹à¸à¸±à¸à¸à¸£à¸°à¹à¸ à¸à¸à¸à¸à¹à¸à¸£à¸à¸à¸²à¸ '%S'
+# LOCALIZATION NOTE (validator.missNameManifestProperty, validator.missIconsManifestProperty):
+# don't translate 'icons' and 'name'.
+validator.missNameManifestProperty=âà¸à¸·à¹à¸â à¸à¸µà¹à¸à¸³à¹à¸à¹à¸à¸à¸²à¸à¸«à¸²à¸¢à¹à¸à¹à¸à¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸
+validator.missIconsManifestProperty=âà¹à¸à¸à¸à¸â à¸à¸²à¸à¸«à¸²à¸¢à¹à¸à¹à¸à¹à¸à¸¥à¹à¸à¸³à¸à¸±à¸
+validator.missIconMarketplace2=à¸à¸²à¸£à¸ªà¹à¸à¹à¸à¸à¹à¸à¸¢à¸±à¸ Marketplace à¸à¹à¸à¸à¹à¸à¹à¹à¸à¸à¸à¸ 128px
+validator.invalidAppType=à¹à¸¡à¹à¸à¸£à¸²à¸à¸à¸à¸´à¸à¸à¸à¸à¹à¸à¸: â%Sâ
+validator.invalidHostedPriviledges=à¹à¸à¸à¸à¸µà¹à¹à¸®à¸ªà¸à¹à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸à¸à¸à¸´à¸ â%Sâ
+validator.noCertifiedSupport=à¹à¸à¸à¸à¸µà¹ âà¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸£à¸±à¸à¸£à¸à¸â à¹à¸¡à¹à¹à¸à¹à¸£à¸±à¸à¸à¸²à¸£à¸ªà¸à¸±à¸à¸ªà¸à¸¸à¸à¸à¸¢à¹à¸²à¸à¹à¸à¹à¸¡à¸à¸µà¹à¹à¸à¸à¸±à¸§à¸à¸±à¸à¸à¸²à¸£à¹à¸à¸
+validator.nonAbsoluteLaunchPath=à¹à¸ªà¹à¸à¸à¸²à¸à¸à¸²à¸£à¹à¸£à¸´à¹à¸¡à¸à¸°à¸à¹à¸à¸à¹à¸à¹à¸à¹à¸ªà¹à¸à¸à¸²à¸à¹à¸à¸à¸ªà¸±à¸¡à¸à¸¹à¸£à¸à¹à¸à¸µà¹à¸à¸¶à¹à¸à¸à¹à¸à¸à¹à¸§à¸¢ â/â: â%Sâ
+validator.accessFailedLaunchPath=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸à¸ªà¸²à¸£à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¹à¸à¸ â%Sâ
+# LOCALIZATION NOTE (validator.accessFailedLaunchPathBadHttpCode): %1$S is the URI of
+# the launch document, %2$S is the http error code.
+validator.accessFailedLaunchPathBadHttpCode=à¹à¸¡à¹à¸ªà¸²à¸¡à¸²à¸£à¸à¹à¸à¹à¸²à¸à¸¶à¸à¹à¸à¸à¸ªà¸²à¸£à¹à¸£à¸´à¹à¸¡à¸à¹à¸à¸à¸à¸à¹à¸à¸ â%1$Sâ à¹à¸à¹à¸£à¸±à¸à¹à¸à¹à¸ HTTP %2$S
diff --git a/devtools/client/application.ftl b/devtools/client/application.ftl
new file mode 100644
index 00000000000..03ffd240bb6
--- /dev/null
+++ b/devtools/client/application.ftl
@@ -0,0 +1,63 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+
+
+### These strings are used inside the Application panel which is available
+### by setting the preference `devtools-application-enabled` to true.
+
+
+### The correct localization of this file might be to keep it in English, or another
+### language commonly spoken among web developers. You want to make that choice consistent
+### across the developer tools. A good criteria is the language in which you'd find the
+### best documentation on web development on the web.
+
+# Header for the list of Service Workers displayed in the application panel for the current page.
+serviceworker-list-header = à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£
+# Text displayed next to the list of Service Workers to encourage users to check out
+# about:debugging to see all registered Service Workers.
+serviceworker-list-aboutdebugging = à¹à¸à¸´à¸ about:debugging สำหรัà¸à¸à¸±à¸§à¸à¸³à¸à¸²à¸à¸à¸£à¸´à¸à¸²à¸£à¸à¸²à¸à¹à¸à¹à¸¡à¸à¸à¸·à¹à¸ à¹
+# Text for the button to unregister a Service Worker. Displayed for active Service Workers.
+serviceworker-worker-unregister = à¹à¸¥à¸´à¸à¸¥à¸à¸à¸°à¹à¸à¸µà¸¢à¸
+# Text for the debug link displayed for an already started Service Worker. Clicking on the
+# link opens a new devtools toolbox for this service worker. The title attribute is only
+# displayed when the link is disabled.
+serviceworker-worker-debug = à¸à¸µà¸à¸±à¹à¸
+ .title = สามารà¸à¸à¸µà¸à¸±à¹à¸à¹à¸à¹à¹à¸à¸à¸²à¸°à¹à¸§à¸´à¸£à¹à¸à¹à¸à¸à¸£à¹à¸à¸£à¸´à¸à¸²à¸£à¸à¸µà¹à¸à¸³à¸à¸²à¸à¸à¸¢à¸¹à¹à¹à¸à¹à¸²à¸à¸±à¹à¸
+# Text for the start link displayed for a registered but not running Service Worker.
+# Clicking on the link will attempt to start the service worker.
+serviceworker-worker-start = à¹à¸£à¸´à¹à¸¡
+# Text displayed for the updated time of the service worker. The