summaryrefslogtreecommitdiffhomepage
path: root/android/lib
diff options
context:
space:
mode:
Diffstat (limited to 'android/lib')
-rw-r--r--android/lib/resource/build.gradle.kts3
-rw-r--r--android/lib/resource/lint-baseline.xml417
-rw-r--r--android/lib/resource/lint.xml10
-rw-r--r--android/lib/resource/src/main/res/anim/do_nothing.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_enter_from_bottom.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_enter_from_right.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_exit_to_bottom.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_exit_to_left.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_exit_to_right.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_half_enter_from_left.xml6
-rw-r--r--android/lib/resource/src/main/res/anim/fragment_half_exit_to_left.xml6
-rw-r--r--android/lib/resource/src/main/res/color/switch_thumb_fill_selector.xml7
-rw-r--r--android/lib/resource/src/main/res/drawable-hdpi/launch_logo.pngbin0 -> 10502 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-hdpi/logo_icon.pngbin0 -> 3967 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-hdpi/small_logo_black.pngbin0 -> 605 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-hdpi/small_logo_white.pngbin0 -> 665 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-mdpi/launch_logo.pngbin0 -> 6541 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-mdpi/logo_icon.pngbin0 -> 2470 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-mdpi/small_logo_black.pngbin0 -> 433 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-mdpi/small_logo_white.pngbin0 -> 457 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xhdpi/banner.pngbin0 -> 10264 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xhdpi/launch_logo.pngbin0 -> 14379 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xhdpi/logo_icon.pngbin0 -> 5436 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xhdpi/small_logo_black.pngbin0 -> 832 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xhdpi/small_logo_white.pngbin0 -> 905 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxhdpi/launch_logo.pngbin0 -> 22237 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxhdpi/logo_icon.pngbin0 -> 8484 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_black.pngbin0 -> 1249 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_white.pngbin0 -> 1412 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxxhdpi/launch_logo.pngbin0 -> 30136 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxxhdpi/logo_icon.pngbin0 -> 11814 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_black.pngbin0 -> 1757 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_white.pngbin0 -> 1962 bytes
-rw-r--r--android/lib/resource/src/main/res/drawable/account_history_entry_background.xml20
-rw-r--r--android/lib/resource/src/main/res/drawable/account_history_remove.xml8
-rw-r--r--android/lib/resource/src/main/res/drawable/account_history_remove_normal.xml38
-rw-r--r--android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml38
-rw-r--r--android/lib/resource/src/main/res/drawable/account_input_background.xml14
-rw-r--r--android/lib/resource/src/main/res/drawable/account_login_border.xml5
-rw-r--r--android/lib/resource/src/main/res/drawable/account_login_border_error.xml5
-rw-r--r--android/lib/resource/src/main/res/drawable/account_login_border_focused.xml5
-rw-r--r--android/lib/resource/src/main/res/drawable/account_login_corner.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/account_login_corner_error.xml11
-rw-r--r--android/lib/resource/src/main/res/drawable/account_login_corner_focused.xml11
-rw-r--r--android/lib/resource/src/main/res/drawable/app_list_item_background.xml20
-rw-r--r--android/lib/resource/src/main/res/drawable/blue_button_background.xml23
-rw-r--r--android/lib/resource/src/main/res/drawable/cell_button_background.xml20
-rw-r--r--android/lib/resource/src/main/res/drawable/cell_switch_background.xml22
-rw-r--r--android/lib/resource/src/main/res/drawable/dialog_background.xml11
-rw-r--r--android/lib/resource/src/main/res/drawable/edit_text_background.xml25
-rw-r--r--android/lib/resource/src/main/res/drawable/green_button_background.xml23
-rw-r--r--android/lib/resource/src/main/res/drawable/ic_icons_add.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/ic_icons_missing.xml10
-rw-r--r--android/lib/resource/src/main/res/drawable/ic_icons_remove.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_account.xml12
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_alert.xml26
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_android.xml19
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_android_mono.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml11
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_arrow_white.xml11
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_back.xml12
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_chevron.xml12
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_close.xml38
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_copy.xml8
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_extlink.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_fail.xml13
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_hide.xml8
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_info.xml8
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_notification_connect.xml36
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_notification_disconnect.xml34
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_notification_error.xml7
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_notification_warning.xml7
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_reload.xml9
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_settings.xml12
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_show.xml8
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_spinner.xml18
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_success.xml13
-rw-r--r--android/lib/resource/src/main/res/drawable/icon_tick.xml11
-rw-r--r--android/lib/resource/src/main/res/drawable/icons_search.xml22
-rw-r--r--android/lib/resource/src/main/res/drawable/input_text_background.xml6
-rw-r--r--android/lib/resource/src/main/res/drawable/login_button_arrow.xml8
-rw-r--r--android/lib/resource/src/main/res/drawable/login_button_background.xml14
-rw-r--r--android/lib/resource/src/main/res/drawable/logo_text.xml26
-rw-r--r--android/lib/resource/src/main/res/drawable/red_button_background.xml23
-rw-r--r--android/lib/resource/src/main/res/drawable/switch_thumb.xml16
-rw-r--r--android/lib/resource/src/main/res/drawable/switch_track.xml17
-rw-r--r--android/lib/resource/src/main/res/drawable/text_input_cursor.xml6
-rw-r--r--android/lib/resource/src/main/res/mipmap-anydpi-v26/ic_launcher.xml6
-rw-r--r--android/lib/resource/src/main/res/mipmap-hdpi/ic_launcher.pngbin0 -> 3844 bytes
-rw-r--r--android/lib/resource/src/main/res/mipmap-mdpi/ic_launcher.pngbin0 -> 2381 bytes
-rw-r--r--android/lib/resource/src/main/res/mipmap-xhdpi/ic_launcher.pngbin0 -> 5345 bytes
-rw-r--r--android/lib/resource/src/main/res/mipmap-xxhdpi/ic_launcher.pngbin0 -> 8115 bytes
-rw-r--r--android/lib/resource/src/main/res/mipmap-xxxhdpi/ic_launcher.pngbin0 -> 11152 bytes
-rw-r--r--android/lib/resource/src/main/res/values-da/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-da/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-de/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-de/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-es/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-es/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-fi/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-fi/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-fr/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-fr/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-it/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-it/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-ja/plurals.xml33
-rw-r--r--android/lib/resource/src/main/res/values-ja/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-ko/plurals.xml33
-rw-r--r--android/lib/resource/src/main/res/values-ko/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-my/plurals.xml33
-rw-r--r--android/lib/resource/src/main/res/values-my/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-nb/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-nb/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-nl/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-nl/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-pl/plurals.xml63
-rw-r--r--android/lib/resource/src/main/res/values-pl/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-pt/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-pt/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-ru/plurals.xml63
-rw-r--r--android/lib/resource/src/main/res/values-ru/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-sv/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-sv/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-th/plurals.xml33
-rw-r--r--android/lib/resource/src/main/res/values-th/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-tr/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values-tr/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-zh-rCN/plurals.xml33
-rw-r--r--android/lib/resource/src/main/res/values-zh-rCN/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values-zh-rTW/plurals.xml33
-rw-r--r--android/lib/resource/src/main/res/values-zh-rTW/strings.xml194
-rw-r--r--android/lib/resource/src/main/res/values/attrs.xml40
-rw-r--r--android/lib/resource/src/main/res/values/colors.xml30
-rw-r--r--android/lib/resource/src/main/res/values/dimensions.xml51
-rw-r--r--android/lib/resource/src/main/res/values/integers.xml4
-rw-r--r--android/lib/resource/src/main/res/values/plurals.xml43
-rw-r--r--android/lib/resource/src/main/res/values/strings.xml220
-rw-r--r--android/lib/resource/src/main/res/values/strings_non_translatable.xml14
-rw-r--r--android/lib/resource/src/main/res/values/styles.xml95
139 files changed, 6295 insertions, 1 deletions
diff --git a/android/lib/resource/build.gradle.kts b/android/lib/resource/build.gradle.kts
index 28cce2806e..df86d6fb0e 100644
--- a/android/lib/resource/build.gradle.kts
+++ b/android/lib/resource/build.gradle.kts
@@ -23,7 +23,8 @@ android {
}
lint {
- lintConfig = file("${rootProject.projectDir}/config/lint.xml")
+ lintConfig = file("lint.xml")
+ baseline = file("lint-baseline.xml")
abortOnError = true
warningsAsErrors = true
}
diff --git a/android/lib/resource/lint-baseline.xml b/android/lib/resource/lint-baseline.xml
new file mode 100644
index 0000000000..96809601b9
--- /dev/null
+++ b/android/lib/resource/lint-baseline.xml
@@ -0,0 +1,417 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<issues format="6" by="lint 7.4.2" type="baseline" client="gradle" dependencies="false" name="AGP (7.4.2)" variant="all" version="7.4.2">
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;days_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="3"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;months_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="7"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;years_left&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="11"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;days_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="15"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;minutes_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="19"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;months_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="23"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;years_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="27"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;hours_ago&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="31"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_days&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="35"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="MissingQuantity"
+ message="For locale &quot;fr&quot; (French) the following quantity should also be defined: `many` (e.g. &quot;1000000 de jours&quot;)"
+ errorLine1=" &lt;plurals name=&quot;account_credit_expires_in_hours&quot;>"
+ errorLine2=" ^">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="39"
+ column="5"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>1 jour restant&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="4"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>1 dia restante&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="4"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>1 mois restant&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="8"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>1 mês restante&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="8"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>1 an restant&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="12"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>1 ano restante&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="12"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>il y a un jour&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="16"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>há um dia&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="16"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>il y a une minute&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>há um minuto&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="20"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>il y a un mois&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="24"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>há um mês&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="24"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>il y a un an&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>há um ano&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="28"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>il y a une heure&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="32"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>há uma hora&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="32"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>Les crédits du compte expirent dans un jour&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>O crédito da conta expira dentro de um dia&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="36"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>Les crédits du compte expirent dans une heure&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-fr/plurals.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ImpliedQuantity"
+ message="The quantity `&apos;one&apos;` matches more than one specific number in this locale (0, 1), but the message did not \&#xA;include a formatting argument (such as `%d`). This is usually an internationalization error. See full issue \&#xA;explanation for more."
+ errorLine1=" &lt;item quantity=&quot;one&quot;>O crédito da conta expira dentro de uma hora&lt;/item>"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/values-pt/plurals.xml"
+ line="40"
+ column="9"/>
+ </issue>
+
+ <issue
+ id="ObsoleteSdkInt"
+ message="This folder configuration (`v26`) is unnecessary; `minSdkVersion` is 26. Merge all the resources in this folder into `mipmap-anydpi`.">
+ <location
+ file="src/main/res/mipmap-anydpi-v26"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (917 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" &lt;path android:fillColor=&quot;#66294D73&quot;"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/account_history_remove_normal.xml"
+ line="7"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (917 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" &lt;path android:fillColor=&quot;#FF294D73&quot;"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/account_history_remove_pressed.xml"
+ line="7"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1165 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" &lt;path android:pathData=&quot;M74.2,74.5c-8,10.3 -29,11.9 -38.3,0.4c-0.2,-0.9 1.9,-2.5 3.2,-4.3c0.6,-0.9 1.2,-1.8 1.6,-2.7c0.6,-1.7 -0.6,-1.6 -1.4,-3.1c-0.1,-0.3 -0.3,-0.6 -0.1,-0.9c0.2,-0.6 1.1,-1 1.3,-0.9c3.9,2.6 11.3,1.8 15.8,-3.4c0,0 1.4,0.3 2.1,0.5l-2.1,-1.4l-0.1,-0.1c-0.1,0.1 -0.2,0.1 -0.3,0.2c-9.4,7.1 -15.5,4.1 -15.5,4.1c-0.2,-0.2 -0.8,-0.8 -1.3,-1.2c-6.4,-4.5 -10.9,-10.5 -13,-14.4l-0.8,4.1l0.2,-5.5l-2.7,3.8l2,-4.1c-1.5,-0.2 -2.4,-1.7 -2,-2.9c0.3,-1.3 1.9,-2.2 3.3,-1.6l0.9,-4l-0.2,4.3c0,0 0.2,0.1 0.4,0.1l2.8,-3.4l-1.9,3.3c3,-0.6 8,-0.7 13.3,-0.3l5.5,2.7c2.7,2.4 6.4,5.5 10.5,8.1L67.9,56l1.3,1.9h-1.1l2.3,2.8l-2.1,-0.3c0,0.2 2.1,2.6 2.1,2.6l-1.7,0.2c0.1,0.2 1.7,2.3 1.7,2.3l-1.3,-0.1c0.1,0.3 2,3.5 2,3.5s-0.7,-0.2 -1.1,-0.3C71.7,72.3 74.1,73 74.2,74.5zM72.8,46.2c-0.8,2.5 -3.7,6 -2.6,8.7c-0.4,-0.1 -9.4,-3.1 -11.9,-4.5c-4,-2.5 -7.6,-5.6 -10.3,-8l-0.1,-0.1L38.6,38c-0.1,-0.1 -0.2,-0.1 -0.3,-0.2c1.3,0.1 6.3,0.7 8.5,0.2c-0.4,-1.2 -0.3,-2.7 0.3,-4.1c0.9,-2 2.5,-3.3 4,-3.3c0.3,0 0.6,0.1 0.9,0.2c0.9,-0.8 1.9,-1.5 3.1,-1.9c6.3,-2.5 15.5,2 17.9,8.1C74.1,40 73.8,43.2 72.8,46.2zM52,31.6c-1.4,-0.6 -3.2,0.5 -4,2.6c-0.9,2 -0.5,4.1 0.9,4.7c1.3,0.6 3.2,-0.5 4,-2.6C53.7,34.3 53.3,32.1 52,31.6z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/icon_android_mono.xml"
+ line="6"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (917 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" &lt;path android:fillColor=&quot;#99FFFFFF&quot;"
+ errorLine2=" ~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/icon_close.xml"
+ line="7"
+ column="30"/>
+ </issue>
+
+ <issue
+ id="VectorPath"
+ message="Very long vector path (1161 characters), which is bad for performance. Considering reducing precision, removing minor details or rasterizing vector."
+ errorLine1=" &lt;path android:pathData=&quot;M21.2552,12C21.2552,12.408 21.2182,12.792 21.1688,13.176L23.7719,15.156C24.0063,15.336 24.068,15.66 23.9199,15.924L21.4526,20.076C21.3045,20.34 20.9838,20.448 20.7001,20.34L17.6282,19.14C16.9867,19.608 16.2959,20.016 15.5433,20.316L15.0745,23.496C15.0375,23.784 14.7785,24 14.4701,24L9.5354,24C9.227,24 8.9679,23.784 8.9309,23.496L8.4621,20.316C7.7096,20.016 7.0187,19.62 6.3772,19.14L3.3054,20.34C3.034,20.436 2.7009,20.34 2.5529,20.076L0.0855,15.924C-0.0625,15.66 -0.0008,15.336 0.2336,15.156L2.8366,13.176C2.7873,12.792 2.7502,12.396 2.7502,12C2.7502,11.604 2.7873,11.208 2.8366,10.824L0.2336,8.844C-0.0008,8.664 -0.0748,8.34 0.0855,8.076L2.5529,3.924C2.7009,3.66 3.0217,3.552 3.3054,3.66L6.3772,4.86C7.0187,4.392 7.7096,3.984 8.4621,3.684L8.9309,0.504C8.9679,0.216 9.227,0 9.5354,0L14.4701,0C14.7785,0 15.0375,0.216 15.0745,0.504L15.5433,3.684C16.2959,3.984 16.9867,4.38 17.6282,4.86L20.7001,3.66C20.9715,3.564 21.3046,3.66 21.4526,3.924L23.9199,8.076C24.068,8.34 24.0063,8.664 23.7719,8.844L21.1688,10.824C21.2182,11.208 21.2552,11.592 21.2552,12ZM12,17C14.7571,17 17,14.7571 17,12C17,9.2429 14.7571,7 12,7C9.2429,7 7,9.2429 7,12C7,14.7571 9.2429,17 12,17Z&quot;"
+ errorLine2=" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~">
+ <location
+ file="src/main/res/drawable/icon_settings.xml"
+ line="6"
+ column="29"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-hdpi`: banner.png (found in drawable-xhdpi)">
+ <location
+ file="src/main/res/drawable-hdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-mdpi`: banner.png (found in drawable-xhdpi)">
+ <location
+ file="src/main/res/drawable-mdpi"/>
+ </issue>
+
+ <issue
+ id="IconDensities"
+ message="Missing the following drawables in `drawable-xxhdpi`: banner.png (found in drawable-xhdpi)">
+ <location
+ file="src/main/res/drawable-xxhdpi"/>
+ </issue>
+
+</issues>
diff --git a/android/lib/resource/lint.xml b/android/lib/resource/lint.xml
new file mode 100644
index 0000000000..628a809680
--- /dev/null
+++ b/android/lib/resource/lint.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<lint>
+ <!-- Ignore the following rules as they don't match our localization workflow. -->
+ <issue id="ExtraTranslation" severity="ignore" />
+ <issue id="MissingTranslation" severity="ignore" />
+ <issue id="Typos" severity="ignore" />
+ <issue id="UnusedResources" severity="ignore" />
+ <!-- We are currently not using the ellipsis character -->
+ <issue id="TypographyEllipsis" severity="ignore" />
+</lint>
diff --git a/android/lib/resource/src/main/res/anim/do_nothing.xml b/android/lib/resource/src/main/res/anim/do_nothing.xml
new file mode 100644
index 0000000000..8cb6866d6d
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/do_nothing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromYDelta="0"
+ android:toYDelta="0"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_enter_from_bottom.xml b/android/lib/resource/src/main/res/anim/fragment_enter_from_bottom.xml
new file mode 100644
index 0000000000..337392e881
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_enter_from_bottom.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromYDelta="100%p"
+ android:toYDelta="0"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_enter_from_right.xml b/android/lib/resource/src/main/res/anim/fragment_enter_from_right.xml
new file mode 100644
index 0000000000..5ba3b5c3f8
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_enter_from_right.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromXDelta="100%p"
+ android:toXDelta="0"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_exit_to_bottom.xml b/android/lib/resource/src/main/res/anim/fragment_exit_to_bottom.xml
new file mode 100644
index 0000000000..dc1261114a
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_exit_to_bottom.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromYDelta="0"
+ android:toYDelta="100%p"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_exit_to_left.xml b/android/lib/resource/src/main/res/anim/fragment_exit_to_left.xml
new file mode 100644
index 0000000000..9ffa2c9877
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_exit_to_left.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromXDelta="0%p"
+ android:toXDelta="-100%p"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_exit_to_right.xml b/android/lib/resource/src/main/res/anim/fragment_exit_to_right.xml
new file mode 100644
index 0000000000..d794200982
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_exit_to_right.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromXDelta="0"
+ android:toXDelta="100%p"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_half_enter_from_left.xml b/android/lib/resource/src/main/res/anim/fragment_half_enter_from_left.xml
new file mode 100644
index 0000000000..67e7b7364e
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_half_enter_from_left.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromXDelta="-50%p"
+ android:toXDelta="0"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/anim/fragment_half_exit_to_left.xml b/android/lib/resource/src/main/res/anim/fragment_half_exit_to_left.xml
new file mode 100644
index 0000000000..bfac81df2e
--- /dev/null
+++ b/android/lib/resource/src/main/res/anim/fragment_half_exit_to_left.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<set xmlns:android="http://schemas.android.com/apk/res/android">
+ <translate android:fromXDelta="0%p"
+ android:toXDelta="-50%p"
+ android:duration="@integer/transition_animation_duration" />
+</set>
diff --git a/android/lib/resource/src/main/res/color/switch_thumb_fill_selector.xml b/android/lib/resource/src/main/res/color/switch_thumb_fill_selector.xml
new file mode 100644
index 0000000000..b294ee1038
--- /dev/null
+++ b/android/lib/resource/src/main/res/color/switch_thumb_fill_selector.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector
+ xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:color="@color/switch_thumb_fill_checked"
+ android:state_checked="true" />
+ <item android:color="@color/switch_thumb_fill_unchecked"/>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable-hdpi/launch_logo.png b/android/lib/resource/src/main/res/drawable-hdpi/launch_logo.png
new file mode 100644
index 0000000000..2a9b0ff904
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-hdpi/launch_logo.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-hdpi/logo_icon.png b/android/lib/resource/src/main/res/drawable-hdpi/logo_icon.png
new file mode 100644
index 0000000000..6bc7af4b6d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-hdpi/logo_icon.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-hdpi/small_logo_black.png b/android/lib/resource/src/main/res/drawable-hdpi/small_logo_black.png
new file mode 100644
index 0000000000..ac4cdd67ed
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-hdpi/small_logo_black.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-hdpi/small_logo_white.png b/android/lib/resource/src/main/res/drawable-hdpi/small_logo_white.png
new file mode 100644
index 0000000000..3d28cbb77c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-hdpi/small_logo_white.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-mdpi/launch_logo.png b/android/lib/resource/src/main/res/drawable-mdpi/launch_logo.png
new file mode 100644
index 0000000000..00ab066921
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-mdpi/launch_logo.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-mdpi/logo_icon.png b/android/lib/resource/src/main/res/drawable-mdpi/logo_icon.png
new file mode 100644
index 0000000000..534ea3a15f
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-mdpi/logo_icon.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-mdpi/small_logo_black.png b/android/lib/resource/src/main/res/drawable-mdpi/small_logo_black.png
new file mode 100644
index 0000000000..318518b7fb
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-mdpi/small_logo_black.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-mdpi/small_logo_white.png b/android/lib/resource/src/main/res/drawable-mdpi/small_logo_white.png
new file mode 100644
index 0000000000..87be0ab4c8
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-mdpi/small_logo_white.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xhdpi/banner.png b/android/lib/resource/src/main/res/drawable-xhdpi/banner.png
new file mode 100644
index 0000000000..da8eee678d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xhdpi/banner.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xhdpi/launch_logo.png b/android/lib/resource/src/main/res/drawable-xhdpi/launch_logo.png
new file mode 100644
index 0000000000..b63b5083b8
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xhdpi/launch_logo.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xhdpi/logo_icon.png b/android/lib/resource/src/main/res/drawable-xhdpi/logo_icon.png
new file mode 100644
index 0000000000..e9a95d58c9
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xhdpi/logo_icon.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xhdpi/small_logo_black.png b/android/lib/resource/src/main/res/drawable-xhdpi/small_logo_black.png
new file mode 100644
index 0000000000..511e5536bc
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xhdpi/small_logo_black.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xhdpi/small_logo_white.png b/android/lib/resource/src/main/res/drawable-xhdpi/small_logo_white.png
new file mode 100644
index 0000000000..4e40f24132
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xhdpi/small_logo_white.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxhdpi/launch_logo.png b/android/lib/resource/src/main/res/drawable-xxhdpi/launch_logo.png
new file mode 100644
index 0000000000..0094063089
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxhdpi/launch_logo.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxhdpi/logo_icon.png b/android/lib/resource/src/main/res/drawable-xxhdpi/logo_icon.png
new file mode 100644
index 0000000000..da161671a3
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxhdpi/logo_icon.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_black.png b/android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_black.png
new file mode 100644
index 0000000000..a171963ed8
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_black.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_white.png b/android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_white.png
new file mode 100644
index 0000000000..85669c62ad
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxhdpi/small_logo_white.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxxhdpi/launch_logo.png b/android/lib/resource/src/main/res/drawable-xxxhdpi/launch_logo.png
new file mode 100644
index 0000000000..51171c101d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxxhdpi/launch_logo.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxxhdpi/logo_icon.png b/android/lib/resource/src/main/res/drawable-xxxhdpi/logo_icon.png
new file mode 100644
index 0000000000..03979dbff4
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxxhdpi/logo_icon.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_black.png b/android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_black.png
new file mode 100644
index 0000000000..7f2d33734d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_black.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_white.png b/android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_white.png
new file mode 100644
index 0000000000..82eabb4494
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable-xxxhdpi/small_logo_white.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/drawable/account_history_entry_background.xml b/android/lib/resource/src/main/res/drawable/account_history_entry_background.xml
new file mode 100644
index 0000000000..ea25d2b72a
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_history_entry_background.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_pressed="false"
+ android:state_focused="false">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/white60" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/white40" />
+ </shape>
+ </item>
+ <item android:state_focused="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/white40" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/account_history_remove.xml b/android/lib/resource/src/main/res/drawable/account_history_remove.xml
new file mode 100644
index 0000000000..6c7f52fcba
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_history_remove.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_pressed="false"
+ android:drawable="@drawable/account_history_remove_normal" />
+ <item android:state_pressed="true"
+ android:drawable="@drawable/account_history_remove_pressed" />
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/account_history_remove_normal.xml b/android/lib/resource/src/main/res/drawable/account_history_remove_normal.xml
new file mode 100644
index 0000000000..532d6cd9d7
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_history_remove_normal.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path android:fillColor="#66294D73"
+ android:pathData="
+ M 12,24
+ C 5.37312,24 0,18.62688 0,12
+ C 0,5.37312 5.37312,0 12,0
+ C 18.62688,0 24,5.37312 24,12
+ C 24,18.62688 18.62688,24 12,24
+ Z
+ M 13.5,12
+ L 17.2947612,8.20523878
+ C 17.6857559,7.81424414 17.6838785,7.18387854 17.293923,6.79392296
+ L 17.206077,6.70607704
+ C 16.8181114,6.31811142 16.1842538,6.31574616 15.7947612,6.70523878
+ L 12,10.5
+ L 8.20523878,6.70523878
+ C 7.81574616,6.31574616 7.18188858,6.31811142 6.79392296,6.70607704
+ L 6.70607704,6.79392296
+ C 6.31612146,7.18387854 6.31424414,7.81424414 6.70523878,8.20523878
+ L 10.5,12
+ L 6.70523878,15.7947612
+ C 6.31424414,16.1857559 6.31612146,16.8161215 6.70607704,17.206077
+ L 6.79392296,17.293923
+ C 7.18188858,17.6818886 7.81574616,17.6842538 8.20523878,17.2947612
+ L 12,13.5
+ L 15.7947612,17.2947612
+ C 16.1842538,17.6842538 16.8181114,17.6818886 17.206077,17.293923
+ L 17.293923,17.206077
+ C 17.6838785,16.8161215 17.6857559,16.1857559 17.2947612,15.7947612
+ L 13.5,12
+ L13.5,12
+ Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml b/android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml
new file mode 100644
index 0000000000..49d3484460
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_history_remove_pressed.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path android:fillColor="#FF294D73"
+ android:pathData="
+ M 12,24
+ C 5.37312,24 0,18.62688 0,12
+ C 0,5.37312 5.37312,0 12,0
+ C 18.62688,0 24,5.37312 24,12
+ C 24,18.62688 18.62688,24 12,24
+ Z
+ M 13.5,12
+ L 17.2947612,8.20523878
+ C 17.6857559,7.81424414 17.6838785,7.18387854 17.293923,6.79392296
+ L 17.206077,6.70607704
+ C 16.8181114,6.31811142 16.1842538,6.31574616 15.7947612,6.70523878
+ L 12,10.5
+ L 8.20523878,6.70523878
+ C 7.81574616,6.31574616 7.18188858,6.31811142 6.79392296,6.70607704
+ L 6.70607704,6.79392296
+ C 6.31612146,7.18387854 6.31424414,7.81424414 6.70523878,8.20523878
+ L 10.5,12
+ L 6.70523878,15.7947612
+ C 6.31424414,16.1857559 6.31612146,16.8161215 6.70607704,17.206077
+ L 6.79392296,17.293923
+ C 7.18188858,17.6818886 7.81574616,17.6842538 8.20523878,17.2947612
+ L 12,13.5
+ L 15.7947612,17.2947612
+ C 16.1842538,17.6842538 16.8181114,17.6818886 17.206077,17.293923
+ L 17.293923,17.206077
+ C 17.6838785,16.8161215 17.6857559,16.1857559 17.2947612,15.7947612
+ L 13.5,12
+ L13.5,12
+ Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/account_input_background.xml b/android/lib/resource/src/main/res/drawable/account_input_background.xml
new file mode 100644
index 0000000000..d31775f404
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_input_background.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_enabled="false">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/white20" />
+ </shape>
+ </item>
+ <item android:state_enabled="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/white" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/account_login_border.xml b/android/lib/resource/src/main/res/drawable/account_login_border.xml
new file mode 100644
index 0000000000..7aa3362f35
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_login_border.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/blue" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/account_login_border_error.xml b/android/lib/resource/src/main/res/drawable/account_login_border_error.xml
new file mode 100644
index 0000000000..7b0b225c85
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_login_border_error.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/red" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/account_login_border_focused.xml b/android/lib/resource/src/main/res/drawable/account_login_border_focused.xml
new file mode 100644
index 0000000000..fa32039e1d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_login_border_focused.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <solid android:color="@color/darkBlue" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/account_login_corner.xml b/android/lib/resource/src/main/res/drawable/account_login_corner.xml
new file mode 100644
index 0000000000..e4640e498d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_login_corner.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="@dimen/account_login_corner_radius"
+ android:height="@dimen/account_login_corner_radius"
+ android:viewportWidth="4.0"
+ android:viewportHeight="4.0">
+ <path android:fillColor="@color/blue"
+ android:pathData="M 0 4 H 2 A 2 2 0 0 1 4 2 V 0 H 0 Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/account_login_corner_error.xml b/android/lib/resource/src/main/res/drawable/account_login_corner_error.xml
new file mode 100644
index 0000000000..c19e1be609
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_login_corner_error.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="@dimen/account_login_corner_radius"
+ android:height="@dimen/account_login_corner_radius"
+ android:viewportWidth="4.0"
+ android:viewportHeight="4.0">
+ <path android:fillColor="@color/blue"
+ android:pathData="M 0 4 H 1 A 3 3 0 0 1 4 1 V 0 H 0 Z" />
+ <path android:fillColor="@color/red"
+ android:pathData="M 0 4 A 4 4 0 0 1 4 0 V 2 A 2 2 0 0 0 2 4 Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/account_login_corner_focused.xml b/android/lib/resource/src/main/res/drawable/account_login_corner_focused.xml
new file mode 100644
index 0000000000..a02110b51d
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/account_login_corner_focused.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="@dimen/account_login_corner_radius"
+ android:height="@dimen/account_login_corner_radius"
+ android:viewportWidth="4.0"
+ android:viewportHeight="4.0">
+ <path android:fillColor="@color/blue"
+ android:pathData="M 0 4 H 1 A 3 3 0 0 1 4 1 V 0 H 0 Z" />
+ <path android:fillColor="@color/darkBlue"
+ android:pathData="M 0 4 A 4 4 0 0 1 4 0 V 2 A 2 2 0 0 0 2 4 Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/app_list_item_background.xml b/android/lib/resource/src/main/res/drawable/app_list_item_background.xml
new file mode 100644
index 0000000000..a55c1e6d01
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/app_list_item_background.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false"
+ android:state_focused="false">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/blue40" />
+ </shape>
+ </item>
+ <item android:state_pressed="false"
+ android:state_focused="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/blue80" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/blue60" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/blue_button_background.xml b/android/lib/resource/src/main/res/drawable/blue_button_background.xml
new file mode 100644
index 0000000000..e87b080bee
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/blue_button_background.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false"
+ android:state_focused="false">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/blue80" />
+ </shape>
+ </item>
+ <item android:state_pressed="false"
+ android:state_focused="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/blue40" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/blue60" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/cell_button_background.xml b/android/lib/resource/src/main/res/drawable/cell_button_background.xml
new file mode 100644
index 0000000000..857a8386e1
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/cell_button_background.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false"
+ android:state_focused="false">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/blue" />
+ </shape>
+ </item>
+ <item android:state_pressed="false"
+ android:state_focused="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/blue60" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/blue80" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/cell_switch_background.xml b/android/lib/resource/src/main/res/drawable/cell_switch_background.xml
new file mode 100644
index 0000000000..c7b44ce746
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/cell_switch_background.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_enabled="false">
+ <shape android:shape="rectangle">
+ <corners android:radius="@dimen/cell_switch_border_radius" />
+ <stroke android:color="@color/white20"
+ android:width="2dp" />
+ <size android:width="@dimen/cell_switch_width"
+ android:height="@dimen/cell_switch_height" />
+ </shape>
+ </item>
+ <item android:state_enabled="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="@dimen/cell_switch_border_radius" />
+ <stroke android:color="@color/white"
+ android:width="2dp" />
+ <size android:width="@dimen/cell_switch_width"
+ android:height="@dimen/cell_switch_height" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/dialog_background.xml b/android/lib/resource/src/main/res/drawable/dialog_background.xml
new file mode 100644
index 0000000000..a552adc351
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/dialog_background.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<inset xmlns:android="http://schemas.android.com/apk/res/android"
+ android:insetTop="@dimen/dialog_margin"
+ android:insetLeft="@dimen/dialog_margin"
+ android:insetRight="@dimen/dialog_margin"
+ android:insetBottom="@dimen/dialog_margin">
+ <shape android:shape="rectangle">
+ <corners android:radius="11dp" />
+ <solid android:color="@color/darkBlue" />
+ </shape>
+</inset>
diff --git a/android/lib/resource/src/main/res/drawable/edit_text_background.xml b/android/lib/resource/src/main/res/drawable/edit_text_background.xml
new file mode 100644
index 0000000000..06252ac37c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/edit_text_background.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_enabled="false">
+ <inset android:insetTop="1dp"
+ android:insetBottom="1dp"
+ android:insetLeft="1dp"
+ android:insetRight="1dp">
+ <shape android:shape="rectangle">
+ <corners android:radius="@dimen/edit_text_corner_radius" />
+ <solid android:color="@color/white20" />
+ </shape>
+ </inset>
+ </item>
+ <item android:state_enabled="true">
+ <inset android:insetTop="1dp"
+ android:insetBottom="1dp"
+ android:insetLeft="1dp">
+ <shape android:shape="rectangle">
+ <corners android:radius="@dimen/edit_text_corner_radius" />
+ <solid android:color="@color/white" />
+ </shape>
+ </inset>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/green_button_background.xml b/android/lib/resource/src/main/res/drawable/green_button_background.xml
new file mode 100644
index 0000000000..b2a50d5678
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/green_button_background.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false"
+ android:state_focused="false">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/green" />
+ </shape>
+ </item>
+ <item android:state_pressed="false"
+ android:state_focused="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/green80" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/green90" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/ic_icons_add.xml b/android/lib/resource/src/main/res/drawable/ic_icons_add.xml
new file mode 100644
index 0000000000..97f0ca7fc7
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/ic_icons_add.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M13.05,5.66v5.29h5.29c0.513,0 0.99,0.398 0.99,0.99v0.12c0,0.578 -0.477,0.99 -0.99,0.99h-5.29v5.29c0,0.522 -0.412,0.989 -0.99,0.99l-0.12,-0.001c-0.59,0 -0.99,-0.467 -0.99,-0.989v-5.29H5.66c-0.534,0 -0.99,-0.427 -0.99,-0.99v-0.12c0,-0.559 0.456,-0.99 0.99,-0.99h5.29V5.66c0,-0.512 0.407,-0.99 0.99,-0.99h0.12c0.584,0 0.99,0.478 0.99,0.99zM12,24C5.373,24 0,18.627 0,12S5.373,0 12,0s12,5.373 12,12 -5.373,12 -12,12z"
+ android:fillColor="@android:color/white"
+ android:fillType="evenOdd" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/ic_icons_missing.xml b/android/lib/resource/src/main/res/drawable/ic_icons_missing.xml
new file mode 100644
index 0000000000..726a5c7f74
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/ic_icons_missing.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#D8D8D8"
+ android:fillType="nonZero"
+ android:pathData="M16.327,10.25l1.422,-2.519c0.124,-0.246 0.031,-0.547 -0.2,-0.673 -0.225,-0.12 -0.503,-0.048 -0.642,0.174l-1.453,2.567c-2.21,-0.959 -4.698,-0.959 -6.908,0L7.093,7.232c-0.147,-0.23 -0.448,-0.301 -0.672,-0.159 -0.216,0.143 -0.286,0.428 -0.17,0.658l1.422,2.52C5.277,11.652 3.716,14.18 3.5,17h17c-0.216,-2.82 -1.777,-5.347 -4.173,-6.75zM8.137,14.821c-0.534,0 -0.967,-0.443 -0.967,-0.99 0,-0.547 0.433,-0.99 0.966,-0.99 0.534,0 0.966,0.443 0.966,0.99 0,0.547 -0.432,0.99 -0.966,0.99zM15.864,14.821c-0.534,0 -0.966,-0.443 -0.966,-0.99 0,-0.547 0.432,-0.99 0.966,-0.99 0.533,0 0.966,0.443 0.966,0.99 0,0.547 -0.433,0.99 -0.966,0.99zM12,24C5.373,24 0,18.627 0,12S5.373,0 12,0s12,5.373 12,12 -5.373,12 -12,12z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/ic_icons_remove.xml b/android/lib/resource/src/main/res/drawable/ic_icons_remove.xml
new file mode 100644
index 0000000000..50b84ad42c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/ic_icons_remove.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M13.05,10.95h5.29c0.513,0 0.99,0.398 0.99,0.99v0.12c0,0.578 -0.477,0.99 -0.99,0.99H5.66c-0.534,0 -0.99,-0.427 -0.99,-0.99v-0.12c0,-0.559 0.456,-0.99 0.99,-0.99H13.05zM12,24C5.373,24 0,18.627 0,12S5.373,0 12,0s12,5.373 12,12 -5.373,12 -12,12z"
+ android:fillColor="@android:color/white"
+ android:fillType="evenOdd" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_account.xml b/android/lib/resource/src/main/res/drawable/icon_account.xml
new file mode 100644
index 0000000000..7fe5c11f05
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_account.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M12,24A12,12 0,0 1,3.515 3.515a12,12 0,1 1,16.97 16.97A11.922,11.922 0,0 1,12 24zM12,12.175a12.164,12.164 0,0 0,-2.873 0.348,17.625 17.625,0 0,0 -2.99,1.048A2.85,2.85 0,0 0,5 14.525a2.573,2.573 0,0 0,-0.442 1.512v0.791a1.39,1.39 0,0 0,1.4 1.4h12.1a1.392,1.392 0,0 0,1.4 -1.4v-0.791A2.567,2.567 0,0 0,19 14.525a2.809,2.809 0,0 0,-1.163 -0.954,19.906 19.906,0 0,0 -2.978,-1.036 11.634,11.634 0,0 0,-2.859 -0.36zM12,3.775a3.345,3.345 0,0 0,-3.49 3.491,3.346 3.346,0 0,0 3.49,3.49 3.348,3.348 0,0 0,3.49 -3.49A3.346,3.346 0,0 0,12 3.776z"
+ android:strokeWidth="1"
+ android:fillColor="#FFFFFF"
+ android:fillAlpha="0.8"
+ android:fillType="evenOdd"
+ android:strokeColor="#00000000" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_alert.xml b/android/lib/resource/src/main/res/drawable/icon_alert.xml
new file mode 100644
index 0000000000..f8e4a2c0b0
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_alert.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path android:fillColor="#E34039"
+ android:pathData="
+ m 12,24
+ c -6.627417,0 -12,-5.372583 -12,-12
+ s 5.372583,-12 12,-12 12,5.372583 12,12 -5.372583,12 -12,12
+ z
+ m 0,-19.5
+ c -0.8284271,0 -1.5,0.67157288 -1.5,1.5
+ v 7.5
+ c 0,0.8284271 0.6715729,1.5 1.5,1.5
+ s 1.5,-0.6715729 1.5,-1.5
+ v -7.5
+ c 0,-0.82842712 -0.6715729,-1.5 -1.5,-1.5
+ z
+ m 0,12
+ c -0.8284271,0 -1.5,0.6715729 -1.5,1.5
+ s 0.6715729,1.5 1.5,1.5 1.5,-0.6715729 1.5,-1.5 -0.6715729,-1.5 -1.5,-1.5
+ z
+ " />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_android.xml b/android/lib/resource/src/main/res/drawable/icon_android.xml
new file mode 100644
index 0000000000..c537369889
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_android.xml
@@ -0,0 +1,19 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path android:pathData="M24.8,45.6l-2,4.1l2.7,-3.8c0,0 -0.2,5.5 -0.2,5.5l0.8,-4.1c2.1,3.9 6.6,9.9 13,14.4c0.5,0.3 1.1,0.9 1.3,1.2c0,0 6.1,3.1 15.5,-4.1c0.1,-0.1 0.2,-0.1 0.3,-0.2l0.1,0.1l2.1,1.4c-0.7,-0.2 -2.1,-0.5 -2.1,-0.5c-4.5,5.2 -11.9,6.1 -15.8,3.4c-0.2,-0.1 -1.1,0.3 -1.3,0.9c-0.1,0.3 0,0.7 0.1,0.9c0.8,1.5 2,1.3 1.4,3.1c-0.4,0.9 -1,1.9 -1.6,2.7c-1.3,1.8 -3.4,3.3 -3.2,4.3c9.3,11.5 30.3,9.9 38.3,-0.4c-0.1,-1.5 -2.5,-2.2 -4.1,-5.8c0.5,0.1 1.1,0.3 1.1,0.3c0,0 -1.9,-3.2 -2,-3.5l1.3,0.1c0,0 -1.7,-2.1 -1.7,-2.3l1.7,-0.2c0,0 -2.1,-2.4 -2.1,-2.6l2.1,0.3l-2.3,-2.8h1.1L68,56l-10.7,-4.2c-4.1,-2.5 -7.7,-5.7 -10.5,-8.1l-5.5,-2.7c-5.3,-0.4 -10.2,-0.3 -13.3,0.3l1.9,-3.3l-2.8,3.4c-0.2,-0.1 -0.4,-0.1 -0.4,-0.1l0.2,-4.3l-0.9,4L24.8,45.6z"
+ android:fillColor="#D2943B"
+ android:fillType="evenOdd" />
+ <path android:pathData="M26.1,41.1c-1.4,-0.7 -3,0.3 -3.3,1.6c-0.3,1.2 0.5,2.7 2,2.9C26.3,44.7 27.5,42.4 26.1,41.1z"
+ android:fillColor="#FFCD86"
+ android:fillType="evenOdd" />
+ <path android:pathData="M46.9,38c-0.4,-1.2 -0.3,-2.7 0.3,-4.1c0.9,-2 2.5,-3.3 4,-3.3c0.3,0 0.6,0.1 0.9,0.2c0.9,-0.8 1.9,-1.5 3.1,-1.9c6.3,-2.5 15.5,2 17.9,8.1c1.1,3 0.8,6.3 -0.2,9.3c-0.8,2.5 -3.7,6 -2.6,8.7c-0.4,-0.1 -9.4,-3.1 -11.9,-4.5c-4,-2.5 -7.6,-5.6 -10.3,-8l-0.1,-0.1L38.7,38c-0.1,-0.1 -0.2,-0.1 -0.3,-0.2C39.7,37.9 44.7,38.5 46.9,38"
+ android:fillColor="#FFD524"
+ android:fillType="evenOdd" />
+ <path android:pathData="M48.99,38.86a3.9,2.3 113.62,1 0,3.13 -7.15a3.9,2.3 113.62,1 0,-3.13 7.15z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="M52.3,31.2c-1.5,-0.7 -3.5,0.6 -4.5,2.9c-1,2.3 -0.6,4.6 1,5.3c1.5,0.7 3.5,-0.6 4.5,-2.9S53.8,31.8 52.3,31.2zM52.5,36.1c-0.8,1.8 -2.3,2.9 -3.4,2.4c-1.1,-0.5 -1.3,-2.3 -0.5,-4.1c0.8,-1.8 2.3,-2.9 3.4,-2.4C53,32.5 53.3,34.3 52.5,36.1z"
+ android:fillColor="#192E45" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_android_mono.xml b/android/lib/resource/src/main/res/drawable/icon_android_mono.xml
new file mode 100644
index 0000000000..0d0aa38c12
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_android_mono.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path android:pathData="M74.2,74.5c-8,10.3 -29,11.9 -38.3,0.4c-0.2,-0.9 1.9,-2.5 3.2,-4.3c0.6,-0.9 1.2,-1.8 1.6,-2.7c0.6,-1.7 -0.6,-1.6 -1.4,-3.1c-0.1,-0.3 -0.3,-0.6 -0.1,-0.9c0.2,-0.6 1.1,-1 1.3,-0.9c3.9,2.6 11.3,1.8 15.8,-3.4c0,0 1.4,0.3 2.1,0.5l-2.1,-1.4l-0.1,-0.1c-0.1,0.1 -0.2,0.1 -0.3,0.2c-9.4,7.1 -15.5,4.1 -15.5,4.1c-0.2,-0.2 -0.8,-0.8 -1.3,-1.2c-6.4,-4.5 -10.9,-10.5 -13,-14.4l-0.8,4.1l0.2,-5.5l-2.7,3.8l2,-4.1c-1.5,-0.2 -2.4,-1.7 -2,-2.9c0.3,-1.3 1.9,-2.2 3.3,-1.6l0.9,-4l-0.2,4.3c0,0 0.2,0.1 0.4,0.1l2.8,-3.4l-1.9,3.3c3,-0.6 8,-0.7 13.3,-0.3l5.5,2.7c2.7,2.4 6.4,5.5 10.5,8.1L67.9,56l1.3,1.9h-1.1l2.3,2.8l-2.1,-0.3c0,0.2 2.1,2.6 2.1,2.6l-1.7,0.2c0.1,0.2 1.7,2.3 1.7,2.3l-1.3,-0.1c0.1,0.3 2,3.5 2,3.5s-0.7,-0.2 -1.1,-0.3C71.7,72.3 74.1,73 74.2,74.5zM72.8,46.2c-0.8,2.5 -3.7,6 -2.6,8.7c-0.4,-0.1 -9.4,-3.1 -11.9,-4.5c-4,-2.5 -7.6,-5.6 -10.3,-8l-0.1,-0.1L38.6,38c-0.1,-0.1 -0.2,-0.1 -0.3,-0.2c1.3,0.1 6.3,0.7 8.5,0.2c-0.4,-1.2 -0.3,-2.7 0.3,-4.1c0.9,-2 2.5,-3.3 4,-3.3c0.3,0 0.6,0.1 0.9,0.2c0.9,-0.8 1.9,-1.5 3.1,-1.9c6.3,-2.5 15.5,2 17.9,8.1C74.1,40 73.8,43.2 72.8,46.2zM52,31.6c-1.4,-0.6 -3.2,0.5 -4,2.6c-0.9,2 -0.5,4.1 0.9,4.7c1.3,0.6 3.2,-0.5 4,-2.6C53.7,34.3 53.3,32.1 52,31.6z"
+ android:fillColor="#000000"
+ android:fillType="evenOdd" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml b/android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml
new file mode 100644
index 0000000000..1fc5f8c1a1
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_arrow_blue20.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="16dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="16.0">
+ <group>
+ <path android:fillColor="#33294D73"
+ android:pathData="M18.7015867,9 L14.4331381,12.762659 C13.851665,13.2752305 13.8579999,14.1003943 14.4392669,14.612784 C15.0245863,15.1287461 15.9602099,15.1275926 16.5380921,14.6181865 L23.5668627,8.42228969 C23.8565791,8.16690324 24.000373,7.83391619 23.999837,7.50067932 L24,7.4966702 C23.999589,7.16348359 23.8547954,6.83138119 23.5668627,6.57756713 L16.5380921,0.381670278 C15.956619,-0.130901228 15.0205338,-0.125317014 14.4392669,0.387072772 C13.8539474,0.903034846 13.8552559,1.72779176 14.4331381,2.23719784 L18.7017491,6 L1.50909424,6 C0.66354084,6 0,6.67157288 0,7.5 C0,8.33420277 0.675644504,9 1.50909424,9 L18.7015867,9 Z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_arrow_white.xml b/android/lib/resource/src/main/res/drawable/icon_arrow_white.xml
new file mode 100644
index 0000000000..8b0a0e5f20
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_arrow_white.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="16dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="16.0">
+ <group>
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M18.7015867,9 L14.4331381,12.762659 C13.851665,13.2752305 13.8579999,14.1003943 14.4392669,14.612784 C15.0245863,15.1287461 15.9602099,15.1275926 16.5380921,14.6181865 L23.5668627,8.42228969 C23.8565791,8.16690324 24.000373,7.83391619 23.999837,7.50067932 L24,7.4966702 C23.999589,7.16348359 23.8547954,6.83138119 23.5668627,6.57756713 L16.5380921,0.381670278 C15.956619,-0.130901228 15.0205338,-0.125317014 14.4392669,0.387072772 C13.8539474,0.903034846 13.8552559,1.72779176 14.4331381,2.23719784 L18.7017491,6 L1.50909424,6 C0.66354084,6 0,6.67157288 0,7.5 C0,8.33420277 0.675644504,9 1.50909424,9 L18.7015867,9 Z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_back.xml b/android/lib/resource/src/main/res/drawable/icon_back.xml
new file mode 100644
index 0000000000..7b5534c928
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_back.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M12,24C5.3731,24 -0,18.6269 -0,12C-0,5.3731 5.3731,0 12,0C18.6269,0 24,5.3731 24,12C24,18.6269 18.6269,24 12,24ZM7.0055,11.9979C6.9755,12.2732 7.0685,12.5604 7.2852,12.7774L13.2129,18.7118C13.5936,19.0929 14.2231,19.0908 14.6233,18.7027L14.6942,18.634C15.0925,18.2478 15.1055,17.6196 14.7109,17.218L9.5805,11.9979L14.7109,6.7777C15.1055,6.3762 15.0925,5.7479 14.6942,5.3618L14.6233,5.293C14.2231,4.9049 13.5936,4.9028 13.2129,5.2839L7.2852,11.2184C7.0685,11.4353 6.9755,11.7225 7.0055,11.9979L7.0055,11.9979Z"
+ android:strokeWidth="1"
+ android:fillColor="#FFFFFF"
+ android:fillAlpha="0.6"
+ android:fillType="evenOdd"
+ android:strokeColor="#00000000" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_chevron.xml b/android/lib/resource/src/main/res/drawable/icon_chevron.xml
new file mode 100644
index 0000000000..8c0fc11d10
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_chevron.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="14dp"
+ android:height="24dp"
+ android:viewportWidth="14.0"
+ android:viewportHeight="24.0">
+ <group android:translateX="4.0"
+ android:translateY="6.0">
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M0.335204989,1.95371785 L4.23669259,6 L0.335204989,10.0462822 C-0.111734996,10.4932221 -0.111734996,11.217855 0.335204989,11.664795 C0.782144974,12.111735 1.49826561,12.111735 1.9452056,11.664795 L6.66818642,6.80553188 C6.88657769,6.58714061 6.99779844,6.29559541 6.99881099,6.00303766 C6.99779844,5.70440459 6.88657769,5.41285939 6.66818642,5.19446812 L1.9452056,0.335204989 C1.49826561,-0.111734996 0.782144974,-0.111734996 0.335204989,0.335204989 C-0.111734996,0.782144974 -0.111734996,1.50677786 0.335204989,1.95371785 Z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_close.xml b/android/lib/resource/src/main/res/drawable/icon_close.xml
new file mode 100644
index 0000000000..7de0a4ac04
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_close.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path android:fillColor="#99FFFFFF"
+ android:pathData="
+ M 12,24
+ C 5.37312,24 0,18.62688 0,12
+ C 0,5.37312 5.37312,0 12,0
+ C 18.62688,0 24,5.37312 24,12
+ C 24,18.62688 18.62688,24 12,24
+ Z
+ M 13.5,12
+ L 17.2947612,8.20523878
+ C 17.6857559,7.81424414 17.6838785,7.18387854 17.293923,6.79392296
+ L 17.206077,6.70607704
+ C 16.8181114,6.31811142 16.1842538,6.31574616 15.7947612,6.70523878
+ L 12,10.5
+ L 8.20523878,6.70523878
+ C 7.81574616,6.31574616 7.18188858,6.31811142 6.79392296,6.70607704
+ L 6.70607704,6.79392296
+ C 6.31612146,7.18387854 6.31424414,7.81424414 6.70523878,8.20523878
+ L 10.5,12
+ L 6.70523878,15.7947612
+ C 6.31424414,16.1857559 6.31612146,16.8161215 6.70607704,17.206077
+ L 6.79392296,17.293923
+ C 7.18188858,17.6818886 7.81574616,17.6842538 8.20523878,17.2947612
+ L 12,13.5
+ L 15.7947612,17.2947612
+ C 16.1842538,17.6842538 16.8181114,17.6818886 17.206077,17.293923
+ L 17.293923,17.206077
+ C 17.6838785,16.8161215 17.6857559,16.1857559 17.2947612,15.7947612
+ L 13.5,12
+ L13.5,12
+ Z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_copy.xml b/android/lib/resource/src/main/res/drawable/icon_copy.xml
new file mode 100644
index 0000000000..4a919a00b8
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_copy.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M15.789,2.737L5.684,2.737A1.689,1.689 0,0 0,4 4.421v11.79a0.749,0.749 0,0 0,0.829 0.736,0.812 0.812,0 0,0 0.855,-0.736L5.684,4.421h10.105a0.9,0.9 0,0 0,0.832 -0.825,0.91 0.91,0 0,0 -0.832,-0.859zM18.315,6.105L9.053,6.105a1.689,1.689 0,0 0,-1.685 1.685v11.789a1.689,1.689 0,0 0,1.684 1.684h9.263A1.689,1.689 0,0 0,20 19.579L20,7.79a1.689,1.689 0,0 0,-1.684 -1.685zM18.315,19.579L9.053,19.579L9.053,7.79h9.263z"
+ android:fillColor="@android:color/white" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_extlink.xml b/android/lib/resource/src/main/res/drawable/icon_extlink.xml
new file mode 100644
index 0000000000..3d31a523b2
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_extlink.xml
@@ -0,0 +1,9 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="16dp"
+ android:height="16dp"
+ android:viewportWidth="16"
+ android:viewportHeight="16">
+ <path android:pathData="M12.5858,2L8.9908,2C8.451,2 8,1.5523 8,1C8,0.4439 8.4464,0 8.997,0L15.003,0C15.547,0 16,0.4464 16,0.997L16,7.003C16,7.547 15.5523,8 15,8C14.4439,8 14,7.5564 14,7.0092L14,3.4142L6.7071,10.7071C6.3166,11.0976 5.6834,11.0976 5.2929,10.7071C4.9024,10.3166 4.9024,9.6834 5.2929,9.2929L12.5858,2ZM8.4645,4L6.4645,6L2,6L2,14L10,14L10,9.5355L12,7.5355L12,14.9975C12,15.5512 11.5442,16 10.9975,16L1.0025,16C0.4488,16 0,15.5442 0,14.9975L0,5.0025C0,4.4488 0.4558,4 1.0025,4L8.4645,4Z"
+ android:fillColor="#FFFFFF"
+ android:fillType="evenOdd" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_fail.xml b/android/lib/resource/src/main/res/drawable/icon_fail.xml
new file mode 100644
index 0000000000..b3bb63843b
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_fail.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="60dp"
+ android:height="60dp"
+ android:viewportWidth="60.0"
+ android:viewportHeight="60.0">
+ <group>
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M8 30 a 22,22 0 1,0 44,0 a 22,22 0 1,0 -44,0 Z" />
+ <path android:fillColor="#E34039"
+ android:pathData="M33.2371523,30 L41.337119,21.9033278 C42.2203329,21.020473 42.223948,19.5681264 41.3300331,18.6745751 C40.429886,17.774794 38.9899682,17.7778525 38.0999667,18.6674921 L30,26.7641643 L21.9000333,18.6674921 C21.0100318,17.7778525 19.570114,17.774794 18.6699669,18.6745751 C17.776052,19.5681264 17.7796671,21.020473 18.662881,21.9033278 L26.7628477,30 L18.662881,38.0966722 C17.7796671,38.979527 17.776052,40.4318736 18.6699669,41.3254249 C19.570114,42.225206 21.0100318,42.2221475 21.9000333,41.3325079 L30,33.2358357 L38.0999667,41.3325079 C38.9899682,42.2221475 40.429886,42.225206 41.3300331,41.3254249 C42.223948,40.4318736 42.2203329,38.979527 41.337119,38.0966722 L33.2371523,30 Z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_hide.xml b/android/lib/resource/src/main/res/drawable/icon_hide.xml
new file mode 100644
index 0000000000..b16cceff5c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_hide.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M12,6a9.77,9.77 0,0 1,8.82 5.5,9.647 9.647,0 0,1 -2.41,3.12l1.41,1.41A11.8,11.8 0,0 0,23 11.5,11.834 11.834,0 0,0 8.36,4.57l1.65,1.65A10.108,10.108 0,0 1,12 6zM10.93,7.14L13,9.21a2.5,2.5 0,0 1,1.28 1.28l2.07,2.07a4.679,4.679 0,0 0,0.14 -1.07A4.483,4.483 0,0 0,12 7a4.244,4.244 0,0 0,-1.07 0.14zM2.01,3.87l2.68,2.68A11.738,11.738 0,0 0,1 11.5,11.827 11.827,0 0,0 12,19a11.73,11.73 0,0 0,4.32 -0.82l3.42,3.42a1,1 0,0 0,1.41 -1.41C20.8,19.807 3.791,2.777 3.42,2.45a1.1,1.1 0,0 0,-1.41 0,1.045 1.045,0 0,0 0,1.42zM9.51,11.37 L12.12,13.98A0.5,0.5 0,0 1,12 14a2.5,2.5 0,0 1,-2.5 -2.5c0,-0.05 0.01,-0.08 0.01,-0.13zM6.11,7.97 L7.86,9.72a4.6,4.6 0,0 0,-0.36 1.78,4.505 4.505,0 0,0 6.27,4.14l0.98,0.98A10.432,10.432 0,0 1,12 17a9.77,9.77 0,0 1,-8.82 -5.5,9.9 9.9,0 0,1 2.93,-3.53z"
+ android:fillColor="@android:color/white" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_info.xml b/android/lib/resource/src/main/res/drawable/icon_info.xml
new file mode 100644
index 0000000000..98f45776a3
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_info.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M12,24A12,12 0,0 1,3.515 3.515a12,12 0,1 1,16.97 16.97A11.922,11.922 0,0 1,12 24zM12,9a1.5,1.5 0,0 0,-1.5 1.5L10.5,18a1.5,1.5 0,1 0,3 0v-7.5A1.5,1.5 0,0 0,12 9zM12,4.5A1.5,1.5 0,1 0,13.5 6,1.5 1.5,0 0,0 12,4.5z"
+ android:fillColor="#294d73" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_notification_connect.xml b/android/lib/resource/src/main/res/drawable/icon_notification_connect.xml
new file mode 100644
index 0000000000..85f7bc9da0
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_notification_connect.xml
@@ -0,0 +1,36 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32dp"
+ android:height="32dp"
+ android:viewportWidth="32.0"
+ android:viewportHeight="32.0"
+ android:tint="?attr/colorControlNormal">
+ <group android:translateX="16.0"
+ android:translateY="16.0"
+ android:scaleX="1.25"
+ android:scaleY="1.25">
+ <path android:fillColor="#000000"
+ android:fillType="evenOdd"
+ android:pathData="
+ M -4,-1
+ v -6
+ a 1,1 0 0,1 1,-1
+ h 6
+ a 1,1 0 0,1 1,1
+ v 6
+ h 1
+ a 1,1 0 0,1 1,1
+ v 7
+ a 1,1 0 0,1 -1,1
+ h -10
+ a 1,1 0 0,1 -1,-1
+ v -7
+ a 1,1 0 0,1 1,-1
+ z
+ M -2,-1
+ v -5
+ h 4
+ v 5
+ z
+ " />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_notification_disconnect.xml b/android/lib/resource/src/main/res/drawable/icon_notification_disconnect.xml
new file mode 100644
index 0000000000..e90330cdaf
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_notification_disconnect.xml
@@ -0,0 +1,34 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="32dp"
+ android:height="32dp"
+ android:viewportWidth="32.0"
+ android:viewportHeight="32.0"
+ android:tint="?attr/colorControlNormal">
+ <group android:translateX="16.0"
+ android:translateY="16.0"
+ android:scaleX="1.25"
+ android:scaleY="1.25">
+ <path android:fillColor="#000000"
+ android:pathData="
+ M 0,-1
+ v -6
+ a 1,1 0 0,1 1,-1
+ h 6
+ a 1,1 0 0,1 1,1
+ v 6
+ a 1,1 0 0,1 -2,0
+ v -5
+ h -4
+ v 5
+ h 1
+ a 1,1 0 0,1 1,1
+ v 7
+ a 1,1 0 0,1 -1,1
+ h -10
+ a 1,1 0 0,1 -1,-1
+ v -7
+ a 1,1 0 0,1 1,-1
+ z
+ " />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_notification_error.xml b/android/lib/resource/src/main/res/drawable/icon_notification_error.xml
new file mode 100644
index 0000000000..7574392129
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_notification_error.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid android:color="@color/red" />
+ <size android:width="10dp"
+ android:height="10dp" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/icon_notification_warning.xml b/android/lib/resource/src/main/res/drawable/icon_notification_warning.xml
new file mode 100644
index 0000000000..c6baa04c1c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_notification_warning.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="oval">
+ <solid android:color="@color/yellow" />
+ <size android:width="10dp"
+ android:height="10dp" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/icon_reload.xml b/android/lib/resource/src/main/res/drawable/icon_reload.xml
new file mode 100644
index 0000000000..0800d557ff
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_reload.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="22dp"
+ android:height="22dp"
+ android:viewportWidth="512.0"
+ android:viewportHeight="512.0">
+ <path android:fillColor="#FFFFFFFF"
+ android:pathData="M 256.455 8 c 66.269 0.119 126.437 26.233 170.859 68.685 l 35.715 -35.715 C 478.149 25.851 504 36.559 504 57.941 V 192 c 0 13.255 -10.745 24 -24 24 H 345.941 c -21.382 0 -32.09 -25.851 -16.971 -40.971 l 41.75 -41.75 c -30.864 -28.899 -70.801 -44.907 -113.23 -45.273 -92.398 -0.798 -170.283 73.977 -169.484 169.442 C 88.764 348.009 162.184 424 256 424 c 41.127 0 79.997 -14.678 110.629 -41.556 4.743 -4.161 11.906 -3.908 16.368 0.553 l 39.662 39.662 c 4.872 4.872 4.631 12.815 -0.482 17.433 C 378.202 479.813 319.926 504 256 504 119.034 504 8.001 392.967 8 256.002 7.999 119.193 119.646 7.755 256.455 8 z" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_settings.xml b/android/lib/resource/src/main/res/drawable/icon_settings.xml
new file mode 100644
index 0000000000..3d670e5124
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_settings.xml
@@ -0,0 +1,12 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M21.2552,12C21.2552,12.408 21.2182,12.792 21.1688,13.176L23.7719,15.156C24.0063,15.336 24.068,15.66 23.9199,15.924L21.4526,20.076C21.3045,20.34 20.9838,20.448 20.7001,20.34L17.6282,19.14C16.9867,19.608 16.2959,20.016 15.5433,20.316L15.0745,23.496C15.0375,23.784 14.7785,24 14.4701,24L9.5354,24C9.227,24 8.9679,23.784 8.9309,23.496L8.4621,20.316C7.7096,20.016 7.0187,19.62 6.3772,19.14L3.3054,20.34C3.034,20.436 2.7009,20.34 2.5529,20.076L0.0855,15.924C-0.0625,15.66 -0.0008,15.336 0.2336,15.156L2.8366,13.176C2.7873,12.792 2.7502,12.396 2.7502,12C2.7502,11.604 2.7873,11.208 2.8366,10.824L0.2336,8.844C-0.0008,8.664 -0.0748,8.34 0.0855,8.076L2.5529,3.924C2.7009,3.66 3.0217,3.552 3.3054,3.66L6.3772,4.86C7.0187,4.392 7.7096,3.984 8.4621,3.684L8.9309,0.504C8.9679,0.216 9.227,0 9.5354,0L14.4701,0C14.7785,0 15.0375,0.216 15.0745,0.504L15.5433,3.684C16.2959,3.984 16.9867,4.38 17.6282,4.86L20.7001,3.66C20.9715,3.564 21.3046,3.66 21.4526,3.924L23.9199,8.076C24.068,8.34 24.0063,8.664 23.7719,8.844L21.1688,10.824C21.2182,11.208 21.2552,11.592 21.2552,12ZM12,17C14.7571,17 17,14.7571 17,12C17,9.2429 14.7571,7 12,7C9.2429,7 7,9.2429 7,12C7,14.7571 9.2429,17 12,17Z"
+ android:strokeWidth="1"
+ android:fillColor="#FFFFFF"
+ android:fillAlpha="0.8"
+ android:fillType="evenOdd"
+ android:strokeColor="#00000000" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_show.xml b/android/lib/resource/src/main/res/drawable/icon_show.xml
new file mode 100644
index 0000000000..9535f0287b
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_show.xml
@@ -0,0 +1,8 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:pathData="M12,6a9.77,9.77 0,0 1,8.82 5.5,9.822 9.822,0 0,1 -17.64,0A9.77,9.77 0,0 1,12 6m0,-2a11.827,11.827 0,0 0,-11 7.5,11.817 11.817,0 0,0 22,0A11.827,11.827 0,0 0,12 4zM12,9a2.5,2.5 0,1 1,-2.5 2.5A2.5,2.5 0,0 1,12 9m0,-2a4.5,4.5 0,1 0,4.5 4.5A4.507,4.507 0,0 0,12 7z"
+ android:fillColor="@android:color/white" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_spinner.xml b/android/lib/resource/src/main/res/drawable/icon_spinner.xml
new file mode 100644
index 0000000000..2475c4ef3c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_spinner.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<rotate xmlns:android="http://schemas.android.com/apk/res/android"
+ android:fromDegrees="0"
+ android:toDegrees="360"
+ android:pivotX="50%"
+ android:pivotY="50%">
+ <vector android:width="60dp"
+ android:height="60dp"
+ android:viewportWidth="60.0"
+ android:viewportHeight="60.0">
+ <group>
+ <path android:fillColor="#33FFFFFF"
+ android:pathData="M27.6038221,6.11991768 C40.7924274,4.79654517 52.5567098,14.4152168 53.8800823,27.6038221 C55.2034548,40.7924274 45.5847832,52.5567098 32.3961779,53.8800823 C19.2075726,55.2034548 7.4432902,45.5847832 6.11991768,32.3961779 C4.79654517,19.2075726 14.4152168,7.4432902 27.6038221,6.11991768 Z M28.4025481,14.0799451 C19.6101445,14.9621935 13.1976968,22.8050484 14.0799451,31.5974519 C14.9621935,40.3898555 22.8050484,46.8023032 31.5974519,45.9200549 C40.3898555,45.0378065 46.8023032,37.1949516 45.9200549,28.4025481 C45.0378065,19.6101445 37.1949516,13.1976968 28.4025481,14.0799451 Z" />
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M25.2028561,6.48431564 C12.2155023,9.13370504 3.83492624,21.80979 6.48431564,34.7971439 C9.13370504,47.7844977 21.80979,56.1650738 34.7971439,53.5156844 C44.2988591,51.577357 51.5941458,44.163762 53.514681,34.8276709 C53.9598043,32.6638409 52.5665172,30.5488664 50.4026872,30.1037431 C48.2388572,29.6586198 46.1238826,31.0519068 45.6787593,33.2157369 C44.3979534,39.441981 39.5342463,44.3845633 33.1980959,45.6771229 C24.53986,47.4433825 16.0891367,41.8563318 14.3228771,33.1980959 C12.5566175,24.53986 18.1436682,16.0891367 26.8019041,14.3228771 C28.9664631,13.8813122 30.3632257,11.7686314 29.9216608,9.60407239 C29.4800959,7.43951342 27.3674151,6.04275074 25.2028561,6.48431564 Z" />
+ </group>
+ </vector>
+</rotate>
diff --git a/android/lib/resource/src/main/res/drawable/icon_success.xml b/android/lib/resource/src/main/res/drawable/icon_success.xml
new file mode 100644
index 0000000000..4f5fdaae34
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_success.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="60dp"
+ android:height="60dp"
+ android:viewportWidth="60.0"
+ android:viewportHeight="60.0">
+ <group>
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M8 30 a 22,22 0 1,0 44,0 a 22,22 0 1,0 -44,0 Z" />
+ <path android:fillColor="#44AD4D"
+ android:pathData="M19.4142136,28.5857864 C18.633165,27.8047379 17.366835,27.8047379 16.5857864,28.5857864 C15.8047379,29.366835 15.8047379,30.633165 16.5857864,31.4142136 L24.5857864,39.4142136 C25.366835,40.1952621 26.633165,40.1952621 27.4142136,39.4142136 L43.4142136,23.4142136 C44.1952621,22.633165 44.1952621,21.366835 43.4142136,20.5857864 C42.633165,19.8047379 41.366835,19.8047379 40.5857864,20.5857864 L26,35.1715729 L19.4142136,28.5857864 Z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icon_tick.xml b/android/lib/resource/src/main/res/drawable/icon_tick.xml
new file mode 100644
index 0000000000..8185727a1c
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icon_tick.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8"?>
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <group>
+ <path android:fillColor="#FFFFFF"
+ android:pathData="M2.92646877,10.7979185 C2.25699855,10.1340272 1.17157288,10.1340272 0.502102661,10.7979185 C-0.167367554,11.4618098 -0.167367554,12.5381902 0.502102661,13.2020815 L7.35924552,20.0020815 C8.02871573,20.6659728 9.11414141,20.6659728 9.78361162,20.0020815 L23.4978973,6.40208153 C24.1673676,5.73819023 24.1673676,4.66180977 23.4978973,3.99791847 C22.8284271,3.33402718 21.7430014,3.33402718 21.0735312,3.99791847 L8.57142857,16.3958369 L2.92646877,10.7979185 Z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/icons_search.xml b/android/lib/resource/src/main/res/drawable/icons_search.xml
new file mode 100644
index 0000000000..732c13f4d2
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/icons_search.xml
@@ -0,0 +1,22 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+ <path android:fillColor="#D8D8D8"
+ android:fillType="evenOdd"
+ android:pathData="M10.5,3C14.642,3 18,6.358 18,10.5c0,1.77 -0.613,3.397 -1.64,4.68l4.169,4.294c0.55,0.566 0.54,1.487 -0.02,2.057 -0.56,0.57 -1.46,0.574 -2.01,0.008l-4.352,-4.484c-1.08,0.602 -2.323,0.945 -3.647,0.945C6.358,18 3,14.642 3,10.5 3,6.358 6.358,3 10.5,3zM10.5,5C7.462,5 5,7.462 5,10.5S7.462,16 10.5,16 16,13.538 16,10.5 13.538,5 10.5,5z" />
+ <group>
+ <clip-path android:pathData="M10.5,3C14.642,3 18,6.358 18,10.5c0,1.77 -0.613,3.397 -1.64,4.68l4.169,4.294c0.55,0.566 0.54,1.487 -0.02,2.057 -0.56,0.57 -1.46,0.574 -2.01,0.008l-4.352,-4.484c-1.08,0.602 -2.323,0.945 -3.647,0.945C6.358,18 3,14.642 3,10.5 3,6.358 6.358,3 10.5,3zM10.5,5C7.462,5 5,7.462 5,10.5S7.462,16 10.5,16 16,13.538 16,10.5 13.538,5 10.5,5z" />
+ <path android:fillColor="#294D73"
+ android:fillType="evenOdd"
+ android:pathData="M0,0H24V24H0z" />
+ </group>
+ <group>
+ <clip-path android:pathData="M11.604,3.299C15.715,3.804 18.639,7.546 18.134,11.657c-0.216,1.757 -1.022,3.297 -2.198,4.445l3.615,4.77c0.477,0.629 0.355,1.542 -0.271,2.039 -0.625,0.498 -1.519,0.392 -1.996,-0.237l-3.773,-4.981c-1.145,0.466 -2.421,0.655 -3.735,0.493C5.665,17.682 2.741,13.94 3.246,9.829 3.751,5.718 7.493,2.794 11.604,3.299zM11.36,5.284C8.345,4.914 5.601,7.057 5.231,10.073S7.004,15.832 10.02,16.202 15.779,14.429 16.149,11.413 14.376,5.654 11.36,5.284z" />
+ <path android:fillAlpha="0.2"
+ android:fillColor="#FBFCFD"
+ android:fillType="evenOdd"
+ android:pathData="M11.22,15.518s-3.072,-0.351 -4.658,-2.381c-0.509,-0.652 -0.698,-2.087 -0.566,-4.305 0.349,1.468 0.949,2.774 1.802,3.917 1.325,1.697 3.422,2.77 3.422,2.77z" />
+ </group>
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/input_text_background.xml b/android/lib/resource/src/main/res/drawable/input_text_background.xml
new file mode 100644
index 0000000000..d4b4b3c595
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/input_text_background.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/white" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/login_button_arrow.xml b/android/lib/resource/src/main/res/drawable/login_button_arrow.xml
new file mode 100644
index 0000000000..1909b78fe7
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/login_button_arrow.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_enabled="false"
+ android:drawable="@drawable/icon_arrow_blue20" />
+ <item android:state_enabled="true"
+ android:drawable="@drawable/icon_arrow_white" />
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/login_button_background.xml b/android/lib/resource/src/main/res/drawable/login_button_background.xml
new file mode 100644
index 0000000000..c1041ef523
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/login_button_background.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:shape="rectangle">
+ <item android:state_enabled="false">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/white" />
+ </shape>
+ </item>
+ <item android:state_enabled="true">
+ <shape android:shape="rectangle">
+ <solid android:color="@color/green" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/logo_text.xml b/android/lib/resource/src/main/res/drawable/logo_text.xml
new file mode 100644
index 0000000000..aacefa3579
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/logo_text.xml
@@ -0,0 +1,26 @@
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="959.5dp"
+ android:height="103.7dp"
+ android:viewportWidth="959.5"
+ android:viewportHeight="103.7">
+ <path android:pathData="m0,1.6c0,-0.9 0.6,-1.5 1.5,-1.5h17.8c1.2,0 2,0.4 2.4,1.5l25.8,58.2h0.6l25.3,-58.2c0.4,-1 1.2,-1.5 2.4,-1.5h17.5c0.9,0 1.5,0.6 1.5,1.5v99c0,0.9 -0.6,1.5 -1.5,1.5h-17c-0.9,0 -1.5,-0.6 -1.5,-1.5v-57.4h-0.6l-18.9,43c-0.6,1.4 -1.5,2 -2.8,2h-10.3c-1.3,0 -2.2,-0.6 -2.8,-2l-18.9,-43h-0.6v57.4c0,0.9 -0.6,1.5 -1.5,1.5h-16.9c-0.9,0 -1.5,-0.6 -1.5,-1.5z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m117,64.6v-63c0,-0.9 0.6,-1.5 1.5,-1.5h19c0.9,0 1.5,0.6 1.5,1.5v63.6c0,12.1 6.8,19 17.1,19 10.2,0 16.9,-6.9 16.9,-19v-63.6c0,-0.9 0.6,-1.5 1.5,-1.5h19c0.9,0 1.5,0.6 1.5,1.5v63c0,25.3 -16.2,39.1 -39,39.1s-39,-13.8 -39,-39.1z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m217.2,1.6c0,-0.9 0.6,-1.5 1.5,-1.5h19c0.9,0 1.5,0.6 1.5,1.5v79.9c0,0.6 0.3,0.9 0.9,0.9h45c0.9,0 1.5,0.6 1.5,1.5v16.6c0,0.9 -0.6,1.5 -1.5,1.5h-66.4c-0.9,0 -1.5,-0.6 -1.5,-1.5z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m302.7,1.6c0,-0.9 0.6,-1.5 1.5,-1.5h19c0.9,0 1.5,0.6 1.5,1.5v79.9c0,0.6 0.3,0.9 0.9,0.9h45c0.9,0 1.5,0.6 1.5,1.5v16.6c0,0.9 -0.6,1.5 -1.5,1.5h-66.4c-0.9,0 -1.5,-0.6 -1.5,-1.5z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m403.7,102c-1,0 -1.6,-0.6 -1.9,-1.5l-32.4,-98.8c-0.3,-1.1 0.3,-1.6 1.3,-1.6h19.5c1,0 1.7,0.4 2,1.5l20.4,66.9h0.4l19.8,-66.9c0.3,-1 0.9,-1.5 1.9,-1.5h19.3c0.9,0 1.5,0.6 1.2,1.6l-32.4,98.8c-0.3,0.9 -0.9,1.5 -1.8,1.5z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m491.1,1.6c0.3,-0.9 0.9,-1.5 2,-1.5h18.9c1,0 1.6,0.6 1.9,1.5l34.5,99c0.3,0.9 0,1.5 -1,1.5h-19.5c-1,0 -1.7,-0.5 -2,-1.5l-5.8,-17.8h-35.7l-5.7,17.8c-0.3,1 -0.9,1.5 -2,1.5h-19.6c-1,0 -1.3,-0.6 -1,-1.5zM514.1,64 L502.6,28.3h-0.4l-11.5,35.7z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m563.3,1.6c0,-0.9 0.6,-1.5 1.5,-1.5h37.9c17.8,0 30.3,7.6 35.2,22.9 1.8,5.7 2.7,11.4 2.7,28s-0.9,22.3 -2.7,28c-4.9,15.3 -17.4,22.9 -35.2,22.9h-37.9c-0.9,0 -1.5,-0.6 -1.5,-1.5zM586.2,82.4h11.5c10.2,0 16.3,-3 18.9,-11.2 1,-3 1.7,-6.9 1.7,-20.1s-0.6,-17.1 -1.7,-20.1c-2.5,-8.2 -8.7,-11.2 -18.9,-11.2h-11.5c-0.6,0 -0.9,0.3 -0.9,0.9v60.9c0,0.5 0.3,0.8 0.9,0.8z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m721.1,102c-1.1,0 -1.7,-0.6 -2,-1.5l-32.4,-98.8c-0.3,-1.1 0.3,-1.6 1.3,-1.6h19.5c1,0 1.7,0.4 2,1.5l20.4,66.9h0.4l19.8,-66.9c0.3,-1 0.9,-1.5 1.9,-1.5h19.3c0.9,0 1.5,0.6 1.2,1.6l-32.4,98.8c-0.3,0.9 -0.9,1.5 -1.8,1.5z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m788.6,102c-0.9,0 -1.5,-0.6 -1.5,-1.5v-99c0,-0.9 0.6,-1.5 1.5,-1.5h39.6c22.2,0 35.5,13.3 35.5,32.8 0,19.2 -13.5,32.7 -35.5,32.7h-18.1c-0.6,0 -0.9,0.3 -0.9,0.9v34c0,0.9 -0.6,1.5 -1.5,1.5h-19.1zM841.7,32.9c0,-8.2 -5.5,-13.8 -14.8,-13.8h-16.8c-0.6,0 -0.9,0.3 -0.9,0.9v25.6c0,0.6 0.3,0.9 0.9,0.9h16.8c9.2,0.1 14.8,-5.3 14.8,-13.6z"
+ android:fillColor="#FFFFFF" />
+ <path android:pathData="m880.8,1.6c0,-0.9 0.6,-1.5 1.5,-1.5h18c1,0 2,0.4 2.5,1.5l36,64.2h0.8v-64.2c0,-0.9 0.6,-1.5 1.5,-1.5h16.9c0.9,0 1.5,0.6 1.5,1.5v99c0,0.9 -0.6,1.5 -1.5,1.5h-17.8c-1.2,0 -2,-0.5 -2.5,-1.5l-36.1,-64h-0.8v64c0,0.9 -0.6,1.5 -1.5,1.5h-16.9c-0.9,0 -1.5,-0.6 -1.5,-1.5v-99z"
+ android:fillColor="#FFFFFF" />
+</vector>
diff --git a/android/lib/resource/src/main/res/drawable/red_button_background.xml b/android/lib/resource/src/main/res/drawable/red_button_background.xml
new file mode 100644
index 0000000000..e41121638f
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/red_button_background.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_pressed="false"
+ android:state_focused="false">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/red" />
+ </shape>
+ </item>
+ <item android:state_pressed="false"
+ android:state_focused="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/red80" />
+ </shape>
+ </item>
+ <item android:state_pressed="true">
+ <shape android:shape="rectangle">
+ <corners android:radius="4dp" />
+ <solid android:color="@color/red95" />
+ </shape>
+ </item>
+</selector>
diff --git a/android/lib/resource/src/main/res/drawable/switch_thumb.xml b/android/lib/resource/src/main/res/drawable/switch_thumb.xml
new file mode 100644
index 0000000000..1b32766d34
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/switch_thumb.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:dither="true"
+ android:shape="oval"
+ android:useLevel="false"
+ android:visible="true">
+ <size android:width="@dimen/switch_thumb_size"
+ android:height="@dimen/switch_thumb_size" />
+ <padding android:bottom="@dimen/switch_thumb_padding"
+ android:left="@dimen/switch_thumb_padding"
+ android:right="@dimen/switch_thumb_padding"
+ android:top="@dimen/switch_thumb_padding" />
+ <solid android:color="@color/switch_thumb_fill" />
+ <stroke android:width="@dimen/switch_thumb_padding"
+ android:color="@color/switch_thumb_border" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/switch_track.xml b/android/lib/resource/src/main/res/drawable/switch_track.xml
new file mode 100644
index 0000000000..eb287d3316
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/switch_track.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android"
+ android:dither="true"
+ android:shape="rectangle"
+ android:useLevel="false"
+ android:visible="true">
+ <size android:width="@dimen/switch_width"
+ android:height="@dimen/switch_height" />
+ <padding android:bottom="@dimen/switch_thumb_padding"
+ android:left="@dimen/switch_thumb_padding"
+ android:right="@dimen/switch_thumb_padding"
+ android:top="@dimen/switch_thumb_padding" />
+ <solid android:color="@color/switch_track_fill" />
+ <stroke android:width="@dimen/switch_track_stroke"
+ android:color="@color/switch_track_border" />
+ <corners android:radius="@dimen/switch_track_radius" />
+</shape>
diff --git a/android/lib/resource/src/main/res/drawable/text_input_cursor.xml b/android/lib/resource/src/main/res/drawable/text_input_cursor.xml
new file mode 100644
index 0000000000..56b2895c88
--- /dev/null
+++ b/android/lib/resource/src/main/res/drawable/text_input_cursor.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<shape xmlns:android="http://schemas.android.com/apk/res/android">
+ <solid android:color="@color/darkBlue" />
+ <size android:width="2sp"
+ android:height="24sp" />
+</shape>
diff --git a/android/lib/resource/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/android/lib/resource/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
new file mode 100644
index 0000000000..1e1d3c38b1
--- /dev/null
+++ b/android/lib/resource/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
+ <background android:drawable="@color/icon_background"/>
+ <foreground android:drawable="@drawable/icon_android"/>
+ <monochrome android:drawable="@drawable/icon_android_mono"/>
+</adaptive-icon>
diff --git a/android/lib/resource/src/main/res/mipmap-hdpi/ic_launcher.png b/android/lib/resource/src/main/res/mipmap-hdpi/ic_launcher.png
new file mode 100644
index 0000000000..eb38145c3c
--- /dev/null
+++ b/android/lib/resource/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/mipmap-mdpi/ic_launcher.png b/android/lib/resource/src/main/res/mipmap-mdpi/ic_launcher.png
new file mode 100644
index 0000000000..13f0df6b36
--- /dev/null
+++ b/android/lib/resource/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/mipmap-xhdpi/ic_launcher.png b/android/lib/resource/src/main/res/mipmap-xhdpi/ic_launcher.png
new file mode 100644
index 0000000000..2534ca44e3
--- /dev/null
+++ b/android/lib/resource/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/mipmap-xxhdpi/ic_launcher.png b/android/lib/resource/src/main/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..b01a564765
--- /dev/null
+++ b/android/lib/resource/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/mipmap-xxxhdpi/ic_launcher.png b/android/lib/resource/src/main/res/mipmap-xxxhdpi/ic_launcher.png
new file mode 100644
index 0000000000..063b31017e
--- /dev/null
+++ b/android/lib/resource/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files differ
diff --git a/android/lib/resource/src/main/res/values-da/plurals.xml b/android/lib/resource/src/main/res/values-da/plurals.xml
new file mode 100644
index 0000000000..27da560202
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-da/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 dag tilbage</item>
+ <item quantity="other">%1$d dage tilbage</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 måned tilbage</item>
+ <item quantity="other">%1$d måneder tilbage</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 år tilbage</item>
+ <item quantity="other">%1$d år tilbage</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">en dag siden</item>
+ <item quantity="other">%1$d dage siden</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">et minut siden</item>
+ <item quantity="other">%1$d minutter siden</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">en måned siden</item>
+ <item quantity="other">%1$d måneder siden</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">et år siden</item>
+ <item quantity="other">%1$d år siden</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">en time siden</item>
+ <item quantity="other">%1$d timer siden</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Kontokredit udløber om en dag</item>
+ <item quantity="other">Kontokredit udløber om %1$d dage</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Kontokredit udløber om en time</item>
+ <item quantity="other">Kontokredit udløber om %1$d timer</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-da/strings.xml b/android/lib/resource/src/main/res/values-da/strings.xml
new file mode 100644
index 0000000000..bcfaa59ac0
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-da/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Konto oprettet</string>
+ <string name="account_credit_expires_in_a_few_minutes">Kontokredit udløber om få minutter</string>
+ <string name="account_credit_expires_soon">Kontokredit udløber snart</string>
+ <string name="account_credit_has_expired">Du har ikke mere VPN-tid tilbage på denne konto.</string>
+ <string name="account_number">Kontonummer</string>
+ <string name="account_time_notification_channel_description">Viser påmindelser, når kontotiden er ved at udløbe</string>
+ <string name="account_time_notification_channel_name">Påmindelser om kontotid</string>
+ <string name="add_a_server">Tilføj en server</string>
+ <string name="add_dns_server_dialog_title">Tilføj DNS-server</string>
+ <string name="add_time_to_account">Køb enten kredit på vores hjemmeside, eller indløs en kupon.</string>
+ <string name="agree_and_continue">Accepter og fortsæt</string>
+ <string name="all_applications">Alle applikationer</string>
+ <string name="allow_lan_footer">Giver adgang til andre enheder på det samme netværk til deling, udskrivning osv.</string>
+ <string name="always_on_vpn_error_notification_content">Kunne ikke starte tunnelforbindelse. Deaktiver Altid-til VPN for &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="always_on_vpn_error_notification_title">Altid-til VPN tildelt en anden app</string>
+ <string name="app_version">App-version</string>
+ <string name="auth_failed">Kan ikke godkende konto. Indsend en problemrapport.</string>
+ <string name="auto_connect">Auto-tilslutning</string>
+ <string name="auto_connect_footer">Opret automatisk forbindelse til en server, når appen starter.</string>
+ <string name="automatic">Automatisk</string>
+ <string name="back">Tilbage</string>
+ <string name="block_ads_title">Annoncer</string>
+ <string name="block_adult_content_title">Voksenindhold</string>
+ <string name="block_gambling_title">Hasardspil</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Trackere</string>
+ <string name="blocked_connection">FORBINDELSE BLOKERET</string>
+ <string name="blocking_internet">Blokerer internettet</string>
+ <string name="blocking_internet_device_offline">Blokering af internet (enhed offline)</string>
+ <string name="buy_credit">Køb kredit</string>
+ <string name="buy_more_credit">Køb mere kredit</string>
+ <string name="cancel">Annuller</string>
+ <string name="changes_dialog_dismiss_button">Forstået!</string>
+ <string name="changes_dialog_subtitle">Ændringer i denne version:</string>
+ <string name="confirm_local_dns">Den lokale DNS-server fungerer ikke, medmindre du aktiverer \"Lokal netværksdeling\" under Indstillinger.</string>
+ <string name="confirm_no_email">Du er ved at sende rapporten om problemet, men har ikke angivet hvordan vi kan kontakte dig. Hvis du ønsker et svar på din rapport, skal du indtaste en e-mail-adresse.</string>
+ <string name="confirm_removal">Ja, log enhed af</string>
+ <string name="congrats">Tillykke!</string>
+ <string name="connect">Gør min forbindelse sikker</string>
+ <string name="connecting">Tilslutter</string>
+ <string name="connecting_to_daemon">Opretter forbindelse til Mullvad-systemtjeneste...</string>
+ <string name="continue_login">Fortsæt med login</string>
+ <string name="copied_mullvad_account_number">Kopierede Mullvad-kontonummer til udklipsholder</string>
+ <string name="copied_to_clipboard">Kopieret til udklipsholder</string>
+ <string name="copy_account_number">Kopiér kontonummer</string>
+ <string name="create_account">Opret konto</string>
+ <string name="creating_new_account">Opretter konto...</string>
+ <string name="creating_secure_connection">OPRETTER SIKKER FORBINDELSE</string>
+ <string name="critical_error">Kritisk fejl (som kræver din opmærksomhed)</string>
+ <string name="custom_dns_footer">Aktiver for at tilføje mindst én DNS-server.</string>
+ <string name="custom_dns_hint">Indtast IP</string>
+ <string name="custom_tunnel_host_resolution_error">Kunne ikke fortolke værten for den tilpassede tunnel. Prøv at ændre dine indstillinger.</string>
+ <string name="device_inactive_description">Du har fjernet denne enhed. For at oprette forbindelse igen skal du logge ind igen.</string>
+ <string name="device_inactive_title">Enheden er inaktiv</string>
+ <string name="device_inactive_unblock_warning">Hvis du logger på, ophæves blokeringen af internettet på denne enhed.</string>
+ <string name="device_name">Enhedsnavn</string>
+ <string name="disconnect">Afbryd forbindelse</string>
+ <string name="disconnecting">Afbryder</string>
+ <string name="dismiss">Afvis</string>
+ <string name="dns_content_blockers_info">Når denne funktion er aktiveret, forhindrer den enheden i at kontakte bestemte domæner eller websteder, der er kendt for at distribuere annoncer, malware, trackere og lignende.</string>
+ <string name="dns_content_blockers_subtitle">Deaktiver &lt;b&gt;%1$s&lt;/b&gt; nedenfor for at aktivere disse indstillinger.</string>
+ <string name="dns_content_blockers_title">DNS-indholdsblokkere</string>
+ <string name="dont_have_an_account">Har du ikke noget kontonummer?</string>
+ <string name="duplicate_address_warning">Denne adresse er allerede blevet indtastet.</string>
+ <string name="edit_message">Rediger meddelelse</string>
+ <string name="enable">Aktiver</string>
+ <string name="enable_custom_dns">Brug brugerdefineret DNS-server</string>
+ <string name="enter_value_placeholder">Indtast MTU</string>
+ <string name="enter_voucher_code">Indtast kuponkode</string>
+ <string name="error_occurred">Der opstod en fejl.</string>
+ <string name="error_state">KUNNE IKKE SIKRE FORBINDELSEN</string>
+ <string name="exclude_applications">Ekskluderede applikationer</string>
+ <string name="failed_to_block_internet">Kan ikke blokere al netværkstrafik. Udfør fejlfinding, eller indsend en problemrapport.</string>
+ <string name="failed_to_create_account">Kunne ikke oprette konto</string>
+ <string name="failed_to_fetch_devices">Kunne ikke hente listen over enheder</string>
+ <string name="failed_to_remove_device">Enheden kunne ikke fjernes</string>
+ <string name="failed_to_send">Kunne ikke sende</string>
+ <string name="failed_to_send_details">Hvis du lukker formularen og prøver igen senere, vil de oplysninger, du allerede har indtastet, stadig være her.</string>
+ <string name="faqs_and_guides">Ofte stillede spørgsmål og vejledninger</string>
+ <string name="foreground_notification_channel_description">Viser den aktuelle VPN-tunnelstatus</string>
+ <string name="foreground_notification_channel_name">VPN-tunnelstatus</string>
+ <string name="go_to_login">Gå til login</string>
+ <string name="here_is_your_account_number">Her er dit kontonummer. Gem det!</string>
+ <string name="hide_account_number">Skjul kontonummer</string>
+ <string name="hint_default">Standard</string>
+ <string name="in_address">Ind</string>
+ <string name="invalid_dns_servers">Tilpassede DNS-serveradresser %1$s er ugyldige</string>
+ <string name="invalid_voucher">Kuponkode er ugyldig.</string>
+ <string name="ipv6_unavailable">Kunne ikke konfigurere IPv6. Deaktiver det i appen, eller aktiver det på din enhed.</string>
+ <string name="is_offline">Din enhed er offline. Tunnelen vil oprette forbindelse automatisk, når din enhed er online igen.</string>
+ <string name="less_than_a_day_left">mindre end én dag tilbage</string>
+ <string name="less_than_a_minute_ago">mindre end et minut siden</string>
+ <string name="local_network_sharing">Lokal netværksdeling</string>
+ <string name="local_network_sharing_additional_info">Det opnås ved at tillade netværkskommunikation uden for tunnelen til lokale multicast- og broadcast-områder samt til og fra disse private IP-intervaller:</string>
+ <string name="local_network_sharing_info">Denne funktion giver adgang til andre enheder på det lokale netværk, såsom til deling, udskrivning, streaming osv.</string>
+ <string name="log_out">Log af</string>
+ <string name="logged_in_description">Gyldigt kontonummer</string>
+ <string name="logged_in_title">Logget ind</string>
+ <string name="logging_in_description">Kontrollerer kontonummer</string>
+ <string name="logging_in_title">Logger ind...</string>
+ <string name="login_description">Indtast dit kontonummer</string>
+ <string name="login_fail_description">Ugyldigt kontonummer</string>
+ <string name="login_fail_title">Login mislykkedes</string>
+ <string name="login_title">Log ind</string>
+ <string name="malware_info">Advarsel: Malware-blokkeren er ikke antivirus og bør ikke behandles som sådan. Dette er blot et ekstra lag af beskyttelse.</string>
+ <string name="max_devices_confirm_removal_description">Er du sikker på, at du vil logge &lt;b&gt;%1$s&lt;/b&gt; ud?</string>
+ <string name="max_devices_resolved_description">Du kan nu fortsætte med at logge ind på denne enhed.</string>
+ <string name="max_devices_resolved_title">Super!</string>
+ <string name="max_devices_warning_description">Log ud af mindst én ved at fjerne den fra listen nedenfor. Du kan finde det tilsvarende enhedsnavn under enhedens kontoindstillinger.</string>
+ <string name="max_devices_warning_title">For mange enheder</string>
+ <string name="mullvad_account_number">Mullvad-kontonummer</string>
+ <string name="no_matching_relay">Ingen servere matcher dine indstillinger. Prøv at ændre server eller andre indstillinger.</string>
+ <string name="no_wireguard_key">Gyldig WireGuard-nøgle mangler. Administrer nøgler under Avancerede indstillinger.</string>
+ <string name="not_blocking_internet">DU LÆKKER MÅSKE NETVÆRKSTRAFIK</string>
+ <string name="obfuscation_info">Tilsløring skjuler WireGuard-trafikken inden i en anden protokol. Det kan bruges til at hjælpe med at omgå censur og andre typer filtrering, hvor en almindelig WireGuard-forbindelse ville blive blokeret.</string>
+ <string name="obfuscation_on_udp_over_tcp">Til (UDP-over-TCP)</string>
+ <string name="off">Fra</string>
+ <string name="on">Til</string>
+ <string name="out_address">Ud</string>
+ <string name="out_of_time">Tid udløbet</string>
+ <string name="paid_until">Betalt indtil</string>
+ <string name="pay_to_start_using">For at begynde at bruge appen skal du først føje tid til din konto.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Dette vil slette alle videresendte porte. Lokale indstillinger vil blive gemt.</string>
+ <string name="privacy_disclaimer_title">Privatliv</string>
+ <string name="privacy_policy_label">Fortrolighedspolitik</string>
+ <string name="problem_report_description">For at vi bedre kan hjælpe dig, bedes du vedhæfte din apps logfil til denne meddelelse. Dine data vil forblive sikre og private, da de anonymiseres, før de sendes via en krypteret kanal.</string>
+ <string name="quantum_creating_secure_connection">OPRETTER KVANTESIKKER FORBINDELSE</string>
+ <string name="quantum_resistant_info_first_paragaph">Denne funktion gør WireGuard-tunnelen modstandsdygtig over for potentielle angreb fra kvantecomputere.</string>
+ <string name="quantum_resistant_info_second_paragaph">Det gør den ved at udføre en ekstra nøgleudveksling ved hjælp af en kvantesikker algoritme og blande resultatet med WireGuards almindelige kryptering. Dette ekstra trin bruger cirka 500 kB trafik, hver gang en ny tunnel etableres.</string>
+ <string name="quantum_resistant_title">Kvante-modstandsdygtig tunnel</string>
+ <string name="quantum_secure_connection">KVANTESIKKER FORBINDELSE</string>
+ <string name="reconnecting">Genopretter forbindelse</string>
+ <string name="redeem">Indløs</string>
+ <string name="redeem_voucher">Indløs kupon</string>
+ <string name="remove_button">Fjern</string>
+ <string name="report_a_problem">Rapporter et problem</string>
+ <string name="reset_to_default_button">Nulstil til standard</string>
+ <string name="search_placeholder">Søg efter...</string>
+ <string name="secure_connection">SIKKER TILSLUTNING</string>
+ <string name="secured">Sikret</string>
+ <string name="select_location">Vælg placering</string>
+ <string name="select_location_description">Når du er tilsluttet, maskeres din virkelige placering med en privat og sikker placering i den valgte region.</string>
+ <string name="select_location_empty_text_first_row">Intet resultat for &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Prøv en anden søgning.</string>
+ <string name="send">Send</string>
+ <string name="send_anyway">Send alligevel</string>
+ <string name="sending">Sender...</string>
+ <string name="sent">Sendt</string>
+ <string name="sent_contact">Hvis det er nødvendigt, kontakter vi dig på %1$s</string>
+ <string name="sent_thanks">Tak!</string>
+ <string name="set_dns_error">Kan ikke indstille systemets DNS-server. Indsend en problemrapport.</string>
+ <string name="set_firewall_policy_error">Kan ikke anvende firewallregler. Fejlfind eller send en problemrapport.</string>
+ <string name="settings">Indstillinger</string>
+ <string name="settings_account">Konto</string>
+ <string name="settings_preferences">Indstillinger</string>
+ <string name="settings_vpn">VPN-indstillinger</string>
+ <string name="show_account_number">Vis kontonummer</string>
+ <string name="show_system_apps">Vis systemapps</string>
+ <string name="split_tunneling_description">Split tunneling gør det muligt at vælge, hvilke applikationer der ikke skal dirigeres gennem VPN-tunnelen.</string>
+ <string name="start_tunnel_error">Kan ikke starte tunnelforbindelse. Indsend en problemrapport.</string>
+ <string name="submit_button">Indsend</string>
+ <string name="switch_location">Skift placering</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Slå VPN til/fra</string>
+ <string name="try_again">Prøv igen</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Hvilken TCP-port UDP-over-TCP tilsløringsprotokollen skal forbinde til på VPN-serveren.</string>
+ <string name="unsecured">Ikke sikret</string>
+ <string name="unsecured_connection">IKKE-SIKRET FORBINDELSE</string>
+ <string name="unsupported_version">IKKE-UNDERSTØTTET VERSION</string>
+ <string name="unsupported_version_description">Dit privatliv kan være i fare med denne ikke-understøttede appversion. Opdater den straks.</string>
+ <string name="unsupported_version_without_upgrade">Du kører en ikke-understøttet appversion.</string>
+ <string name="update_available">OPDATERING TILGÆNGELIG</string>
+ <string name="update_available_description">Installer Mullvad VPN (%1$s) for at holde dig opdateret</string>
+ <string name="update_available_footer">Opdatering tilgængelig, download den for at forblive sikker.</string>
+ <string name="update_dns_server_dialog_title">Opdater DNS-server</string>
+ <string name="user_email_hint">Din e-mail (valgfrit)</string>
+ <string name="user_message_hint">For at vi bedre kan hjælpe dig, bedes du skrive på engelsk eller svensk og nævne hvilket land, du befinder dig i.</string>
+ <string name="view_logs">Se app-logfiler</string>
+ <string name="virtual_adapter_problem">Fejl ved virtuel adapter</string>
+ <string name="voucher_already_used">Kuponkode er allerede brugt.</string>
+ <string name="vpn_permission_denied_error">VPN-tilladelse blev nægtet, da tunnelen blev oprettet. Prøv at oprette forbindelse igen.</string>
+ <string name="vpn_permission_error_notification_message">Altid-til VPN er måske aktiveret for en anden app</string>
+ <string name="vpn_permission_error_notification_title">VPN-tilladelsesfejl</string>
+ <string name="we_will_look_into_this">Vi vil undersøge dette.</string>
+ <string name="wireguard_custon_port_title">Brugerdefineret</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">Indstil WireGuard MTU-værdi. Gyldigt område: %1$d - %2$d.</string>
+ <string name="wireguard_port_info_description">Den automatiske indstilling vælger tilfældigt fra de gyldige rækker af porte nedenfor.</string>
+ <string name="wireguard_port_info_port_range">Den brugerdefinerede port kan være en hvilken som helst værdi inden for de gyldige intervaller: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-de/plurals.xml b/android/lib/resource/src/main/res/values-de/plurals.xml
new file mode 100644
index 0000000000..00d7d559f7
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-de/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 Tag übrig</item>
+ <item quantity="other">%1$d Tage übrig</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 Monat übrig</item>
+ <item quantity="other">%1$d Monate übrig</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 Jahr übrig</item>
+ <item quantity="other">%1$d Jahre übrig</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">vor einem Tag</item>
+ <item quantity="other">vor %1$d Tagen</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">vor einer Minute</item>
+ <item quantity="other">vor %1$d Minuten</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">vor einem Monat</item>
+ <item quantity="other">vor %1$d Monaten</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">vor einem Jahr</item>
+ <item quantity="other">vor %1$d Jahren</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">vor einer Stunde</item>
+ <item quantity="other">vor %1$d Stunden</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Kontoguthaben läuft in einem Tag ab</item>
+ <item quantity="other">Kontoguthaben läuft in %1$d Tagen ab</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Kontoguthaben läuft in einer Stunde ab</item>
+ <item quantity="other">Kontoguthaben läuft in %1$d Stunden ab</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-de/strings.xml b/android/lib/resource/src/main/res/values-de/strings.xml
new file mode 100644
index 0000000000..911b145b3c
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-de/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Konto erstellt</string>
+ <string name="account_credit_expires_in_a_few_minutes">Kontoguthaben läuft in wenigen Minuten ab</string>
+ <string name="account_credit_expires_soon">Kontoguthaben läuft bald ab</string>
+ <string name="account_credit_has_expired">Sie haben keine VPN-Zeit mehr auf diesem Konto.</string>
+ <string name="account_number">Kontonummer</string>
+ <string name="account_time_notification_channel_description">Erinnerungen anzeigen, wenn die Kontozeit bald abläuft</string>
+ <string name="account_time_notification_channel_name">Erinnerungen an die Kontozeit</string>
+ <string name="add_a_server">Server hinzufügen</string>
+ <string name="add_dns_server_dialog_title">DNS-Server hinzufügen</string>
+ <string name="add_time_to_account">Kaufen Sie entweder Guthaben über unsere Seite oder lösen Sie einen Gutschein ein.</string>
+ <string name="agree_and_continue">Akzeptieren und weiter</string>
+ <string name="all_applications">Alle Anwendungen</string>
+ <string name="allow_lan_footer">Ermöglicht den Zugriff auf andere Geräte im selben Netzwerk zum Teilen von Dateien, Drucken etc.</string>
+ <string name="always_on_vpn_error_notification_content">Tunnelverbindung kann nicht gestartet werden. Bitte deaktivieren Sie Always-on VPN für &lt;b&gt;%1$s&lt;/b&gt;, bevor Sie Mullvad VPN verwenden.</string>
+ <string name="always_on_vpn_error_notification_title">Always-on VPN ist einer anderen App zugeordnet</string>
+ <string name="app_version">App-Version</string>
+ <string name="auth_failed">Konto konnte nicht authentifiziert werden. Bitte senden Sie einen Problembericht.</string>
+ <string name="auto_connect">Automatische Verbindung</string>
+ <string name="auto_connect_footer">Stellt automatisch eine Verbindung zum Server her, wenn die App startet.</string>
+ <string name="automatic">Automatisch</string>
+ <string name="back">Zurück</string>
+ <string name="block_ads_title">Werbung</string>
+ <string name="block_adult_content_title">Inhalte für Erwachsene</string>
+ <string name="block_gambling_title">Glücksspiel</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Tracker</string>
+ <string name="blocked_connection">GESPERRTE VERBINDUNG</string>
+ <string name="blocking_internet">Internet wird gesperrt</string>
+ <string name="blocking_internet_device_offline">Internet sperren (Gerät offline)</string>
+ <string name="buy_credit">Guthaben erwerben</string>
+ <string name="buy_more_credit">Mehr Guthaben erwerben</string>
+ <string name="cancel">Abbrechen</string>
+ <string name="changes_dialog_dismiss_button">Verstanden!</string>
+ <string name="changes_dialog_subtitle">Änderungen in dieser Version:</string>
+ <string name="confirm_local_dns">Der lokale DNS-Server wird nicht funktionieren, solange „Teilen im lokalen Netzwerk“ nicht in den Einstellungen aktiviert ist.</string>
+ <string name="confirm_no_email">Sie wollen einen Problembericht senden, ohne uns die Möglichkeit zu geben, Sie zu erreichen. Wenn Sie sich eine Antwort zu Ihrem Problem wünschen, müssen Sie eine E-Mail-Adresse eingeben.</string>
+ <string name="confirm_removal">Ja, von Gerät abmelden</string>
+ <string name="congrats">Glückwunsch!</string>
+ <string name="connect">Meine Verbindung sichern</string>
+ <string name="connecting">Verbinden</string>
+ <string name="connecting_to_daemon">Verbindung zum Mullvad-Systemdienst wird hergestellt...</string>
+ <string name="continue_login">Weiter mit Anmeldung</string>
+ <string name="copied_mullvad_account_number">Mullvad-Kontonummer wurde in die Zwischenablage kopiert</string>
+ <string name="copied_to_clipboard">In die Zwischenablage kopiert</string>
+ <string name="copy_account_number">Kontonummer kopieren</string>
+ <string name="create_account">Konto erstellen</string>
+ <string name="creating_new_account">Konto wird erstellt ...</string>
+ <string name="creating_secure_connection">SICHERE VERBINDUNG WIRD ERSTELLT</string>
+ <string name="critical_error">Kritischer Fehler (Ihre Aufmerksamkeit ist erforderlich)</string>
+ <string name="custom_dns_footer">Aktivieren, um mindestens einen DNS-Server hinzuzufügen.</string>
+ <string name="custom_dns_hint">IP eingeben</string>
+ <string name="custom_tunnel_host_resolution_error">Der Host des benutzerdefinierten Tunnels konnte nicht aufgelöst werden. Versuchen Sie, Ihre Einstellungen zu ändern.</string>
+ <string name="device_inactive_description">Sie haben dieses Gerät entfernt. Um sich erneut zu verbinden, müssen Sie sich erneut anmelden.</string>
+ <string name="device_inactive_title">Gerät ist inaktiv</string>
+ <string name="device_inactive_unblock_warning">Wenn Sie mit der Anmeldung fortfahren, wird die Internetsperre auf diesem Gerät aufgehoben.</string>
+ <string name="device_name">Gerätename</string>
+ <string name="disconnect">Verbindung trennen</string>
+ <string name="disconnecting">Verbindung wird getrennt</string>
+ <string name="dismiss">Ausblenden</string>
+ <string name="dns_content_blockers_info">Wenn diese Funktion aktiviert ist, wird das Gerät daran gehindert, bestimmte Domains oder Websites zu kontaktieren, die für die Verbreitung von Werbung, Malware, Trackern und mehr bekannt sind.</string>
+ <string name="dns_content_blockers_subtitle">Deaktivieren Sie unten &lt;b&gt;%1$s&lt;/b&gt;, um diese Einstellungen zu aktivieren.</string>
+ <string name="dns_content_blockers_title">DNS-Inhaltssperren</string>
+ <string name="dont_have_an_account">Sie haben keine Kontonummer?</string>
+ <string name="duplicate_address_warning">Diese Adresse wurde bereits eingetragen.</string>
+ <string name="edit_message">Nachricht bearbeiten</string>
+ <string name="enable">Aktivieren</string>
+ <string name="enable_custom_dns">Benutzerdefinierten DNS-Server verwenden</string>
+ <string name="enter_value_placeholder">MTU eingeben</string>
+ <string name="enter_voucher_code">Gutscheincode eingeben</string>
+ <string name="error_occurred">Ein Fehler ist aufgetreten.</string>
+ <string name="error_state">SICHERE VERBINDUNG KONNTE NICHT HERGESTELLT WERDEN</string>
+ <string name="exclude_applications">Ausgeschlossene Anwendungen</string>
+ <string name="failed_to_block_internet">Der Netzwerk-Traffic konnte nicht gänzlich blockiert werden. Bitte beheben Sie den Fehler oder senden Sie einen Problembericht.</string>
+ <string name="failed_to_create_account">Konto konnte nicht erstellt werden</string>
+ <string name="failed_to_fetch_devices">Fehler beim Abrufen der Geräteliste</string>
+ <string name="failed_to_remove_device">Fehler beim Entfernen des Geräts</string>
+ <string name="failed_to_send">Fehler beim Senden</string>
+ <string name="failed_to_send_details">Die Informationen, die Sie bereits eingegeben haben, werden immer noch da sein, wenn Sie das Formular schließen und es später erneut versuchen.</string>
+ <string name="faqs_and_guides">Häufig gestellte Fragen &amp; Anleitungen</string>
+ <string name="foreground_notification_channel_description">Zeigt den aktuellen Status des VPN-Tunnels an</string>
+ <string name="foreground_notification_channel_name">Status des VPN-Tunnels</string>
+ <string name="go_to_login">Zur Anmeldung</string>
+ <string name="here_is_your_account_number">Hier ist Ihre Kontonummer. Verlieren Sie sie nicht!</string>
+ <string name="hide_account_number">Kontonummer verbergen</string>
+ <string name="hint_default">Standard</string>
+ <string name="in_address">Eingehend</string>
+ <string name="invalid_dns_servers">Eigene DNS-Server Adressen %1$s sind ungültig</string>
+ <string name="invalid_voucher">Der Gutscheincode ist ungültig.</string>
+ <string name="ipv6_unavailable">IPv6 konnte nicht konfiguriert werden. Deaktivieren Sie es in der App oder aktivieren Sie es auf Ihrem Gerät.</string>
+ <string name="is_offline">Ihr Gerät ist offline. Der Tunnel wird automatisch verbunden, sobald Ihr Gerät wieder online ist.</string>
+ <string name="less_than_a_day_left">weniger als ein Tag übrig</string>
+ <string name="less_than_a_minute_ago">vor weniger als einer Minute</string>
+ <string name="local_network_sharing">Teilen im lokalen Netzwerk</string>
+ <string name="local_network_sharing_additional_info">Das geschieht, indem die Netzwerkkommunikation außerhalb des Tunnels zu lokalen Multicast- und Broadcast-Bereichen sowie zu und von diesen privaten IP-Bereichen zugelassen wird:</string>
+ <string name="local_network_sharing_info">Diese Funktion ermöglicht den Zugriff auf andere Geräte im lokalen Netzwerk, z. B. zum Teilen, Drucken, Streamen usw.</string>
+ <string name="log_out">Abmelden</string>
+ <string name="logged_in_description">Gültige Kontonummer</string>
+ <string name="logged_in_title">Angemeldet</string>
+ <string name="logging_in_description">Ihre Kontonummer wird geprüft</string>
+ <string name="logging_in_title">Anmeldung läuft...</string>
+ <string name="login_description">Geben Sie Ihre Kontonummer ein</string>
+ <string name="login_fail_description">Ungültige Kontonummer</string>
+ <string name="login_fail_title">Anmeldung fehlgeschlagen</string>
+ <string name="login_title">Anmelden</string>
+ <string name="malware_info">Der Malware-Blocker ist kein Antivirusprogramm und sollte auch nicht als solches behandelt werden. Es dient lediglich als zusätzliche Schutzschicht.</string>
+ <string name="max_devices_confirm_removal_description">Möchten Sie &lt;b&gt;%1$s&lt;/b&gt; wirklich abmelden?</string>
+ <string name="max_devices_resolved_description">Sie können jetzt mit der Anmeldung auf diesem Gerät fortfahren.</string>
+ <string name="max_devices_resolved_title">Super!</string>
+ <string name="max_devices_warning_description">Bitte melden Sie sich von mindestens einem Gerät ab, indem Sie es aus der Liste unten entfernen. Sie finden den entsprechenden Gerätenamen unter den Kontoeinstellungen des Geräts.</string>
+ <string name="max_devices_warning_title">Zu viele Geräte</string>
+ <string name="mullvad_account_number">Mullvad-Kontonummer</string>
+ <string name="no_matching_relay">Kein Server entspricht Ihren Einstellungen. Versuchen Sie, den Server oder andere Einstellungen zu ändern.</string>
+ <string name="no_wireguard_key">Gültiger WireGuard-Schlüssel fehlt. Sie können Ihre Schlüssel in den erweiterten Einstellungen verwalten.</string>
+ <string name="not_blocking_internet">MÖGLICHERWEISE IST IHR NETZWERKVERKEHR UNSICHER</string>
+ <string name="obfuscation_info">Bei der Verschleierung wird der WireGuard-Datenverkehr in einem anderen Protokoll versteckt. Sie kann dazu verwendet werden, Zensur und andere Arten von Filtern zu umgehen, bei denen eine reine WireGuard-Verbindung blockiert würde.</string>
+ <string name="obfuscation_on_udp_over_tcp">An (UDP über TCP)</string>
+ <string name="off">Aus</string>
+ <string name="on">Ein</string>
+ <string name="out_address">Ausgehend</string>
+ <string name="out_of_time">Zeit abgelaufen</string>
+ <string name="paid_until">Bezahlt bis</string>
+ <string name="pay_to_start_using">Um mit der Nutzung dieser App zu beginnen, müssen Sie erst einmal Zeit zu Ihrem Konto hinzufügen.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Dadurch werden alle weitergeleiteten Ports gelöscht. Die lokalen Einstellungen werden gespeichert.</string>
+ <string name="privacy_disclaimer_title">Datenschutz</string>
+ <string name="privacy_policy_label">Datenschutzrichtlinie</string>
+ <string name="problem_report_description">Damit wir Ihnen besser helfen können, wird die Protokolldatei Ihrer App an diese Nachricht angehängt. Ihre Daten bleiben sicher und privat, da sie vor dem Senden über einen verschlüsselten Kanal anonymisiert werden.</string>
+ <string name="quantum_creating_secure_connection">QUANTENSICHERE VERBINDUNG WIRD ERSTELLT</string>
+ <string name="quantum_resistant_info_first_paragaph">Diese Funktion macht den WireGuard-Tunnel resistent gegen mögliche Angriffe von Quantencomputern.</string>
+ <string name="quantum_resistant_info_second_paragaph">Dazu wird ein zusätzlicher Schlüsselaustausch mit einem quantensicheren Algorithmus durchgeführt und das Ergebnis mit der regulären Verschlüsselung von WireGuard vermischt. Dieser zusätzliche Schritt verbraucht jedes Mal, wenn ein neuer Tunnel aufgebaut wird, etwa 500 KiB an Datenverkehr.</string>
+ <string name="quantum_resistant_title">Quantenresistenter Tunnel</string>
+ <string name="quantum_secure_connection">QUANTENSICHERE VERBINDUNG</string>
+ <string name="reconnecting">Wiederherstellen der Verbindung</string>
+ <string name="redeem">Einlösen</string>
+ <string name="redeem_voucher">Gutschein einlösen</string>
+ <string name="remove_button">Entfernen</string>
+ <string name="report_a_problem">Problem melden</string>
+ <string name="reset_to_default_button">Auf Standard zurücksetzen</string>
+ <string name="search_placeholder">Suchen nach …</string>
+ <string name="secure_connection">SICHERE VERBINDUNG</string>
+ <string name="secured">Gesichert</string>
+ <string name="select_location">Ort auswählen</string>
+ <string name="select_location_description">Wenn Sie verbunden sind, wird Ihr tatsächlicher Standort durch einem privaten und sicheren Standort in der ausgewählten Region maskiert.</string>
+ <string name="select_location_empty_text_first_row">Keine Ergebnisse für &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Versuchen Sie es mit einer anderen Suchanfrage.</string>
+ <string name="send">Senden</string>
+ <string name="send_anyway">Trotzdem senden</string>
+ <string name="sending">Wird gesendet...</string>
+ <string name="sent">Gesendet</string>
+ <string name="sent_contact">Bei Bedarf werden wir Sie über %1$s kontaktieren</string>
+ <string name="sent_thanks">Danke!</string>
+ <string name="set_dns_error">Der DNS-Server des Systems konnte nicht eingestellt werden. Bitte senden Sie einen Problembericht.</string>
+ <string name="set_firewall_policy_error">Firewall-Regeln können nicht angewendet werden. Bitte beheben Sie das Problem oder senden Sie einen Problembericht.</string>
+ <string name="settings">Einstellungen</string>
+ <string name="settings_account">Konto</string>
+ <string name="settings_preferences">Präferenzen</string>
+ <string name="settings_vpn">VPN-Einstellungen</string>
+ <string name="show_account_number">Kontonummer anzeigen</string>
+ <string name="show_system_apps">System-Apps anzeigen</string>
+ <string name="split_tunneling_description">Split-Tunnel-Steuerung macht es möglich, auszuwählen, welche Anwendungen nicht durch den VPN-Tunnel geroutet werden.</string>
+ <string name="start_tunnel_error">Die Tunnelverbindung konnte nicht gestartet werden. Bitte senden Sie einen Problembericht.</string>
+ <string name="submit_button">Absenden</string>
+ <string name="switch_location">Ort wechseln</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">VPN umschalten</string>
+ <string name="try_again">Erneut versuchen</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Mit welchem TCP-Port sich das UDP-über-TCP-Verschleierungsprotokoll auf dem VPN-Server verbinden soll.</string>
+ <string name="unsecured">Ungesichert</string>
+ <string name="unsecured_connection">UNGESICHERTE VERBINDUNG</string>
+ <string name="unsupported_version">NICHT UNTERSTÜTZTE VERSION</string>
+ <string name="unsupported_version_description">Ihre Privatsphäre könnte mit dieser nicht unterstützen Version der App gefährdet sein. Bitte aktualisieren Sie sie.</string>
+ <string name="unsupported_version_without_upgrade">Sie verwenden eine nicht unterstützte Version der App. </string>
+ <string name="update_available">UPDATE VERFÜGBAR</string>
+ <string name="update_available_description">Installieren Sie Mullvad VPN (%1$s), um auf dem neuesten Stand zu bleiben</string>
+ <string name="update_available_footer">Update verfügbar, laden Sie es herunter, um sicher zu bleiben.</string>
+ <string name="update_dns_server_dialog_title">DNS-Server aktualisieren</string>
+ <string name="user_email_hint">Ihre E-Mail-Adresse (optional)</string>
+ <string name="user_message_hint">Um Ihnen besser weiterhelfen zu können, schreiben Sie uns bitte auf Englisch oder Schwedisch und geben Sie an, aus welchem Land Sie die Verbindung herstellen.</string>
+ <string name="view_logs">App-Protokolle anzeigen</string>
+ <string name="virtual_adapter_problem">Virtueller Adapterfehler</string>
+ <string name="voucher_already_used">Der Gutscheincode wurde bereits verwendet.</string>
+ <string name="vpn_permission_denied_error">VPN-Berechtigungen wurden beim Erstellen des Tunnels abgelehnt.</string>
+ <string name="vpn_permission_error_notification_message">Always-on VPN könnte für eine andere App aktiviert sein</string>
+ <string name="vpn_permission_error_notification_title">VPN-Berechtigungsfehler</string>
+ <string name="we_will_look_into_this">Wir werden uns das anschauen.</string>
+ <string name="wireguard_custon_port_title">Benutzerdefiniert</string>
+ <string name="wireguard_mtu">WireGuard-MTU</string>
+ <string name="wireguard_mtu_footer">WireGuard-MTU-Wert einstellen. Gültiger Bereich: %1$d – %2$d.</string>
+ <string name="wireguard_port_info_description">Die automatische Einstellung wählt zufällig aus den unten gezeigten gültigen Portbereichen.</string>
+ <string name="wireguard_port_info_port_range">Der benutzerdefinierte Port kann ein beliebiger Wert innerhalb dieser gültigen Bereiche sein: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-es/plurals.xml b/android/lib/resource/src/main/res/values-es/plurals.xml
new file mode 100644
index 0000000000..453d24c542
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-es/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">Queda 1 día</item>
+ <item quantity="other">Quedan %1$d días</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">Queda 1 mes</item>
+ <item quantity="other">Quedan %1$d meses</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">Queda 1 año</item>
+ <item quantity="other">Quedan %1$d años</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">hace un día</item>
+ <item quantity="other">hace %1$d días</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">hace un minuto</item>
+ <item quantity="other">hace %1$d minutos</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">hace un mes</item>
+ <item quantity="other">hace %1$d meses</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">hace un año</item>
+ <item quantity="other">hace %1$d años</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">hace una hora</item>
+ <item quantity="other">hace %1$d horas</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">El crédito de la cuenta caduca en un día</item>
+ <item quantity="other">El crédito de la cuenta caduca en %1$d días</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">El crédito de la cuenta caduca en una hora</item>
+ <item quantity="other">El crédito de la cuenta caduca en %1$d horas</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-es/strings.xml b/android/lib/resource/src/main/res/values-es/strings.xml
new file mode 100644
index 0000000000..49c9ee6fce
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-es/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Cuenta creada</string>
+ <string name="account_credit_expires_in_a_few_minutes">El crédito de la cuenta caduca en unos minutos</string>
+ <string name="account_credit_expires_soon">El crédito de la cuenta caduca pronto</string>
+ <string name="account_credit_has_expired">No queda tiempo de uso de VPN en la cuenta.</string>
+ <string name="account_number">Número de cuenta</string>
+ <string name="account_time_notification_channel_description">Muestra avisos cuando el tiempo de la cuenta está a punto de caducar</string>
+ <string name="account_time_notification_channel_name">Recordatorios de tiempo de la cuenta</string>
+ <string name="add_a_server">Añadir un servidor</string>
+ <string name="add_dns_server_dialog_title">Añadir servidor DNS</string>
+ <string name="add_time_to_account">Compre crédito en nuestro sitio web o canjee un cupón.</string>
+ <string name="agree_and_continue">Aceptar y continuar</string>
+ <string name="all_applications">Todas las aplicaciones</string>
+ <string name="allow_lan_footer">Permite el acceso a otros dispositivos de la misma red para compartir, imprimir, etc.</string>
+ <string name="always_on_vpn_error_notification_content">No se puede iniciar la conexión de túnel. Deshabilite la VPN siempre activa en &lt;b&gt;%1$s&lt;/b&gt; antes de utilizar la VPN de Mullvad.</string>
+ <string name="always_on_vpn_error_notification_title">La VPN siempre activa se ha asignado a otra aplicación</string>
+ <string name="app_version">Versión de la aplicación</string>
+ <string name="auth_failed">No se puede autenticar la cuenta. Envíe un informe de problemas.</string>
+ <string name="auto_connect">Conexión automática</string>
+ <string name="auto_connect_footer">Al iniciarse la aplicación, se conecta automáticamente a un servidor.</string>
+ <string name="automatic">Automático</string>
+ <string name="back">Volver</string>
+ <string name="block_ads_title">Anuncios</string>
+ <string name="block_adult_content_title">Contenido para adultos</string>
+ <string name="block_gambling_title">Juegos de azar</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Rastreadores</string>
+ <string name="blocked_connection">CONEXIÓN BLOQUEADA</string>
+ <string name="blocking_internet">Internet bloqueado</string>
+ <string name="blocking_internet_device_offline">Bloqueo de Internet (dispositivo sin conexión)</string>
+ <string name="buy_credit">Comprar créditos</string>
+ <string name="buy_more_credit">Comprar más créditos</string>
+ <string name="cancel">Cancelar</string>
+ <string name="changes_dialog_dismiss_button">¡Entendido!</string>
+ <string name="changes_dialog_subtitle">Cambios en esta versión:</string>
+ <string name="confirm_local_dns">El servidor DNS local no funcionará a no ser que habilite la opción «Uso compartido de red local» en Preferencias.</string>
+ <string name="confirm_no_email">Va a enviar el informe de problemas sin indicar una forma de contacto. Para obtener una respuesta sobre el informe, necesita especificar su dirección de correo electrónico.</string>
+ <string name="confirm_removal">Sí, cerrar sesión</string>
+ <string name="congrats">¡Enhorabuena!</string>
+ <string name="connect">Proteger mi conexión</string>
+ <string name="connecting">Conectando</string>
+ <string name="connecting_to_daemon">Conectando al servicio del sistema Mullvad…</string>
+ <string name="continue_login">Iniciar sesión</string>
+ <string name="copied_mullvad_account_number">El número de cuenta de Mullvad se copió en el Portapapeles</string>
+ <string name="copied_to_clipboard">Copiado en el Portapapeles</string>
+ <string name="copy_account_number">Copiar número de cuenta</string>
+ <string name="create_account">Crear cuenta</string>
+ <string name="creating_new_account">Creando cuenta…</string>
+ <string name="creating_secure_connection">CREANDO CONEXIÓN SEGURA</string>
+ <string name="critical_error">Error crítico (precisa su atención)</string>
+ <string name="custom_dns_footer">Active esta opción para agregar como mínimo un servidor DNS.</string>
+ <string name="custom_dns_hint">Escriba la IP</string>
+ <string name="custom_tunnel_host_resolution_error">No se puede resolver el host del túnel personalizado. Pruebe a cambiar la configuración.</string>
+ <string name="device_inactive_description">Ha quitado este dispositivo. Vuelva a iniciar la sesión para conectarse.</string>
+ <string name="device_inactive_title">El dispositivo está inactivo</string>
+ <string name="device_inactive_unblock_warning">Al iniciar la sesión, se desbloqueará el acceso a Internet en este dispositivo.</string>
+ <string name="device_name">Nombre del dispositivo</string>
+ <string name="disconnect">Desconectar</string>
+ <string name="disconnecting">Desconectando</string>
+ <string name="dismiss">Descartar</string>
+ <string name="dns_content_blockers_info">Al activar esta opción se evita que el dispositivo contacte con determinados dominios o sitios web que se sabe que distribuyen anuncios, malware, rastreadores y más.</string>
+ <string name="dns_content_blockers_subtitle">Deshabilite &lt;b&gt;%1$s&lt;/b&gt; abajo para activar estos ajustes.</string>
+ <string name="dns_content_blockers_title">Bloqueadores de contenido DNS</string>
+ <string name="dont_have_an_account">¿No tiene un número de cuenta?</string>
+ <string name="duplicate_address_warning">Esta dirección ya se ha introducido.</string>
+ <string name="edit_message">Editar mensaje</string>
+ <string name="enable">Habilitar</string>
+ <string name="enable_custom_dns">Usar servidor DNS personalizado</string>
+ <string name="enter_value_placeholder">Introducir MTU</string>
+ <string name="enter_voucher_code">Escriba el código del cupón</string>
+ <string name="error_occurred">Se produjo un error.</string>
+ <string name="error_state">NO SE PUDO PROTEGER LA CONEXIÓN</string>
+ <string name="exclude_applications">Aplicaciones excluidas</string>
+ <string name="failed_to_block_internet">No se puede bloquear todo el tráfico de red. Intente solucionar el problema o envíe un informe de problemas.</string>
+ <string name="failed_to_create_account">No se puede crear la cuenta</string>
+ <string name="failed_to_fetch_devices">No se pudo obtener la lista de dispositivos</string>
+ <string name="failed_to_remove_device">No se pudo quitar el dispositivo</string>
+ <string name="failed_to_send">No se pudo enviar</string>
+ <string name="failed_to_send_details">Si cierra el formulario y vuelve a intentarlo más tarde, la información que haya escrito seguirá estando disponible.</string>
+ <string name="faqs_and_guides">Preguntas frecuentes y guías</string>
+ <string name="foreground_notification_channel_description">Muestra el estado actual del túnel VPN</string>
+ <string name="foreground_notification_channel_name">Estado del túnel VPN</string>
+ <string name="go_to_login">Iniciar sesión</string>
+ <string name="here_is_your_account_number">Este es un número de cuenta. ¡Guárdelo bien!</string>
+ <string name="hide_account_number">Ocultar número de cuenta</string>
+ <string name="hint_default">Predeterminado</string>
+ <string name="in_address">Entrada</string>
+ <string name="invalid_dns_servers">Las direcciones del servidor DNS personalizado %1$s no son válidas</string>
+ <string name="invalid_voucher">El código del cupón no es válido.</string>
+ <string name="ipv6_unavailable">No se pudo configurar IPv6. Desactívelo en la aplicación o actívelo en el dispositivo.</string>
+ <string name="is_offline">El dispositivo está sin conexión. El túnel se conectará automáticamente cuando el dispositivo vuelva a estar en línea.</string>
+ <string name="less_than_a_day_left">queda menos de un día</string>
+ <string name="less_than_a_minute_ago">hace menos de un minuto</string>
+ <string name="local_network_sharing">Uso compartido de la red local</string>
+ <string name="local_network_sharing_additional_info">Lo realiza permitiendo la comnunicación de red fuera del túnel hacia rangos de emisión y multidifusión locales y también hacia y desde estos rangos de IP privados:</string>
+ <string name="local_network_sharing_info">Esta característica permite el acceso a otros dispositivos de la red local, como para compartir, imprimir, transmitir, etc.</string>
+ <string name="log_out">Cerrar sesión</string>
+ <string name="logged_in_description">Número de cuenta válido</string>
+ <string name="logged_in_title">Sesión iniciada</string>
+ <string name="logging_in_description">Comprobando número de cuenta</string>
+ <string name="logging_in_title">Iniciando la sesión…</string>
+ <string name="login_description">Escriba su número de cuenta</string>
+ <string name="login_fail_description">Número de cuenta no válido</string>
+ <string name="login_fail_title">Error de inicio de sesión</string>
+ <string name="login_title">Iniciar sesión</string>
+ <string name="malware_info">Advertencia: El bloqueador de malware no es un antivirus y no debe considerarse como tal, tan solo es un nivel de protección adicional.</string>
+ <string name="max_devices_confirm_removal_description">¿Seguro que quiere cerrar la sesión de &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Ya puede iniciar sesión en este dispositivo.</string>
+ <string name="max_devices_resolved_title">¡Genial!</string>
+ <string name="max_devices_warning_description">Cierre la sesión como mínimo en un dispositivo (para hacerlo, quítelo de la lista siguiente). Consulte el nombre del dispositivo en la configuración de la cuenta del dispositivo.</string>
+ <string name="max_devices_warning_title">Demasiados dispositivos</string>
+ <string name="mullvad_account_number">Número de cuenta de Mullvad</string>
+ <string name="no_matching_relay">Ningún servidor coincide con su configuración, pruebe con otro servidor u otra configuración.</string>
+ <string name="no_wireguard_key">Falta una clave de WireGuard válida. Para administrar las claves, vaya a Configuración avanzada.</string>
+ <string name="not_blocking_internet">PUEDE QUE SE ESTÉ FILTRANDO EL TRÁFICO DE RED</string>
+ <string name="obfuscation_info">La ofuscación oculta el tráfico de WireGuard dentro de otro protocolo. Puede usarse para sortear la censura y otros tipos de filtrado donde podría bloquearse una conexión de WireGuard normal.</string>
+ <string name="obfuscation_on_udp_over_tcp">Activado (UDP sobre TCP)</string>
+ <string name="off">Desactivado</string>
+ <string name="on">Activado</string>
+ <string name="out_address">Salida</string>
+ <string name="out_of_time">Tiempo agotado</string>
+ <string name="paid_until">Pagado hasta</string>
+ <string name="pay_to_start_using">Para empezar a usar la aplicación, primero necesita agregar tiempo a su cuenta.</string>
+ <string name="port">Puerto</string>
+ <string name="port_removal_notice">Se eliminarán todos los puertos reenviados. La configuración local se guardará.</string>
+ <string name="privacy_disclaimer_title">Privacidad</string>
+ <string name="privacy_policy_label">Política de privacidad</string>
+ <string name="problem_report_description">Para ayudarle de una forma más eficiente, se adjuntará el archivo de registro de la aplicación a este mensaje. Sus datos permanecerán protegidos y privados, ya que se anonimizan antes de enviarse a través de un canal cifrado.</string>
+ <string name="quantum_creating_secure_connection">CREANDO CONEXIÓN CON SEGURIDAD CUÁNTICA</string>
+ <string name="quantum_resistant_info_first_paragaph">Esta característica permite que el túnel de WireGuard resista posibles ataques de ordenadores cuánticos.</string>
+ <string name="quantum_resistant_info_second_paragaph">Lo hace al realizar un intercambio de claves adicional usando un algoritmo cuántico seguro y combinando el resultado en el cifrado normal de WireGuard. Este paso extra utiliza aproximadamente 500 kiB de tráfico cada vez que se establece un nuevo túnel.</string>
+ <string name="quantum_resistant_title">Túnel con resistencia cuántica</string>
+ <string name="quantum_secure_connection">CONEXIÓN CON SEGURIDAD CUÁNTICA</string>
+ <string name="reconnecting">Volviendo a establecer la conexión</string>
+ <string name="redeem">Canjear</string>
+ <string name="redeem_voucher">Canjear cupón</string>
+ <string name="remove_button">Quitar</string>
+ <string name="report_a_problem">Informar de un problema</string>
+ <string name="reset_to_default_button">Restablecer a valores predeterminados</string>
+ <string name="search_placeholder">Buscar...</string>
+ <string name="secure_connection">CONEXIÓN SEGURA</string>
+ <string name="secured">Protegido</string>
+ <string name="select_location">Seleccionar ubicación</string>
+ <string name="select_location_description">Mientras esté conectado, su ubicación real permanecerá oculta con una ubicación privada y segura en la región seleccionada.</string>
+ <string name="select_location_empty_text_first_row">No hay resultados para &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Pruebe con otra búsqueda.</string>
+ <string name="send">Enviar</string>
+ <string name="send_anyway">Enviar de todos modos</string>
+ <string name="sending">Enviando…</string>
+ <string name="sent">Enviado</string>
+ <string name="sent_contact">Si es necesario, le enviaremos un correo electrónico a %1$s</string>
+ <string name="sent_thanks">¡Gracias!</string>
+ <string name="set_dns_error">No se puede configurar el servidor DNS del sistema. Envíe un informe de problemas.</string>
+ <string name="set_firewall_policy_error">No se pueden aplicar las reglas del firewall. Intente solucionar el problema o envíe un informe de problemas.</string>
+ <string name="settings">Configuración</string>
+ <string name="settings_account">Cuenta</string>
+ <string name="settings_preferences">Preferencias</string>
+ <string name="settings_vpn">Configuración de VPN</string>
+ <string name="show_account_number">Mostrar número de cuenta</string>
+ <string name="show_system_apps">Mostrar aplicaciones del sistema</string>
+ <string name="split_tunneling_description">La tunelización dividida permite seleccionar qué aplicaciones no deben enrutarse a través del túnel VPN.</string>
+ <string name="start_tunnel_error">No se puede iniciar la conexión del túnel. Envíe un informe de problemas.</string>
+ <string name="submit_button">Enviar</string>
+ <string name="switch_location">Cambiar ubicación</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Alternar VPN</string>
+ <string name="try_again">Volver a intentarlo</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">El puerto TCP al que se conectará el protocolo de ofuscación de UDP sobre TCP en el servidor VPN.</string>
+ <string name="unsecured">No protegido</string>
+ <string name="unsecured_connection">CONEXIÓN NO SEGURA</string>
+ <string name="unsupported_version">VERSIÓN NO ADMITIDA</string>
+ <string name="unsupported_version_description">Al usar esta versión obsoleta de la aplicación, es posible que su privacidad esté en riesgo. Actualice ahora.</string>
+ <string name="unsupported_version_without_upgrade">Ejecuta una versión de la aplicación que no es compatible.</string>
+ <string name="update_available">ACTUALIZACIÓN DISPONIBLE</string>
+ <string name="update_available_description">Instale Mullvad VPN (%1$s) para seguir actualizado</string>
+ <string name="update_available_footer">Hay una actualización disponible, descárguela para seguir protegido.</string>
+ <string name="update_dns_server_dialog_title">Actualizar servidor DNS</string>
+ <string name="user_email_hint">Su correo electrónico (opcional)</string>
+ <string name="user_message_hint">Para ayudarle mejor, escriba en inglés o sueco e indique desde qué país se está conectando.</string>
+ <string name="view_logs">Ver registros de la aplicación</string>
+ <string name="virtual_adapter_problem">Error del adaptador virtual</string>
+ <string name="voucher_already_used">El código del cupón ya se ha usado.</string>
+ <string name="vpn_permission_denied_error">Se denegó el permiso para usar una conexión VPN al crear el túnel. Intente volver a establecer la conexión.</string>
+ <string name="vpn_permission_error_notification_message">La VPN siempre activa podría estar habilitada en otra aplicación</string>
+ <string name="vpn_permission_error_notification_title">Error en la autorización de la VPN</string>
+ <string name="we_will_look_into_this">Revisaremos esto.</string>
+ <string name="wireguard_custon_port_title">Personalizado</string>
+ <string name="wireguard_mtu">MTU de WireGuard</string>
+ <string name="wireguard_mtu_footer">Establezca el valor de MTU de WireGuard. Intervalo válido: %1$d-%2$d.</string>
+ <string name="wireguard_port_info_description">El ajuste automático se elegirá al azar entre los rangos de puertos válidos que se muestran a continuación.</string>
+ <string name="wireguard_port_info_port_range">El puerto personalizado pueder ser cualquier valor dentro de los rangos válidos: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-fi/plurals.xml b/android/lib/resource/src/main/res/values-fi/plurals.xml
new file mode 100644
index 0000000000..43c76d8042
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-fi/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 päivä jäljellä</item>
+ <item quantity="other">%1$d päivää jäljellä</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 kuukausi jäljellä</item>
+ <item quantity="other">%1$d kuukautta jäljellä</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 vuosi jäljellä</item>
+ <item quantity="other">%1$d vuotta jäljellä</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">1 päivä sitten</item>
+ <item quantity="other">%1$d päivää sitten</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">minuutti sitten</item>
+ <item quantity="other">%1$d minuuttia sitten</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">kuukausi sitten</item>
+ <item quantity="other">%1$d kuukautta sitten</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">vuosi sitten</item>
+ <item quantity="other">%1$d vuotta sitten</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">tunti sitten</item>
+ <item quantity="other">%1$d tuntia sitten</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Tilin käyttöaika päättyy vuorokauden kuluttua</item>
+ <item quantity="other">Tilin käyttöaika päättyy %1$d vuorokauden kuluttua</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Tilin käyttöaika päättyy tunnin kuluttua</item>
+ <item quantity="other">Tilin käyttöaika päättyy %1$d tunnin kuluttua</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-fi/strings.xml b/android/lib/resource/src/main/res/values-fi/strings.xml
new file mode 100644
index 0000000000..a681bd4311
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-fi/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Tili luotu</string>
+ <string name="account_credit_expires_in_a_few_minutes">Tilin käyttöaika päättyy muutaman minuutin kuluttua</string>
+ <string name="account_credit_expires_soon">Tilin käyttöaika päättyy pian</string>
+ <string name="account_credit_has_expired">Sinulla ei ole enempää VPN-aikaa jäljellä tällä tilillä.</string>
+ <string name="account_number">Tilin numero</string>
+ <string name="account_time_notification_channel_description">Näyttää muistutuksia, kun tilin käyttöaika on umpeutumassa</string>
+ <string name="account_time_notification_channel_name">Muistutukset tilin käyttöajasta</string>
+ <string name="add_a_server">Lisää palvelin</string>
+ <string name="add_dns_server_dialog_title">Lisää DNS-palvelin</string>
+ <string name="add_time_to_account">Osta käyttöaikaa verkkosivustoltamme tai lunasta kuponki.</string>
+ <string name="agree_and_continue">Hyväksy ja jatka</string>
+ <string name="all_applications">Kaikki sovellukset</string>
+ <string name="allow_lan_footer">Sallii jakamisen, tulostuksen ym. saman verkon muille laitteille.</string>
+ <string name="always_on_vpn_error_notification_content">Tunneliyhteyden käynnistäminen ei onnistu. Poista aina päällä oleva VPN käytöstä sovellukselle &lt;b&gt;%1$s&lt;/b&gt; ennen Mullvad VPN:n käyttämistä.</string>
+ <string name="always_on_vpn_error_notification_title">Aina päällä oleva VPN on määritetty toiselle sovellukselle</string>
+ <string name="app_version">Sovelluksen versio</string>
+ <string name="auth_failed">Tilin todentaminen ei onnistu. Lähetä ongelmaraportti.</string>
+ <string name="auto_connect">Automaattinen yhteys</string>
+ <string name="auto_connect_footer">Muodosta yhteys palvelimeen automaattisesti, kun sovellus avataan.</string>
+ <string name="automatic">Automaattinen</string>
+ <string name="back">Takaisin</string>
+ <string name="block_ads_title">Mainokset</string>
+ <string name="block_adult_content_title">Aikuisille suunnattu sisältö</string>
+ <string name="block_gambling_title">Uhkapelaaminen</string>
+ <string name="block_malware_title">Haittaohjelmat</string>
+ <string name="block_trackers_title">Seurantapalvelimet</string>
+ <string name="blocked_connection">ESTETTY YHTEYS</string>
+ <string name="blocking_internet">Verkkoyhteys estetään</string>
+ <string name="blocking_internet_device_offline">Internetyhteys on estetty (laite offline-tilassa)</string>
+ <string name="buy_credit">Osta käyttöaikaa</string>
+ <string name="buy_more_credit">Uudista tilaus</string>
+ <string name="cancel">Peruuta</string>
+ <string name="changes_dialog_dismiss_button">Selvä!</string>
+ <string name="changes_dialog_subtitle">Muutokset tässä versiossa:</string>
+ <string name="confirm_local_dns">Paikallinen DNS-palvelin ei toimi, ellet ota paikallisen verkon jakamisasetusta käyttöön asetuksissa.</string>
+ <string name="confirm_no_email">Olet aikeissa lähettää ongelmaraportin ilman yhteystietojasi. Mikäli haluat vastauksen raporttiisi, anna sähköpostosoite.</string>
+ <string name="confirm_removal">Kyllä, kirjaa laite ulos</string>
+ <string name="congrats">Onnittelut!</string>
+ <string name="connect">Suojaa yhteyteni</string>
+ <string name="connecting">Yhdistetään</string>
+ <string name="connecting_to_daemon">Yhdistetään Mullvad-järjestelmäpalveluun...</string>
+ <string name="continue_login">Jatka kirjautumista</string>
+ <string name="copied_mullvad_account_number">Mullvad-tilin numero kopioitu leikepöydälle</string>
+ <string name="copied_to_clipboard">Kopioitu leikepöydälle</string>
+ <string name="copy_account_number">Kopioi tilin numero</string>
+ <string name="create_account">Luo tili</string>
+ <string name="creating_new_account">Luodaan tiliä...</string>
+ <string name="creating_secure_connection">LUODAAN SUOJATTU YHTEYS</string>
+ <string name="critical_error">Vakava virhe (vaatii huomiotasi)</string>
+ <string name="custom_dns_footer">Ota käyttöön lisätäksesi vähintään yhden DNS-palvelimen.</string>
+ <string name="custom_dns_hint">Anna IP-osoite</string>
+ <string name="custom_tunnel_host_resolution_error">Muokatun tunnelin isännän selvittäminen ei onnistu. Kokeile muuttaa asetuksiasi.</string>
+ <string name="device_inactive_description">Olet poistanut tämän laitteen. Jos haluat muodostaa yhteyden uudelleen, sinun täytyy kirjautua takaisin sisään.</string>
+ <string name="device_inactive_title">Laite ei ole aktiivinen</string>
+ <string name="device_inactive_unblock_warning">Kirjautumiseen siirtyminen purkaa internetin käytön eston tältä laitteelta.</string>
+ <string name="device_name">Laitteen nimi</string>
+ <string name="disconnect">Katkaise yhteys</string>
+ <string name="disconnecting">Katkaistaan yhteyttä</string>
+ <string name="dismiss">Jätä huomiotta</string>
+ <string name="dns_content_blockers_info">Kun tämä ominaisuus on käytössä, se estää laitetta ottamasta yhteyttä tiettyihin verkkotunnuksiin tai -sivustoihin, jotka tunnetaan mainosten, haittaohjelmien, seurantaohjelmien tai muiden vastaavien jakelijoina.</string>
+ <string name="dns_content_blockers_subtitle">Ota nämä asetukset käyttöön poistamalla &lt;b&gt;%1$s&lt;/b&gt; käytöstä alta.</string>
+ <string name="dns_content_blockers_title">DNS-sisällönestotoiminnot</string>
+ <string name="dont_have_an_account">Eikö sinulla ole tilinumeroa?</string>
+ <string name="duplicate_address_warning">Tämä osoite on annettu jo.</string>
+ <string name="edit_message">Muokkaa viestiä</string>
+ <string name="enable">Ota käyttöön</string>
+ <string name="enable_custom_dns">Käytä mukautettua DNS-palvelinta</string>
+ <string name="enter_value_placeholder">Syötä MTU</string>
+ <string name="enter_voucher_code">Syötä kuponkikoodi</string>
+ <string name="error_occurred">Ilmeni virhe.</string>
+ <string name="error_state">YHTEYDEN SUOJAAMINEN EPÄONNISTUI</string>
+ <string name="exclude_applications">Poissuljetut sovellukset</string>
+ <string name="failed_to_block_internet">Kaiken verkkoliikenteen estäminen ei onnistu. Käytä vianetsintää tai lähetä ongelmaraportti.</string>
+ <string name="failed_to_create_account">Tilin luonti epäonnistui</string>
+ <string name="failed_to_fetch_devices">Laiteluettelon nouto epäonnistui</string>
+ <string name="failed_to_remove_device">Laitteen poistaminen epäonnistui</string>
+ <string name="failed_to_send">Lähetys epäonnistui</string>
+ <string name="failed_to_send_details">Jos poistut lomakkeelta ja yrität myöhemmin uudelleen, jo syöttämäsi tiedot säilyvät lomakkeella.</string>
+ <string name="faqs_and_guides">Usein kysytyt kysymykset ja oppaat</string>
+ <string name="foreground_notification_channel_description">Näyttää VPN-tunnelin nykyisen tilan</string>
+ <string name="foreground_notification_channel_name">VPN-tunnelin tila</string>
+ <string name="go_to_login">Siirry kirjautumiseen</string>
+ <string name="here_is_your_account_number">Tässä tulee tilisi numero. Laita se talteen!</string>
+ <string name="hide_account_number">Piilota tilin numero</string>
+ <string name="hint_default">Oletus</string>
+ <string name="in_address">Saapuva</string>
+ <string name="invalid_dns_servers">Mukautetut DNS-palvelimen osoitteet %1$s ovat virheellisiä</string>
+ <string name="invalid_voucher">Kuponkikoodi ei kelpaa.</string>
+ <string name="ipv6_unavailable">IPv6:n määritys ei onnistunut. Poista se käytöstä sovelluksessa tai ota käyttöön laitteellasi.</string>
+ <string name="is_offline">Laitteesi on offline-tilassa. Kun laitteesi on taas online-tilassa, tunneli muodostaa yhteyden automaattisesti.</string>
+ <string name="less_than_a_day_left">alle vuorokausi jäljellä</string>
+ <string name="less_than_a_minute_ago">alle minuutti sitten</string>
+ <string name="local_network_sharing">Paikallisen verkon jakaminen</string>
+ <string name="local_network_sharing_additional_info">Ominaisuus siis sallii verkkoviestinnän tunnelin ulkopuolella paikallisille lähetys- ja monilähetysalueille sekä näillä yksityisillä IP-alueilla kumpaankin suuntaan:</string>
+ <string name="local_network_sharing_info">Tämä ominaisuus mahdollistaa pääsyn muihin paikallisverkon laitteisiin esimerkiksi jakamisen, tulostamisen, suoratoiston jne. tarpeisiin.</string>
+ <string name="log_out">Kirjaudu ulos</string>
+ <string name="logged_in_description">Oikea tilin numero</string>
+ <string name="logged_in_title">Kirjautuneena sisään</string>
+ <string name="logging_in_description">Tarkistetaan tilin numeroa</string>
+ <string name="logging_in_title">Kirjaudutaan sisään...</string>
+ <string name="login_description">Syötä tilisi numero</string>
+ <string name="login_fail_description">Virheellinen tilin numero</string>
+ <string name="login_fail_title">Sisäänkirjautuminen epäonnistui</string>
+ <string name="login_title">Kirjaudu sisään</string>
+ <string name="malware_info">Varoitus: haittaohjelmien estotoiminto ei ole virustorjuntaohjelma, eikä sitä pidä käyttää sellaisena – kyseessä on vain ylimääräinen suojauskerros.</string>
+ <string name="max_devices_confirm_removal_description">Haluatko varmasti kirjautua ulos laitteelta &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Voit nyt jatkaa kirjautumista tällä laitteella.</string>
+ <string name="max_devices_resolved_title">Mahtavaa!</string>
+ <string name="max_devices_warning_description">Kirjaudu ulos vähintään yhdestä luettelon laitteesta poistamalla se. Löydät vastaavan laitteen nimen laitteen tiliasetuksista.</string>
+ <string name="max_devices_warning_title">Liikaa laitteita</string>
+ <string name="mullvad_account_number">Mullvad-tilin numero</string>
+ <string name="no_matching_relay">Mikään palvelin ei vastaa asetuksiasi. Kokeile vaihtaa palvelinta tai muuttaa muita asetuksia.</string>
+ <string name="no_wireguard_key">Käypä WireGuard-avain puuttuu. Voit hallinnoida avaimia lisäasetuksissa.</string>
+ <string name="not_blocking_internet">VERKKOLIIKENTEESI SAATTAA VUOTAA</string>
+ <string name="obfuscation_info">Hämäysteknologian käyttäminen piilottaa WireGuard-liikenteen toisen protokollan sisään. Sitä voidaan käyttää kiertämään sensuuria ja muita suodatuksia niissä tapauksissa, kun tavallinen WireGuard-yhteys muutoin estettäisi.</string>
+ <string name="obfuscation_on_udp_over_tcp">Käytössä (UDP TCP:n kautta)</string>
+ <string name="off">Pois</string>
+ <string name="on">Päällä</string>
+ <string name="out_address">Lähtevä</string>
+ <string name="out_of_time">Ei käyttöaikaa</string>
+ <string name="paid_until">Maksu ennen</string>
+ <string name="pay_to_start_using">Voit aloittaa sovelluksen käyttämisen lisäämällä ensin aikaa tilillesi.</string>
+ <string name="port">Portti</string>
+ <string name="port_removal_notice">Toiminto poistaa kaikki välitetyt portit. Paikalliset asetukset tallennetaan.</string>
+ <string name="privacy_disclaimer_title">Tietosuoja</string>
+ <string name="privacy_policy_label">Tietosuojakäytäntö</string>
+ <string name="problem_report_description">Jotta voimme olla avuksi parhaamme mukaan, sovelluksesi lokitiedosto liitetään tähän viestiin. Tietosi pysyvät suojattuina ja yksityisinä, ja ne anonymisoidaan salatun kanavan kautta ennen lähetystä.</string>
+ <string name="quantum_creating_secure_connection">LUODAAN KVANTTISUOJATTU YHTEYS</string>
+ <string name="quantum_resistant_info_first_paragaph">Tämä ominaisuus tekee WireGuard-tunnelista kestävän kvanttitietokoneiden mahdollisia hyökkäyksiä vastaan.</string>
+ <string name="quantum_resistant_info_second_paragaph">Tunneli torjuu hyökkäykset suorittamalla ylimääräisen avaimenvaihdon käyttämällä ensin kvanttiturvallista algoritmia, jonka tuloksen se sekoittaa WireGuardin tavalliseen salaukseen. Tämä ylimääräinen vaihe käyttää noin 500 kiB liikennettä joka kerta, kun uusi tunneli luodaan.</string>
+ <string name="quantum_resistant_title">Kvanttihyökkäyksiä kestävä tunneli</string>
+ <string name="quantum_secure_connection">KVANTTISUOJATTU YHTEYS</string>
+ <string name="reconnecting">Yhdistetään uudelleen</string>
+ <string name="redeem">Lunasta</string>
+ <string name="redeem_voucher">Lunasta kuponki</string>
+ <string name="remove_button">Poista</string>
+ <string name="report_a_problem">Raportoi ongelma</string>
+ <string name="reset_to_default_button">Palauta oletusarvo</string>
+ <string name="search_placeholder">Hae...</string>
+ <string name="secure_connection">SUOJATTU YHTEYS</string>
+ <string name="secured">Suojattu</string>
+ <string name="select_location">Valitse sijainti</string>
+ <string name="select_location_description">Kun yhteys on muodostettu, yksityinen ja suojattu sijainti valitulta alueelta naamioi todellisen sijaintisi.</string>
+ <string name="select_location_empty_text_first_row">Ei tuloksia haulle &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Kokeile toista hakua.</string>
+ <string name="send">Lähetä</string>
+ <string name="send_anyway">Lähetä silti</string>
+ <string name="sending">Lähetetään...</string>
+ <string name="sent">Lähetetty</string>
+ <string name="sent_contact">Tarvittaessa otamme sinuun yhteyttä osoitteeseen %1$s</string>
+ <string name="sent_thanks">Kiitos!</string>
+ <string name="set_dns_error">Järjestelmän DNS-palvelimen asettaminen ei onnistu. Lähetä ongelmaraportti.</string>
+ <string name="set_firewall_policy_error">Palomuurisääntöjä ei voida käyttää. Suorita vianetsintä tai lähetä ongelmaraportti.</string>
+ <string name="settings">Asetukset</string>
+ <string name="settings_account">Tili</string>
+ <string name="settings_preferences">Asetukset</string>
+ <string name="settings_vpn">VPN-asetukset</string>
+ <string name="show_account_number">Näytä tilin numero</string>
+ <string name="show_system_apps">Näytä järjestelmäsovellukset</string>
+ <string name="split_tunneling_description">Jaettu tunnelointi antaa mahdollisuuden valita, mitä sovelluksia ei reititetä VPN-tunnelin kautta.</string>
+ <string name="start_tunnel_error">Tunneliyhteyden muodostaminen ei onnistu. Lähetä ongelmaraportti.</string>
+ <string name="submit_button">Lähetä</string>
+ <string name="switch_location">Vaihda sijaintia</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Vaihda VPN:ää</string>
+ <string name="try_again">Yritä uudelleen</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Määrittää, mihin VPN-palvelimen TCP-porttiin \"UDP TCP:n kautta\" -hämäysteknologia-protokollan tulee muodostaa yhteys.</string>
+ <string name="unsecured">Suojaamaton</string>
+ <string name="unsecured_connection">SUOJAAMATON YHTEYS</string>
+ <string name="unsupported_version">EI-TUETTU VERSIO</string>
+ <string name="unsupported_version_description">Yksityisyytesi saattaa olla vaarassa tämän sovellusversion, jota ei tueta, vuoksi. Päivitä versio heti.</string>
+ <string name="unsupported_version_without_upgrade">Sovellusversiotasi ei tueta.</string>
+ <string name="update_available">PÄIVITYS SAATAVILLA</string>
+ <string name="update_available_description">Asenna Mullvad VPN (%1$s) pysyäksesi ajan tasalla</string>
+ <string name="update_available_footer">Päivitys saatavilla. Lataa se pysyäksesi suojattuna.</string>
+ <string name="update_dns_server_dialog_title">Päivitä DNS-palvelin</string>
+ <string name="user_email_hint">Sähköpostisi (valinnainen)</string>
+ <string name="user_message_hint">Jotta voisimme avustaa sinua paremmin, kirjoita englanniksi tai ruotsiksi ja mainitse, mistä maasta muodostat yhteyden.</string>
+ <string name="view_logs">Tarkastele sovelluslokeja</string>
+ <string name="virtual_adapter_problem">Virtuaalisovittimen virhe</string>
+ <string name="voucher_already_used">Kuponkikoodi on jo käytetty.</string>
+ <string name="vpn_permission_denied_error">VPN-lupa evättiin tunnelia luotaessa. Yritä muodostaa yhteys uudelleen.</string>
+ <string name="vpn_permission_error_notification_message">Aina päällä oleva VPN on mahdollisesti otettu käyttöön toiselle sovellukselle</string>
+ <string name="vpn_permission_error_notification_title">VPN-lupavirhe</string>
+ <string name="we_will_look_into_this">Tutkimme asiaa.</string>
+ <string name="wireguard_custon_port_title">Mukautettu</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">Aseta WireGuardin MTU-arvo väliltä %1$d–%2$d.</string>
+ <string name="wireguard_port_info_description">Automaattinen asetus valitsee satunnaisesti käytettävissä olevista, alla luetelluista porteista.</string>
+ <string name="wireguard_port_info_port_range">Mukautettu portti voi olla mikä tahansa sallittu arvo: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-fr/plurals.xml b/android/lib/resource/src/main/res/values-fr/plurals.xml
new file mode 100644
index 0000000000..b708512154
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-fr/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 jour restant</item>
+ <item quantity="other">%1$d jours restants</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 mois restant</item>
+ <item quantity="other">%1$d mois restants</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 an restant</item>
+ <item quantity="other">%1$d ans restants</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">il y a un jour</item>
+ <item quantity="other">il y a %1$d jours</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">il y a une minute</item>
+ <item quantity="other">il y a %1$d minutes</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">il y a un mois</item>
+ <item quantity="other">il y a %1$d mois</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">il y a un an</item>
+ <item quantity="other">il y a %1$d ans</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">il y a une heure</item>
+ <item quantity="other">Il y a %1$d heures</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Les crédits du compte expirent dans un jour</item>
+ <item quantity="other">Les crédits du compte expirent dans %1$d jours</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Les crédits du compte expirent dans une heure</item>
+ <item quantity="other">Les crédits du compte expirent dans %1$d heures</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-fr/strings.xml b/android/lib/resource/src/main/res/values-fr/strings.xml
new file mode 100644
index 0000000000..0a6a848969
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-fr/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Compte créé</string>
+ <string name="account_credit_expires_in_a_few_minutes">Les crédits du compte expirent dans quelques minutes</string>
+ <string name="account_credit_expires_soon">Les crédits du compte expirent bientôt</string>
+ <string name="account_credit_has_expired">Vous n\'avez plus de temps de VPN sur ce compte.</string>
+ <string name="account_number">Numéro de compte</string>
+ <string name="account_time_notification_channel_description">Affiche des rappels lorsque le temps du compte va expirer</string>
+ <string name="account_time_notification_channel_name">Rappels de temps pour le compte</string>
+ <string name="add_a_server">Ajouter un serveur</string>
+ <string name="add_dns_server_dialog_title">Ajouter un serveur DNS</string>
+ <string name="add_time_to_account">Achetez du crédit sur notre site web ou échangez un bon.</string>
+ <string name="agree_and_continue">Accepter et continuer</string>
+ <string name="all_applications">Toutes les applications</string>
+ <string name="allow_lan_footer">Autorise l\'accès aux autres appareils sur le même réseau pour partager, imprimer, etc.</string>
+ <string name="always_on_vpn_error_notification_content">Impossible de démarrer la connexion au tunnel. Veuillez désactiver « Toujours exiger un VPN « pour &lt;b&gt;%1$s&lt;/b&gt; avant d\'utiliser Mullvad VPN.</string>
+ <string name="always_on_vpn_error_notification_title">« Toujours exiger un VPN » est assigné à une autre application</string>
+ <string name="app_version">Version de l\'application</string>
+ <string name="auth_failed">Impossible d\'authentifier le compte. Veuillez envoyer un rapport de problème.</string>
+ <string name="auto_connect">Connexion automatique</string>
+ <string name="auto_connect_footer">Connexion automatique à un serveur dès le démarrage de l\'application.</string>
+ <string name="automatic">Automatique</string>
+ <string name="back">Retour</string>
+ <string name="block_ads_title">Publicités</string>
+ <string name="block_adult_content_title">Contenu pour adultes</string>
+ <string name="block_gambling_title">Jeux d\'argent</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Trackers</string>
+ <string name="blocked_connection">CONNEXION BLOQUÉE</string>
+ <string name="blocking_internet">Internet bloqué</string>
+ <string name="blocking_internet_device_offline">Internet bloqué (appareil hors ligne)</string>
+ <string name="buy_credit">Acheter des crédits</string>
+ <string name="buy_more_credit">Acheter plus de crédits</string>
+ <string name="cancel">Annuler</string>
+ <string name="changes_dialog_dismiss_button">Compris !</string>
+ <string name="changes_dialog_subtitle">Modifications dans cette version :</string>
+ <string name="confirm_local_dns">Le serveur DNS local ne fonctionnera pas si vous n\'activez pas le « Partage du réseau local » dans les préférences.</string>
+ <string name="confirm_no_email">Vous êtes sur le point d\'envoyer un signalement de problème sans nous fournir un moyen de vous contacter. Si vous désirez une réponse à votre signalement, vous devez saisir une adresse e-mail.</string>
+ <string name="confirm_removal">Oui, déconnecter l\'appareil</string>
+ <string name="congrats">Félicitations !</string>
+ <string name="connect">Sécuriser ma connexion</string>
+ <string name="connecting">Connexion</string>
+ <string name="connecting_to_daemon">Connexion au service système Mullvad...</string>
+ <string name="continue_login">Continuer avec la connexion</string>
+ <string name="copied_mullvad_account_number">Numéro de compte Mullvad copié dans le presse-papiers</string>
+ <string name="copied_to_clipboard">Copié dans le presse-papiers</string>
+ <string name="copy_account_number">Copier le numéro de compte</string>
+ <string name="create_account">Créer un compte</string>
+ <string name="creating_new_account">Création du compte…</string>
+ <string name="creating_secure_connection">CRÉATION D\'UNE CONNEXION SÉCURISÉE</string>
+ <string name="critical_error">Erreur critique (votre attention est requise)</string>
+ <string name="custom_dns_footer">Activez pour ajouter au moins un serveur DNS.</string>
+ <string name="custom_dns_hint">Saisir l\'IP</string>
+ <string name="custom_tunnel_host_resolution_error">Échec de la résolution de l\'hôte du tunnel personnalisé. Essayez de modifier vos paramètres.</string>
+ <string name="device_inactive_description">Vous avez supprimé cet appareil. Vous devrez vous reconnecter pour connecter cet appareil à nouveau.</string>
+ <string name="device_inactive_title">L\'appareil est inactif</string>
+ <string name="device_inactive_unblock_warning">Aller à la connexion débloquera la connexion Internet sur cet appareil.</string>
+ <string name="device_name">Nom de l\'appareil</string>
+ <string name="disconnect">Déconnexion</string>
+ <string name="disconnecting">Déconnexion en cours</string>
+ <string name="dismiss">Ignorer</string>
+ <string name="dns_content_blockers_info">Lorsque cette fonctionnalité est activée, elle empêche l\'appareil de contacter certains domaines ou sites Web connus pour distribuer des publicités, des logiciels malveillants, des trackers et plus.</string>
+ <string name="dns_content_blockers_subtitle">Désactivez &lt;b&gt;%1$s&lt;/b&gt; ci-dessous pour activer ces paramètres.</string>
+ <string name="dns_content_blockers_title">Bloqueurs de contenu DNS</string>
+ <string name="dont_have_an_account">Vous n\'avez pas de numéro de compte ?</string>
+ <string name="duplicate_address_warning">Cette adresse a déjà été saisie.</string>
+ <string name="edit_message">Modifier le message</string>
+ <string name="enable">Activer</string>
+ <string name="enable_custom_dns">Utiliser un serveur DNS personnalisé</string>
+ <string name="enter_value_placeholder">Saisir le MTU</string>
+ <string name="enter_voucher_code">Saisir un code de bon</string>
+ <string name="error_occurred">Une erreur est survenue.</string>
+ <string name="error_state">ÉCHEC DE LA SÉCURISATION DE LA CONNEXION</string>
+ <string name="exclude_applications">Applications exclues</string>
+ <string name="failed_to_block_internet">Impossible de bloquer tout le trafic réseau. Veuillez dépanner ou envoyer un rapport de problème.</string>
+ <string name="failed_to_create_account">Échec de la création du compte</string>
+ <string name="failed_to_fetch_devices">Impossible de récupérer la liste des appareils</string>
+ <string name="failed_to_remove_device">Impossible de supprimer l\'appareil</string>
+ <string name="failed_to_send">Échec de l\'envoi</string>
+ <string name="failed_to_send_details">Si vous quittez le formulaire et réessayez plus tard, les informations que vous avez déjà saisies seront toujours là.</string>
+ <string name="faqs_and_guides">FAQ et guides</string>
+ <string name="foreground_notification_channel_description">Affiche l\'état actuel du tunnel VPN</string>
+ <string name="foreground_notification_channel_name">État du tunnel VPN</string>
+ <string name="go_to_login">Aller à la connexion</string>
+ <string name="here_is_your_account_number">Voici votre numéro de compte. Gardez-le !</string>
+ <string name="hide_account_number">Masquer le numéro de compte</string>
+ <string name="hint_default">Par défaut</string>
+ <string name="in_address">Entrante</string>
+ <string name="invalid_dns_servers">Les adresses de serveur DNS personnalisées %1$s ne sont pas valides</string>
+ <string name="invalid_voucher">Le code du bon n\'est pas valide.</string>
+ <string name="ipv6_unavailable">Impossible de configurer IPv6. Désactivez le protocole dans l\'application ou activez-le dans votre appareil.</string>
+ <string name="is_offline">Votre appareil est hors ligne. Le tunnel se connectera automatiquement une fois votre appareil à nouveau en ligne.</string>
+ <string name="less_than_a_day_left">moins d\'un jour restant</string>
+ <string name="less_than_a_minute_ago">il y a moins d\'une minute</string>
+ <string name="local_network_sharing">Partage réseau local</string>
+ <string name="local_network_sharing_additional_info">Pour ce faire, il autorise la communication réseau à l\'extérieur du tunnel vers les plages locales de multidiffusion et de diffusion, ainsi que vers et à partir de ces plages IP privées :</string>
+ <string name="local_network_sharing_info">Cette fonctionnalité permet d\'accéder à d\'autres appareils sur le réseau local, par exemple pour le partage, l\'impression, le streaming, etc.</string>
+ <string name="log_out">Déconnexion</string>
+ <string name="logged_in_description">Numéro de compte valide</string>
+ <string name="logged_in_title">Connecté</string>
+ <string name="logging_in_description">Vérification du numéro de compte</string>
+ <string name="logging_in_title">Connexion...</string>
+ <string name="login_description">Saisissez votre numéro de compte</string>
+ <string name="login_fail_description">Numéro de compte non valide</string>
+ <string name="login_fail_title">Échec de la connexion</string>
+ <string name="login_title">Connexion</string>
+ <string name="malware_info">Avertissement : le bloqueur de malware n\'est pas un anti-virus et ne doit pas être traité comme tel, il s\'agit juste d\'une couche de protection supplémentaire.</string>
+ <string name="max_devices_confirm_removal_description">Voulez-vous vraiment déconnecter &lt;b&gt;%1$s&lt;/b&gt; ?</string>
+ <string name="max_devices_resolved_description">Vous pouvez maintenant continuer la connexion sur cet appareil.</string>
+ <string name="max_devices_resolved_title">Super !</string>
+ <string name="max_devices_warning_description">Merci de vous déconnecter d\'au moins un appareil en le supprimant de la liste ci-dessous. Vous trouverez le nom de l\'appareil correspondant dans les paramètres du compte de l\'appareil.</string>
+ <string name="max_devices_warning_title">Trop d\'appareils</string>
+ <string name="mullvad_account_number">Numéro de compte Mullvad</string>
+ <string name="no_matching_relay">Aucun serveur ne correspond à vos paramètres, essayez de modifier les paramètres du serveur ou d\'autres paramètres.</string>
+ <string name="no_wireguard_key">Une clé WireGuard valide manque. Gérez les clés dans les paramètres avancés.</string>
+ <string name="not_blocking_internet">VOUS POURRIEZ AVOIR DES FUITES DE TRAFIC RÉSEAU</string>
+ <string name="obfuscation_info">La dissimulation cache le trafic WireGuard à l\'intérieur d\'un autre protocole. Elle peut être utilisée pour aider à contourner la censure et d\'autres types de filtrage, où une connexion WireGuard simple serait bloquée.</string>
+ <string name="obfuscation_on_udp_over_tcp">Activé (UDP sur TCP)</string>
+ <string name="off">Désactivé</string>
+ <string name="on">Activé</string>
+ <string name="out_address">Sortante</string>
+ <string name="out_of_time">Plus de temps</string>
+ <string name="paid_until">Payé jusqu\'au</string>
+ <string name="pay_to_start_using">Pour commencer à utiliser l\'application, vous devez d\'abord ajouter du temps à votre compte.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Ceci supprimera tous les ports transférés. Les paramètres locaux seront enregistrés.</string>
+ <string name="privacy_disclaimer_title">Confidentialité</string>
+ <string name="privacy_policy_label">Politique de confidentialité</string>
+ <string name="problem_report_description">Pour mieux vous aider, le fichier journal de l\'application est joint à ce message. Vos données restent privées et en sécurité dans la mesure où elles sont rendues anonymes avant d\'être envoyées via un canal chiffré.</string>
+ <string name="quantum_creating_secure_connection">CRÉATION D\'UNE CONNEXION QUANTIQUE SÉCURISÉE</string>
+ <string name="quantum_resistant_info_first_paragaph">Cette fonctionnalité rend le tunnel WireGuard résistant aux attaques potentielles des ordinateurs quantiques.</string>
+ <string name="quantum_resistant_info_second_paragaph">Pour ce faire, il effectue un échange de clés supplémentaire à l\'aide d\'un algorithme à sécurité quantique et mélange le résultat au chiffrement habituel de WireGuard. Cette étape supplémentaire utilise environ 500 kiB de trafic chaque fois qu\'un nouveau tunnel est établi.</string>
+ <string name="quantum_resistant_title">Tunnel résistant aux attaques quantiques</string>
+ <string name="quantum_secure_connection">CONNEXION QUANTIQUE SÉCURISÉE</string>
+ <string name="reconnecting">Reconnexion</string>
+ <string name="redeem">Échanger</string>
+ <string name="redeem_voucher">Échanger un bon</string>
+ <string name="remove_button">Supprimer</string>
+ <string name="report_a_problem">Signaler un problème</string>
+ <string name="reset_to_default_button">Réinitialiser à la valeur par défaut</string>
+ <string name="search_placeholder">Rechercher...</string>
+ <string name="secure_connection">CONNEXION SÉCURISÉE</string>
+ <string name="secured">Sécurisé</string>
+ <string name="select_location">Sélectionner une localisation</string>
+ <string name="select_location_description">Quand vous êtes connecté, votre vraie localisation est masquée par une localisation privée et sécurisée de la région sélectionnée.</string>
+ <string name="select_location_empty_text_first_row">Aucun résultat pour &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Essayez une autre recherche.</string>
+ <string name="send">Envoyer</string>
+ <string name="send_anyway">Envoyer quand même</string>
+ <string name="sending">Envoi...</string>
+ <string name="sent">Envoyé</string>
+ <string name="sent_contact">Si nécessaire, nous vous contacterons à l\'adresse %1$s</string>
+ <string name="sent_thanks">Merci !</string>
+ <string name="set_dns_error">Impossible de définir le serveur DNS système. Veuillez envoyer un rapport de problème.</string>
+ <string name="set_firewall_policy_error">Impossible d\'appliquer les règles du pare-feu. Merci de résoudre le problème ou d\'envoyer un rapport de problème.</string>
+ <string name="settings">Paramètres</string>
+ <string name="settings_account">Compte</string>
+ <string name="settings_preferences">Préférences</string>
+ <string name="settings_vpn">Paramètres VPN</string>
+ <string name="show_account_number">Afficher le numéro de compte</string>
+ <string name="show_system_apps">Afficher les applications système</string>
+ <string name="split_tunneling_description">Le split tunneling permet de sélectionner quelles applications ne doivent pas passer par le tunnel VPN.</string>
+ <string name="start_tunnel_error">Impossible de démarrer la connexion au tunnel. Veuillez envoyer un rapport de problème.</string>
+ <string name="submit_button">Envoyer</string>
+ <string name="switch_location">Changer de localisation</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Activer/désactiver le VPN</string>
+ <string name="try_again">Réessayer</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Le port TCP auquel le protocole de dissimulation UDP sur TCP doit se connecter sur le serveur VPN.</string>
+ <string name="unsecured">Non sécurisé</string>
+ <string name="unsecured_connection">CONNEXION NON SÉCURISÉE</string>
+ <string name="unsupported_version">VERSION NON PRISE EN CHARGE</string>
+ <string name="unsupported_version_description">Votre confidentialité peut être en danger avec cette version non prise en charge de l\'application. Veuillez la mettre à jour maintenant.</string>
+ <string name="unsupported_version_without_upgrade">Vous utilisez une version de l\'application non prise en charge.</string>
+ <string name="update_available">MISE À JOUR DISPONIBLE</string>
+ <string name="update_available_description">Installez Mullvad VPN (%1$s) pour rester à jour</string>
+ <string name="update_available_footer">Mise à jour disponible. Téléchargez-la pour rester en sécurité.</string>
+ <string name="update_dns_server_dialog_title">Mettre à jour le serveur DNS</string>
+ <string name="user_email_hint">Votre e-mail (facultatif)</string>
+ <string name="user_message_hint">Pour nous permettre de mieux vous assister, merci d\'écrire en anglais ou en suédois et d\'indiquer le pays à partir duquel vous vous connectez.</string>
+ <string name="view_logs">Afficher les journaux de l\'application</string>
+ <string name="virtual_adapter_problem">Erreur d\'adaptateur virtuel</string>
+ <string name="voucher_already_used">Le code du bon a déjà été utilisé.</string>
+ <string name="vpn_permission_denied_error">La permission VPN a été refusée lors de la création du tunnel. Veuillez essayer de vous reconnecter.</string>
+ <string name="vpn_permission_error_notification_message">« Toujours exiger un VPN » est peut-être activé pour une autre application</string>
+ <string name="vpn_permission_error_notification_title">Erreur de permission VPN</string>
+ <string name="we_will_look_into_this">Nous allons nous pencher dessus.</string>
+ <string name="wireguard_custon_port_title">Personnalisé</string>
+ <string name="wireguard_mtu">MTU WireGuard</string>
+ <string name="wireguard_mtu_footer">Définir la valeur MTU WireGuard. Plage valide : %1$d - %2$d.</string>
+ <string name="wireguard_port_info_description">Le réglage automatique choisira au hasard parmi la plage de ports valide affichée ci-dessous.</string>
+ <string name="wireguard_port_info_port_range">Le port personnalisé peut prendre n\'importe quelle valeur dans les plages valides : %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-it/plurals.xml b/android/lib/resource/src/main/res/values-it/plurals.xml
new file mode 100644
index 0000000000..4fec91b5ba
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-it/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 giorno rimanente</item>
+ <item quantity="other">%1$d giorni rimanenti</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 mese rimanente</item>
+ <item quantity="other">%1$d mesi rimanenti</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 anno rimanente</item>
+ <item quantity="other">%1$d anni rimanenti</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">un giorno fa</item>
+ <item quantity="other">%1$d giorni fa</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">un minuto fa</item>
+ <item quantity="other">%1$d minuti fa</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">un mese fa</item>
+ <item quantity="other">%1$d mesi fa</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">un anno fa</item>
+ <item quantity="other">%1$d anni fa</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">un\'ora fa</item>
+ <item quantity="other">%1$d ore fa</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Il credito dell\'account scade tra un giorno</item>
+ <item quantity="other">Il credito dell\'account scade tra %1$d giorni</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Il credito dell\'account scade tra un\'ora</item>
+ <item quantity="other">Il credito dell\'account scade tra %1$d ore</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-it/strings.xml b/android/lib/resource/src/main/res/values-it/strings.xml
new file mode 100644
index 0000000000..4040af912e
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-it/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Account creato</string>
+ <string name="account_credit_expires_in_a_few_minutes">Il credito dell\'account scadrà tra pochi minuti</string>
+ <string name="account_credit_expires_soon">Il credito dell\'account scadrà presto</string>
+ <string name="account_credit_has_expired">Hai esaurito il tempo VPN su questo account.</string>
+ <string name="account_number">Numero di account</string>
+ <string name="account_time_notification_channel_description">Mostra promemoria quando il tempo dell\'account sta per scadere</string>
+ <string name="account_time_notification_channel_name">Promemoria temporali per l\'account</string>
+ <string name="add_a_server">Aggiungi un server</string>
+ <string name="add_dns_server_dialog_title">Aggiungi server DNS</string>
+ <string name="add_time_to_account">Acquista credito sul nostro sito web o riscatta un voucher.</string>
+ <string name="agree_and_continue">Accetta e continua</string>
+ <string name="all_applications">Tutte le applicazioni</string>
+ <string name="allow_lan_footer">Consenti l\'accesso ad altri dispositivi sulla stessa rete per condividere, stampare e altro.</string>
+ <string name="always_on_vpn_error_notification_content">Impossibile avviare la connessione tunnel. Disabilita VPN sempre attiva per &lt;b&gt;%1$s&lt;/b&gt; prima di utilizzare Mullvad VPN.</string>
+ <string name="always_on_vpn_error_notification_title">VPN sempre attiva assegnata a un\'altra app</string>
+ <string name="app_version">Versione app</string>
+ <string name="auth_failed">Impossibile autenticare l\'account. Invia una segnalazione del problema.</string>
+ <string name="auto_connect">Connessione automatica</string>
+ <string name="auto_connect_footer">Connettiti automaticamente al server all\'avvio dell\'app.</string>
+ <string name="automatic">Automatico</string>
+ <string name="back">Indietro</string>
+ <string name="block_ads_title">Annunci</string>
+ <string name="block_adult_content_title">Contenuti per adulti</string>
+ <string name="block_gambling_title">Gioco d\'azzardo</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Tracker</string>
+ <string name="blocked_connection">CONNESSIONE BLOCCATA</string>
+ <string name="blocking_internet">Blocco di Internet</string>
+ <string name="blocking_internet_device_offline">Blocco di Internet (dispositivo offline)</string>
+ <string name="buy_credit">Acquista credito</string>
+ <string name="buy_more_credit">Acquista altro credito</string>
+ <string name="cancel">Annulla</string>
+ <string name="changes_dialog_dismiss_button">Ok!</string>
+ <string name="changes_dialog_subtitle">Modifiche in questa versione:</string>
+ <string name="confirm_local_dns">Il server DNS locale non funzionerà a meno che non si abiliti \"Condivisione rete locale\" in Preferenze.</string>
+ <string name="confirm_no_email">Stai inviando la segnalazione di un problema senza averci indicato un modo per ricontattarti. Se desideri ricevere risposta, inserisci un indirizzo e-mail.</string>
+ <string name="confirm_removal">Sì, disconnetti dal dispositivo</string>
+ <string name="congrats">Complimenti!</string>
+ <string name="connect">Proteggi mia connessione</string>
+ <string name="connecting">Connessione</string>
+ <string name="connecting_to_daemon">Connessione al servizio del sistema Mullvad...</string>
+ <string name="continue_login">Continua con il login</string>
+ <string name="copied_mullvad_account_number">Numero account di Mullvad copiato negli appunti</string>
+ <string name="copied_to_clipboard">Copiato negli appunti</string>
+ <string name="copy_account_number">Copia numero di account</string>
+ <string name="create_account">Crea account</string>
+ <string name="creating_new_account">Creazione account...</string>
+ <string name="creating_secure_connection">CREAZIONE CONNESSIONE PROTETTA</string>
+ <string name="critical_error">Errore critico (è necessario intervenire)</string>
+ <string name="custom_dns_footer">Abilita per aggiungere almeno un server DNS.</string>
+ <string name="custom_dns_hint">Inserisci IP</string>
+ <string name="custom_tunnel_host_resolution_error">Impossibile risolvere l\'host del tunnel personalizzato. Prova a modificare le impostazioni.</string>
+ <string name="device_inactive_description">Hai rimosso questo dispositivo. Per riconnetterti, dovrai effettuare nuovamente il login.</string>
+ <string name="device_inactive_title">Il dispositivo è inattivo</string>
+ <string name="device_inactive_unblock_warning">Andare al login sbloccherà Internet su questo dispositivo.</string>
+ <string name="device_name">Nome dispositivo</string>
+ <string name="disconnect">Disconnetti</string>
+ <string name="disconnecting">Disconnessione</string>
+ <string name="dismiss">Ignora</string>
+ <string name="dns_content_blockers_info">Quando è abilitata, questa funzionalità impedisce al dispositivo di contattare determinati domini o siti Web noti per la distribuzione di annunci, malware, tracker e altro.</string>
+ <string name="dns_content_blockers_subtitle">Disabilita &lt;b&gt;%1$s&lt;/b&gt; di seguito per attivare queste impostazioni.</string>
+ <string name="dns_content_blockers_title">Blocchi dei contenuti DNS</string>
+ <string name="dont_have_an_account">Non hai un numero di account?</string>
+ <string name="duplicate_address_warning">Questo indirizzo è già stato inserito.</string>
+ <string name="edit_message">Modifica messaggio</string>
+ <string name="enable">Abilita</string>
+ <string name="enable_custom_dns">Usa un server DNS personalizzato</string>
+ <string name="enter_value_placeholder">Inserisci MTU</string>
+ <string name="enter_voucher_code">Inserisci codice voucher</string>
+ <string name="error_occurred">Si è verificato un errore.</string>
+ <string name="error_state">IMPOSSIBILE STABILIRE UNA CONNESSIONE PROTETTA</string>
+ <string name="exclude_applications">Applicazioni escluse</string>
+ <string name="failed_to_block_internet">Impossibile bloccare tutto il traffico di rete. Consulta la risoluzione dei problemi o invia una segnalazione del problema.</string>
+ <string name="failed_to_create_account">Impossibile creare l\'account</string>
+ <string name="failed_to_fetch_devices">Impossibile recuperare l\'elenco dei dispositivi</string>
+ <string name="failed_to_remove_device">Impossibile rimuovere il dispositivo</string>
+ <string name="failed_to_send">Impossibile inviare</string>
+ <string name="failed_to_send_details">Se esci dal modulo e riprovi più tardi, le informazioni già inserite saranno ancora qui.</string>
+ <string name="faqs_and_guides">FAQ e guide</string>
+ <string name="foreground_notification_channel_description">Mostra lo stato attuale del tunnel VPN</string>
+ <string name="foreground_notification_channel_name">Stato del tunnel VPN</string>
+ <string name="go_to_login">Vai al login</string>
+ <string name="here_is_your_account_number">Ecco il tuo numero di account. Salvalo!</string>
+ <string name="hide_account_number">Nascondi numero di account</string>
+ <string name="hint_default">Predefinito</string>
+ <string name="in_address">Ricezione</string>
+ <string name="invalid_dns_servers">Gli indirizzi del server DNS personalizzato %1$s non sono validi</string>
+ <string name="invalid_voucher">Il codice voucher non è valido.</string>
+ <string name="ipv6_unavailable">Impossibile configurare IPv6. Disabilitalo nell\'app o abilitalo sul tuo dispositivo.</string>
+ <string name="is_offline">Il tuo dispositivo è offline. Il tunnel si connetterà automaticamente una volta che il tuo dispositivo sarà di nuovo online.</string>
+ <string name="less_than_a_day_left">meno di un giorno rimanente</string>
+ <string name="less_than_a_minute_ago">meno di un minuto fa</string>
+ <string name="local_network_sharing">Condivisione rete locale</string>
+ <string name="local_network_sharing_additional_info">Lo fa consentendo la comunicazione di rete al di fuori del tunnel verso intervalli multicast e broadcast locali, nonché da e verso questi intervalli IP privati:</string>
+ <string name="local_network_sharing_info">Questa funzione consente l\'accesso ad altri dispositivi sulla rete locale, ad esempio per la condivisione, la stampa, lo streaming, ecc.</string>
+ <string name="log_out">Esci</string>
+ <string name="logged_in_description">Numero di account valido</string>
+ <string name="logged_in_title">Accesso effettuato</string>
+ <string name="logging_in_description">Verifica numero di account</string>
+ <string name="logging_in_title">Accesso...</string>
+ <string name="login_description">Inserisci il tuo numero di account</string>
+ <string name="login_fail_description">Numero di account non valido</string>
+ <string name="login_fail_title">Accesso non riuscito</string>
+ <string name="login_title">Accedi</string>
+ <string name="malware_info">Avvertenza: questa protezione dai malware non è un antivirus e non deve essere trattata come tale, è solo un ulteriore livello di protezione.</string>
+ <string name="max_devices_confirm_removal_description">Vuoi davvero disconnettere &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Ora puoi continuare ad accedere su questo dispositivo.</string>
+ <string name="max_devices_resolved_title">Fantastico!</string>
+ <string name="max_devices_warning_description">Disconnettiti da almeno un dispositivo rimuovendolo dall\'elenco seguente. Puoi trovare il nome del dispositivo corrispondente nelle impostazioni dell\'account del dispositivo.</string>
+ <string name="max_devices_warning_title">Troppi dispositivi</string>
+ <string name="mullvad_account_number">Numero di account Mullvad</string>
+ <string name="no_matching_relay">Nessun server corrispondente alle tue impostazioni, prova a cambiare server o impostazioni.</string>
+ <string name="no_wireguard_key">Manca una chiave WireGuard valida. Gestisci le chiavi da Impostazioni avanzate.</string>
+ <string name="not_blocking_internet">POSSIBILI PERDITE NEL TRAFFICO DI RETE</string>
+ <string name="obfuscation_info">L\'offuscamento nasconde il traffico WireGuard all\'interno di un altro protocollo. Può essere utilizzato per aggirare la censura e altri tipi di filtraggio, in cui una semplice connessione WireGuard verrebbe bloccata.</string>
+ <string name="obfuscation_on_udp_over_tcp">On (UDP-over-TCP)</string>
+ <string name="off">Off</string>
+ <string name="on">On</string>
+ <string name="out_address">Invio</string>
+ <string name="out_of_time">Scaduto</string>
+ <string name="paid_until">Pagato fino al</string>
+ <string name="pay_to_start_using">Per iniziare a utilizzare l\'app, devi prima aggiungere tempo al tuo account.</string>
+ <string name="port">Porta</string>
+ <string name="port_removal_notice">Questa operazione eliminerà tutte le porte inoltrate. Le impostazioni locali verranno salvate.</string>
+ <string name="privacy_disclaimer_title">Privacy</string>
+ <string name="privacy_policy_label">Informativa sulla privacy</string>
+ <string name="problem_report_description">Per aiutarti in modo più efficace, il file di registro della tua app sarà allegato a questo messaggio. I tuoi dati rimarranno protetti e privati, e saranno anonimizzati prima di essere inviati tramite un canale crittografato.</string>
+ <string name="quantum_creating_secure_connection">CREAZIONE CONNESSIONE QUANTISTICA PROTETTA</string>
+ <string name="quantum_resistant_info_first_paragaph">Questa funzionalità rende il tunnel WireGuard resistente ai potenziali attacchi dei computer quantistici.</string>
+ <string name="quantum_resistant_info_second_paragaph">L\'operazione viene effettuata eseguendo uno scambio di chiavi aggiuntivo con un algoritmo di sicurezza quantistica e mescolando il risultato nella normale crittografia di WireGuard. Questo passaggio aggiuntivo utilizza circa 500 kiB di traffico ogni volta che viene stabilito un nuovo tunnel.</string>
+ <string name="quantum_resistant_title">Tunnel resistente agli attacchi quantistici</string>
+ <string name="quantum_secure_connection">CONNESSIONE QUANTISTICA PROTETTA</string>
+ <string name="reconnecting">Riconnessione</string>
+ <string name="redeem">Riscatta</string>
+ <string name="redeem_voucher">Riscatta voucher</string>
+ <string name="remove_button">Rimuovi</string>
+ <string name="report_a_problem">Segnala un problema</string>
+ <string name="reset_to_default_button">Ripristina predefiniti</string>
+ <string name="search_placeholder">Cerca...</string>
+ <string name="secure_connection">CONNESSIONE PROTETTA</string>
+ <string name="secured">Protetto</string>
+ <string name="select_location">Seleziona posizione</string>
+ <string name="select_location_description">Durante la connessione, la tua posizione reale è nascosta da una posizione privata e protetta nell\'area selezionata.</string>
+ <string name="select_location_empty_text_first_row">Nessun risultato per &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Prova un\'altra ricerca.</string>
+ <string name="send">Invia</string>
+ <string name="send_anyway">Invia comunque</string>
+ <string name="sending">Invio...</string>
+ <string name="sent">Inviato</string>
+ <string name="sent_contact">Se necessario, ti contatteremo all\'indirizzo %1$s</string>
+ <string name="sent_thanks">Grazie!</string>
+ <string name="set_dns_error">Impossibile impostare il server DNS di sistema. Invia una segnalazione del problema.</string>
+ <string name="set_firewall_policy_error">Impossibile applicare le regole del firewall. Consulta la risoluzione dei problemi o invia una segnalazione del problema.</string>
+ <string name="settings">Impostazioni</string>
+ <string name="settings_account">Account</string>
+ <string name="settings_preferences">Preferenze</string>
+ <string name="settings_vpn">Impostazioni VPN</string>
+ <string name="show_account_number">Mostra numero di account</string>
+ <string name="show_system_apps">Mostra app di sistema</string>
+ <string name="split_tunneling_description">Lo split tunneling consente di selezionare quali applicazioni non devono essere instradate attraverso il tunnel VPN.</string>
+ <string name="start_tunnel_error">Impossibile avviare la connessione tunnel. Invia una segnalazione del problema.</string>
+ <string name="submit_button">Invia</string>
+ <string name="switch_location">Cambia posizione</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Attiva/disattiva VPN</string>
+ <string name="try_again">Riprova</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">A quale porta TCP deve connettersi il protocollo di offuscamento UDP-over-TCP sul server VPN.</string>
+ <string name="unsecured">Non protetto</string>
+ <string name="unsecured_connection">CONNESSIONE NON PROTETTA</string>
+ <string name="unsupported_version">VERSIONE NON SUPPORTATA</string>
+ <string name="unsupported_version_description">La tua privacy potrebbe essere a rischio con questa versione dell\'app non supportata. Aggiornala subito.</string>
+ <string name="unsupported_version_without_upgrade">Stai eseguendo una versione dell\'app non supportata.</string>
+ <string name="update_available">AGGIORNAMENTO DISPONIBILE</string>
+ <string name="update_available_description">Installa Mullvad VPN (%1$s) per rimanere aggiornato</string>
+ <string name="update_available_footer">Aggiornamento disponibile; esegui il download per rimanere protetto.</string>
+ <string name="update_dns_server_dialog_title">Aggiorna server DNS</string>
+ <string name="user_email_hint">La tua e-mail (opzionale)</string>
+ <string name="user_message_hint">Per consentirci di assisterti meglio, scrivi in ​​inglese o in svedese e indica da quale Paese ti stai connettendo.</string>
+ <string name="view_logs">Visualizza registri app</string>
+ <string name="virtual_adapter_problem">Errore scheda virtuale</string>
+ <string name="voucher_already_used">Il codice voucher è già stato utilizzato.</string>
+ <string name="vpn_permission_denied_error">L\'autorizzazione VPN è stata negata durante la creazione del tunnel. Prova a connetterti di nuovo.</string>
+ <string name="vpn_permission_error_notification_message">La VPN sempre attiva potrebbe essere abilitata per un\'altra app</string>
+ <string name="vpn_permission_error_notification_title">Errore di autorizzazione VPN</string>
+ <string name="we_will_look_into_this">Verificheremo.</string>
+ <string name="wireguard_custon_port_title">Personalizzato</string>
+ <string name="wireguard_mtu">MTU WireGuard</string>
+ <string name="wireguard_mtu_footer">Imposta il valore MTU WireGuard. Intervallo valido: %1$d - %2$d.</string>
+ <string name="wireguard_port_info_description">L\'impostazione automatica sceglierà in modo casuale una porta valida negli intervalli mostrati di seguito.</string>
+ <string name="wireguard_port_info_port_range">La porta personalizzata può essere qualsiasi valore all\'interno degli intervalli validi: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-ja/plurals.xml b/android/lib/resource/src/main/res/values-ja/plurals.xml
new file mode 100644
index 0000000000..7d0f53e021
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-ja/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="other">残り%1$d日</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="other">残り%1$d ヶ月</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="other">残り%1$d 年</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="other">%1$d 日前</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="other">%1$d 分前</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="other">%1$d ヶ月前</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="other">%1$d 年前</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="other">%1$d時間前</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="other">アカウントのクレジットが%1$d日後に無効になります</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="other">アカウントのクレジットが%1$d時間後に無効になります</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-ja/strings.xml b/android/lib/resource/src/main/res/values-ja/strings.xml
new file mode 100644
index 0000000000..0b261161fc
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-ja/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">アカウントを作成しました</string>
+ <string name="account_credit_expires_in_a_few_minutes">アカウントのクレジットが数分後に無効になります</string>
+ <string name="account_credit_expires_soon">アカウントのクレジットがもうすぐ無効になります</string>
+ <string name="account_credit_has_expired">このアカウントには、もう残っているVPN時間がありません。</string>
+ <string name="account_number">アカウント番号</string>
+ <string name="account_time_notification_channel_description">アカウントの期限切れが迫っているときにリマインダーを表示します</string>
+ <string name="account_time_notification_channel_name">アカウント時間のリマインダー</string>
+ <string name="add_a_server">サーバーを追加</string>
+ <string name="add_dns_server_dialog_title">DNS サーバーを追加</string>
+ <string name="add_time_to_account">当社ウェブサイトでクレジットを購入するか、バウチャーを使用してください。</string>
+ <string name="agree_and_continue">同意して続行</string>
+ <string name="all_applications">すべてのアプリケーション</string>
+ <string name="allow_lan_footer">共有や印刷などのため、同一ネットワーク上の他のデバイスへのアクセスを許可します。</string>
+ <string name="always_on_vpn_error_notification_content">トンネル接続を開始できません。Mullvad VPNを使用する前に&lt;b&gt;%1$s&lt;/b&gt;のAlways-on VPNを無効にしてください。</string>
+ <string name="always_on_vpn_error_notification_title">Always-on VPNは他のアプリに割り当てられています</string>
+ <string name="app_version">アプリのバージョン</string>
+ <string name="auth_failed">アカウントを認証できません。問題の報告を送信してください。</string>
+ <string name="auto_connect">自動接続</string>
+ <string name="auto_connect_footer">アプリ起動時に自動的にサーバーに接続します。</string>
+ <string name="automatic">自動</string>
+ <string name="back">戻る</string>
+ <string name="block_ads_title">広告</string>
+ <string name="block_adult_content_title">アダルトコンテンツ</string>
+ <string name="block_gambling_title">ギャンブル</string>
+ <string name="block_malware_title">マルウェア</string>
+ <string name="block_trackers_title">トラッカー</string>
+ <string name="blocked_connection">ブロックされた接続</string>
+ <string name="blocking_internet">インターネットをブロック中</string>
+ <string name="blocking_internet_device_offline">インターネットをブロック中 (デバイスがオフライン)</string>
+ <string name="buy_credit">クレジットを購入</string>
+ <string name="buy_more_credit">追加クレジットを購入</string>
+ <string name="cancel">キャンセル</string>
+ <string name="changes_dialog_dismiss_button">了解</string>
+ <string name="changes_dialog_subtitle">このバージョンでの変更内容:</string>
+ <string name="confirm_local_dns">環境設定で \"ローカルネットワーク共有\" を有効にしない限り、ローカルDNSサーバーは機能しません。</string>
+ <string name="confirm_no_email">お客様への返信先を入力せずに問題の報告を送信しようとしています。ご報告に対する返信が必要な場合は、返信先のメールアドレスを入力する必要があります。</string>
+ <string name="confirm_removal">はい。デバイスをログアウトさせます</string>
+ <string name="congrats">おめでとうございます!</string>
+ <string name="connect">接続を保護する</string>
+ <string name="connecting">接続中</string>
+ <string name="connecting_to_daemon">Mullvad システムサービスに接続中...</string>
+ <string name="continue_login">ログインを続ける</string>
+ <string name="copied_mullvad_account_number">Mullvadアカウント番号をクリップボードにコピーしました</string>
+ <string name="copied_to_clipboard">クリップボードにコピーしました</string>
+ <string name="copy_account_number">アカウント番号のコピー</string>
+ <string name="create_account">アカウントを作成する</string>
+ <string name="creating_new_account">アカウントを作成中...</string>
+ <string name="creating_secure_connection">セキュリティ保護接続を確立中</string>
+ <string name="critical_error">重大なエラー (ご注意ください)</string>
+ <string name="custom_dns_footer">1つ以上のDNSサーバーを追加するには有効にしてください。</string>
+ <string name="custom_dns_hint">IPを入力</string>
+ <string name="custom_tunnel_host_resolution_error">カスタムトンネルのホストを解決できません。設定を変更してみてください。</string>
+ <string name="device_inactive_description">このデバイスを削除しました。再度接続するには、ログインし直す必要があります。</string>
+ <string name="device_inactive_title">デバイスが無効です</string>
+ <string name="device_inactive_unblock_warning">ログインに進むと、このデバイスのインターネットのブロックが解除されます。</string>
+ <string name="device_name">デバイス名</string>
+ <string name="disconnect">接続解除</string>
+ <string name="disconnecting">接続解除中</string>
+ <string name="dismiss">閉じる</string>
+ <string name="dns_content_blockers_info">この機能を有効にすると、広告、マルウェア、トラッカーなどの配信が確認されている特定のドメインまたはWebサイトへのデバイスの接続が阻止されます。</string>
+ <string name="dns_content_blockers_subtitle">これらの設定を有効にするには、以下で&lt;b&gt;%1$s&lt;/b&gt;を無効にしてください。</string>
+ <string name="dns_content_blockers_title">DNSコンテンツブロッカー</string>
+ <string name="dont_have_an_account">アカウント番号を持っていませんか?</string>
+ <string name="duplicate_address_warning">このアドレスは入力済みです。</string>
+ <string name="edit_message">メッセージを編集する</string>
+ <string name="enable">有効にする</string>
+ <string name="enable_custom_dns">カスタムDNSサーバーを使う</string>
+ <string name="enter_value_placeholder">MTU を入力</string>
+ <string name="enter_voucher_code">バウチャーコードを入力</string>
+ <string name="error_occurred">エラー発生。</string>
+ <string name="error_state">セキュリティ保護接続を確立できませんでした</string>
+ <string name="exclude_applications">除外対象アプリケーション</string>
+ <string name="failed_to_block_internet">すべてのネットワークトラフィックをブロックできません。問題に対処するか、問題の報告を送信してください。</string>
+ <string name="failed_to_create_account">アカウントを作成できませんでした</string>
+ <string name="failed_to_fetch_devices">デバイスのリストを取得できませんでした</string>
+ <string name="failed_to_remove_device">デバイスを削除できませんでした</string>
+ <string name="failed_to_send">送信に失敗しました</string>
+ <string name="failed_to_send_details">フォームを終了して後で再試行しても、入力済みの情報は引き続きここに表示されます。</string>
+ <string name="faqs_and_guides">よくある質問とガイド</string>
+ <string name="foreground_notification_channel_description">現在のVPNトンネルのステータスを表示します</string>
+ <string name="foreground_notification_channel_name">VPNトンネルのステータス</string>
+ <string name="go_to_login">ログインに進む</string>
+ <string name="here_is_your_account_number">これがあなたのアカウント番号です。保存してください!</string>
+ <string name="hide_account_number">アカウント番号の非表示</string>
+ <string name="hint_default">デフォルト</string>
+ <string name="in_address">内側</string>
+ <string name="invalid_dns_servers">カスタムDNSサーバーアドレス %1$s は無効です</string>
+ <string name="invalid_voucher">バウチャーコードが無効です。</string>
+ <string name="ipv6_unavailable">IPv6を設定できませんでした。アプリで無効にするか、デバイスで有効にしてください。</string>
+ <string name="is_offline">デバイスがオフラインになっています。トンネルはデバイスがオンラインに戻ると自動的に接続されます。</string>
+ <string name="less_than_a_day_left">残り1日未満</string>
+ <string name="less_than_a_minute_ago">1分未満前</string>
+ <string name="local_network_sharing">ローカルネットワーク共有</string>
+ <string name="local_network_sharing_additional_info">これは、トンネル外のネットワーク通信をローカルのマルチキャストおよびブロードキャスト範囲、および以下のプライベート IP 範囲との間で許可することによって行われます。</string>
+ <string name="local_network_sharing_info">この機能は、共有、印刷、ストリーミングなどのため、ローカルネットワーク上の他デバイスへのアクセスを許可します。</string>
+ <string name="log_out">ログアウト</string>
+ <string name="logged_in_description">有効なアカウント番号</string>
+ <string name="logged_in_title">ログインしました</string>
+ <string name="logging_in_description">アカウント番号を確認中</string>
+ <string name="logging_in_title">ログイン中...</string>
+ <string name="login_description">アカウント番号を入力してください</string>
+ <string name="login_fail_description">アカウント番号が正しくありません</string>
+ <string name="login_fail_title">ログインに失敗しました</string>
+ <string name="login_title">ログイン</string>
+ <string name="malware_info">警告: マルウェアブロッカーはウィルス対策ではありませんので、そのような用途には使用しないでください。あくまで追加の保護レイヤーに過ぎません。</string>
+ <string name="max_devices_confirm_removal_description">本当に&lt;b&gt;%1$s&lt;/b&gt;をログアウトしますか?</string>
+ <string name="max_devices_resolved_description">このデバイスでログインを続けられるようになりました。</string>
+ <string name="max_devices_resolved_title">素晴らしい!</string>
+ <string name="max_devices_warning_description">以下のリストから少なくとも1つを削除してログアウトしてください。対応するデバイス名はデバイスのアカウント設定で確認できます。</string>
+ <string name="max_devices_warning_title">デバイスが多すぎます</string>
+ <string name="mullvad_account_number">Mullvadアカウント番号</string>
+ <string name="no_matching_relay">設定に一致するサーバーはありません。サーバーまたは他の設定を変更してみてください。</string>
+ <string name="no_wireguard_key">有効なWireGuard鍵が見つかりません。詳細設定で鍵を管理してください。</string>
+ <string name="not_blocking_internet">ネットワーク通信が漏洩している可能性があります</string>
+ <string name="obfuscation_info">難読化は、WireGuardトラフィックを別のプロトコル内に隠します。プレーンなWireGuard接続がブロックされる検閲やその他のフィルタリングを回避するために使用できます。</string>
+ <string name="obfuscation_on_udp_over_tcp">オン (UDP-over-TCP)</string>
+ <string name="off">オフ</string>
+ <string name="on">オン</string>
+ <string name="out_address">外側</string>
+ <string name="out_of_time">時間切れ</string>
+ <string name="paid_until">次の日時まで支払い済み</string>
+ <string name="pay_to_start_using">アプリを使い始めるには、まずはアカウントに時間を追加する必要があります。</string>
+ <string name="port">ポート</string>
+ <string name="port_removal_notice">これにより、転送されたポートがすべて削除されます。ローカル設定は保存されます。</string>
+ <string name="privacy_disclaimer_title">プライバシー</string>
+ <string name="privacy_policy_label">プライバシーポリシー</string>
+ <string name="problem_report_description">さらに効率よく問題解決できるよう、お使いのアプリのログファイルがこのメッセージに添付されます。個人データは匿名化された後に暗号化されたチャネルで送信されるため、その安全は確保され、公開されることはありません。</string>
+ <string name="quantum_creating_secure_connection">量子セキュア保護接続を確立中</string>
+ <string name="quantum_resistant_info_first_paragaph">この機能は、WireGuardトンネルに量子コンピューターからの潜在的な攻撃に対する耐性を与えます。</string>
+ <string name="quantum_resistant_info_second_paragaph">耐量子アルゴリズムで追加の鍵の交換を実行し、結果をWireGuardの通常の暗号化に混合させることで行われます。この追加ステップでは、新しいトンネルが確立されるたびに約500kiBのトラフィックが使用されます。</string>
+ <string name="quantum_resistant_title">耐量子トンネル</string>
+ <string name="quantum_secure_connection">量子セキュア保護接続</string>
+ <string name="reconnecting">再接続中</string>
+ <string name="redeem">使用する</string>
+ <string name="redeem_voucher">バウチャーを使用する</string>
+ <string name="remove_button">削除</string>
+ <string name="report_a_problem">問題を報告する</string>
+ <string name="reset_to_default_button">デフォルトにリセット</string>
+ <string name="search_placeholder">検索...</string>
+ <string name="secure_connection">セキュリティ保護された接続</string>
+ <string name="secured">セキュリティ保護されています</string>
+ <string name="select_location">場所を選択する</string>
+ <string name="select_location_description">接続中、あなたの実際の場所は選択した地域内の非公開かつセキュリティ保護された場所で隠されます。</string>
+ <string name="select_location_empty_text_first_row">&lt;b&gt;%1$s&lt;/b&gt;に該当する検索結果はありません。</string>
+ <string name="select_location_empty_text_second_row">別の検索をお試しください。</string>
+ <string name="send">送信</string>
+ <string name="send_anyway">とにかく送信する</string>
+ <string name="sending">送信中...</string>
+ <string name="sent">送信済み</string>
+ <string name="sent_contact">必要に応じて %1$s 宛にご連絡します </string>
+ <string name="sent_thanks">ありがとうございます!</string>
+ <string name="set_dns_error">システムのDNSサーバーを設定できません。問題の報告を送信してください。</string>
+ <string name="set_firewall_policy_error">ファイアウォールのルールを適用できません。問題に対処するか、問題の報告を送信してください。</string>
+ <string name="settings">設定</string>
+ <string name="settings_account">アカウント</string>
+ <string name="settings_preferences">環境設定</string>
+ <string name="settings_vpn">VPN設定</string>
+ <string name="show_account_number">アカウント番号の表示</string>
+ <string name="show_system_apps">システムアプリの表示</string>
+ <string name="split_tunneling_description">スプリットトンネリングを使用すると、VPNトンネル経由でルーティングしないアプリケーションを選択できます。</string>
+ <string name="start_tunnel_error">トンネル接続を開始できません。問題の報告を送信してください。</string>
+ <string name="submit_button">送信</string>
+ <string name="switch_location">場所を切り替える</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">VPNの切り替え</string>
+ <string name="try_again">再試行</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">UDP-over-TCP難読化プロトコルで接続する必要のあるVPNサーバーのTCPポートです。</string>
+ <string name="unsecured">セキュリティ保護されていません</string>
+ <string name="unsecured_connection">セキュリティ保護されていない接続</string>
+ <string name="unsupported_version">未対応のバージョン</string>
+ <string name="unsupported_version_description">このアプリバージョンはサポートされていないため、プライバシーが危険にさらされる可能性があります。今すぐアップデートしてください。</string>
+ <string name="unsupported_version_without_upgrade">サポート対象外バージョンのアプリを実行しています。</string>
+ <string name="update_available">アップデート可</string>
+ <string name="update_available_description">Mullvad VPN (%1$s) をインストールして常に最新の状態を保ちましょう</string>
+ <string name="update_available_footer">アップデートできます。セキュリティを維持するにはダウンロードしてしてください。</string>
+ <string name="update_dns_server_dialog_title">DNS サーバーを更新</string>
+ <string name="user_email_hint">あなたのメールアドレス (任意)</string>
+ <string name="user_message_hint">最適なサポートを提供するため、英語またはスウェーデン語でご入力ください。また、接続元の国をお知らせください。</string>
+ <string name="view_logs">アプリのログを表示</string>
+ <string name="virtual_adapter_problem">仮想アダプタのエラー</string>
+ <string name="voucher_already_used">バウチャーコードはすでに使用されています。</string>
+ <string name="vpn_permission_denied_error">トンネルを作成中にVPNへのアクセスが拒否されました。もう一度接続してみてください。</string>
+ <string name="vpn_permission_error_notification_message">Always-on VPNが別のアプリで有効になっている可能性があります</string>
+ <string name="vpn_permission_error_notification_title">VPN許可エラー</string>
+ <string name="we_will_look_into_this">この問題を調査いたします。</string>
+ <string name="wireguard_custon_port_title">カスタム</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">WireGuard MTUの値を設定します。有効範囲: %1$d ~ %2$d</string>
+ <string name="wireguard_port_info_description">自動設定では、以下の有効なポート範囲からランダムに選択されます。</string>
+ <string name="wireguard_port_info_port_range">カスタムポートは次の有効範囲内の任意の値に設定できます: %1$s。</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-ko/plurals.xml b/android/lib/resource/src/main/res/values-ko/plurals.xml
new file mode 100644
index 0000000000..13e893b3b4
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-ko/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="other">%1$d일 남음</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="other">%1$d개월 남음</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="other">%1$d년 남음</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="other">%1$d일 전</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="other">%1$d분 전</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="other">%1$d개월 전</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="other">%1$d년 전</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="other">%1$d시간 전</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="other">계정 크레딧이 %1$d일 후에 만료됩니다.</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="other">계정 크레딧이 %1$d시간 후에 만료됩니다.</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-ko/strings.xml b/android/lib/resource/src/main/res/values-ko/strings.xml
new file mode 100644
index 0000000000..90f3d04b38
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-ko/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">계정 생성됨</string>
+ <string name="account_credit_expires_in_a_few_minutes">계정 크레딧이 몇 분 후에 만료됨</string>
+ <string name="account_credit_expires_soon">계정 크레딧이 곧 만료됨</string>
+ <string name="account_credit_has_expired">이 계정에 더 이상 VPN 시간이 없습니다.</string>
+ <string name="account_number">계정 번호</string>
+ <string name="account_time_notification_channel_description">계정 시간이 만료되려고 할 때 알림 표시</string>
+ <string name="account_time_notification_channel_name">계정 시간 알림</string>
+ <string name="add_a_server">서버 추가</string>
+ <string name="add_dns_server_dialog_title">DNS 서버 추가</string>
+ <string name="add_time_to_account">웹 사이트에서 크레딧을 구매하거나 바우처를 사용하세요.</string>
+ <string name="agree_and_continue">동의하고 계속하기</string>
+ <string name="all_applications">모든 애플리케이션</string>
+ <string name="allow_lan_footer">공유, 인쇄 등을 위해 동일한 네트워크의 다른 장치에 액세스할 수 있습니다.</string>
+ <string name="always_on_vpn_error_notification_content">터널 연결을 시작할 수 없습니다. Mullvad VPN을 사용하기 전에 &lt;b&gt;%1$s&lt;/b&gt;에 대한 상시 접속 VPN을 비활성화하세요.</string>
+ <string name="always_on_vpn_error_notification_title">상시 접속 VPN이 다른 앱에 할당됨</string>
+ <string name="app_version">앱 버전</string>
+ <string name="auth_failed">계정을 인증할 수 없습니다. 문제 보고서를 보내주세요.</string>
+ <string name="auto_connect">자동 연결</string>
+ <string name="auto_connect_footer">앱이 시작되면 자동으로 서버에 연결합니다.</string>
+ <string name="automatic">자동</string>
+ <string name="back">뒤로</string>
+ <string name="block_ads_title">광고</string>
+ <string name="block_adult_content_title">성인 콘텐츠</string>
+ <string name="block_gambling_title">도박</string>
+ <string name="block_malware_title">맬웨어</string>
+ <string name="block_trackers_title">트래커</string>
+ <string name="blocked_connection">연결 차단됨</string>
+ <string name="blocking_internet">인터넷 차단</string>
+ <string name="blocking_internet_device_offline">인터넷 차단(장치 오프라인 상태)</string>
+ <string name="buy_credit">크레딧 구매</string>
+ <string name="buy_more_credit">추가 크레딧 구매</string>
+ <string name="cancel">취소</string>
+ <string name="changes_dialog_dismiss_button">확인!</string>
+ <string name="changes_dialog_subtitle">이 버전의 변경 사항:</string>
+ <string name="confirm_local_dns">환경 설정에서 ”로컬 네트워크 공유”를 활성화하지 않으면 로컬 DNS 서버가 작동하지 않습니다.</string>
+ <string name="confirm_no_email">연락처 없이 문제 보고서를 보내려고 합니다. 보고서에 대한 답변을 원하면 이메일 주소를 입력해야 합니다.</string>
+ <string name="confirm_removal">예, 장치에서 로그아웃</string>
+ <string name="congrats">축하합니다!</string>
+ <string name="connect">내 연결 보안 유지</string>
+ <string name="connecting">연결 중</string>
+ <string name="connecting_to_daemon">Mullvad 시스템 서비스에 연결하는 중...</string>
+ <string name="continue_login">로그인 계속하기</string>
+ <string name="copied_mullvad_account_number">클립보드에 Mullvad 계정 번호 복사됨</string>
+ <string name="copied_to_clipboard">클립보드에 복사됨</string>
+ <string name="copy_account_number">계정 번호 복사</string>
+ <string name="create_account">계정 생성</string>
+ <string name="creating_new_account">계정 생성 중...</string>
+ <string name="creating_secure_connection">보안 연결 생성 중</string>
+ <string name="critical_error">심각한 오류(주의가 필요함)</string>
+ <string name="custom_dns_footer">하나 이상의 DNS 서버를 추가하려면 활성화합니다.</string>
+ <string name="custom_dns_hint">IP 입력</string>
+ <string name="custom_tunnel_host_resolution_error">사용자 지정 터널의 호스트를 확인할 수 없습니다. 설정을 변경해 보세요.</string>
+ <string name="device_inactive_description">이 장치를 제거했습니다. 다시 연결하려면 다시 로그인해야 합니다.</string>
+ <string name="device_inactive_title">장치가 비활성 상태입니다.</string>
+ <string name="device_inactive_unblock_warning">로그인하면 이 장치에서 인터넷 차단이 해제됩니다.</string>
+ <string name="device_name">장치 이름</string>
+ <string name="disconnect">연결 끊기</string>
+ <string name="disconnecting">연결 해제 중</string>
+ <string name="dismiss">해제</string>
+ <string name="dns_content_blockers_info">이 기능이 활성화되면 광고, 맬웨어, 트래커 등을 배포하는 것으로 알려진 특정 도메인이나 웹사이트에 장치가 연결하지 않게 방지됩니다.</string>
+ <string name="dns_content_blockers_subtitle">이 설정을 활성화하려면 아래의 &lt;b&gt;%1$s&lt;/b&gt;을(를) 비활성화하세요.</string>
+ <string name="dns_content_blockers_title">DNS 콘텐츠 차단기</string>
+ <string name="dont_have_an_account">계정 번호가 없으신가요?</string>
+ <string name="duplicate_address_warning">이 주소는 이미 입력되었습니다.</string>
+ <string name="edit_message">메시지 편집</string>
+ <string name="enable">사용</string>
+ <string name="enable_custom_dns">사용자 지정 DNS 서버 사용</string>
+ <string name="enter_value_placeholder">MTU 입력</string>
+ <string name="enter_voucher_code">바우처 코드 입력</string>
+ <string name="error_occurred">오류가 발생했습니다.</string>
+ <string name="error_state">보안 연결 실패</string>
+ <string name="exclude_applications">제외된 애플리케이션</string>
+ <string name="failed_to_block_internet">모든 네트워크 트래픽을 차단할 수는 없습니다. 문제를 해결하거나 문제 보고서를 보내주세요.</string>
+ <string name="failed_to_create_account">계정을 만들지 못함</string>
+ <string name="failed_to_fetch_devices">장치 목록을 가져오지 못함</string>
+ <string name="failed_to_remove_device">장치를 제거하지 못함</string>
+ <string name="failed_to_send">전송하지 못함</string>
+ <string name="failed_to_send_details">양식을 종료한 후 나중에 다시 시도해도 이미 입력한 정보는 그대로 유지됩니다.</string>
+ <string name="faqs_and_guides">FAQ 및 가이드</string>
+ <string name="foreground_notification_channel_description">현재 VPN 터널 상태 표시</string>
+ <string name="foreground_notification_channel_name">VPN 터널 상태</string>
+ <string name="go_to_login">로그인하기</string>
+ <string name="here_is_your_account_number">계정 번호는 다음과 같습니다. 저장하세요!</string>
+ <string name="hide_account_number">계정 번호 숨기기</string>
+ <string name="hint_default">기본값</string>
+ <string name="in_address">인</string>
+ <string name="invalid_dns_servers">사용자 지정 DNS 서버 주소 %1$s이(가) 잘못되었습니다.</string>
+ <string name="invalid_voucher">유효하지 않은 바우처 코드입니다.</string>
+ <string name="ipv6_unavailable">IPv6을 구성할 수 없습니다. 앱에서 비활성화하거나 장치에서 활성화하세요.</string>
+ <string name="is_offline">장치가 오프라인 상태입니다. 장치가 다시 온라인 상태가 되면 터널이 자동으로 연결됩니다.</string>
+ <string name="less_than_a_day_left">1일 이내</string>
+ <string name="less_than_a_minute_ago">1분 이내</string>
+ <string name="local_network_sharing">로컬 네트워크 공유</string>
+ <string name="local_network_sharing_additional_info">이를 위해 터널 외부에서 로컬 멀티캐스트 및 브로드캐스트 범위는 물론 다음 개인 IP 범위와의 네트워크 통신을 허용합니다.</string>
+ <string name="local_network_sharing_info">이 기능을 사용하면 공유, 인쇄, 스트리밍 등을 위해 로컬 네트워크의 다른 장치에 액세스할 수 있습니다.</string>
+ <string name="log_out">로그아웃</string>
+ <string name="logged_in_description">유효한 계정 번호</string>
+ <string name="logged_in_title">다음으로 로그인</string>
+ <string name="logging_in_description">계정 번호 확인 중</string>
+ <string name="logging_in_title">로그인 중...</string>
+ <string name="login_description">계정 번호 입력</string>
+ <string name="login_fail_description">유효하지 않은 계정 번호</string>
+ <string name="login_fail_title">로그인 실패</string>
+ <string name="login_title">로그인</string>
+ <string name="malware_info">경고: 맬웨어 차단기는 안티바이러스가 아니며 하나의 추가 보호 계층일 뿐입니다.</string>
+ <string name="max_devices_confirm_removal_description">&lt;b&gt;%1$s&lt;/b&gt;에서 로그아웃하시겠습니까?</string>
+ <string name="max_devices_resolved_description">이제 이 장치에 계속 로그인할 수 있습니다.</string>
+ <string name="max_devices_resolved_title">좋습니다!</string>
+ <string name="max_devices_warning_description">하나 이상의 항목을 아래 목록에서 제거하여 로그아웃하세요. 장치의 계정 설정에서 해당 장치 이름을 찾을 수 있습니다.</string>
+ <string name="max_devices_warning_title">장치가 너무 많음</string>
+ <string name="mullvad_account_number">Mullvad 계정 번호</string>
+ <string name="no_matching_relay">설정과 일치하는 서버가 없습니다. 서버 또는 기타 설정을 변경해 보세요.</string>
+ <string name="no_wireguard_key">유효한 WireGuard 키가 없습니다. 고급 설정에서 키를 관리하세요.</string>
+ <string name="not_blocking_internet">네트워크 트래픽이 유출될 수 있습니다.</string>
+ <string name="obfuscation_info">난독 처리는 다른 프로토콜 내에서 WireGuard 트래픽을 숨깁니다. 일반 WireGuard 연결이 차단되는 상황에서 검열 및 기타 유형의 필터링을 우회하는 데 사용할 수 있습니다.</string>
+ <string name="obfuscation_on_udp_over_tcp">켜기(UDP-over-TCP)</string>
+ <string name="off">끄기</string>
+ <string name="on">켜기</string>
+ <string name="out_address">아웃</string>
+ <string name="out_of_time">시간 초과</string>
+ <string name="paid_until">유효 기간</string>
+ <string name="pay_to_start_using">앱 사용을 시작하려면, 먼저 계정에 시간을 추가해야 합니다.</string>
+ <string name="port">포트</string>
+ <string name="port_removal_notice">전달된 모든 포트가 삭제됩니다. 로컬 설정이 저장됩니다.</string>
+ <string name="privacy_disclaimer_title">개인 정보 보호</string>
+ <string name="privacy_policy_label">개인정보 보호정책</string>
+ <string name="problem_report_description">보다 효과적인 문제 해결을 위해 앱의 로그 파일이 이 메시지에 첨부됩니다. 사용자 데이터는 암호화된 채널을 통해 전송되기 전에 익명 처리되므로 안전하고 비공개로 유지됩니다.</string>
+ <string name="quantum_creating_secure_connection">양자 보안 연결 생성 중</string>
+ <string name="quantum_resistant_info_first_paragaph">이 기능은 WireGuard 터널이 양자 컴퓨터의 잠재적인 공격에 맞서도록 합니다.</string>
+ <string name="quantum_resistant_info_second_paragaph">이를 위해 양자 안전 알고리즘을 사용하여 추가 키 교환을 수행하고 결과를 WireGuard의 일반 암호화에 혼합하는 방법이 이용됩니다. 이 추가 단계는 새 터널이 설정될 때마다 약 500kiB의 트래픽을 사용합니다.</string>
+ <string name="quantum_resistant_title">양자 저항 터널</string>
+ <string name="quantum_secure_connection">양자 보안 연결</string>
+ <string name="reconnecting">다시 연결 중</string>
+ <string name="redeem">사용</string>
+ <string name="redeem_voucher">바우처 사용</string>
+ <string name="remove_button">제거</string>
+ <string name="report_a_problem">문제 신고</string>
+ <string name="reset_to_default_button">기본값으로 재설정</string>
+ <string name="search_placeholder">검색...</string>
+ <string name="secure_connection">보안 연결</string>
+ <string name="secured">안전함</string>
+ <string name="select_location">위치 선택</string>
+ <string name="select_location_description">연결되어 있는 동안 실제 위치는 선택한 지역의 안전한 비공개 위치로 마스킹됩니다.</string>
+ <string name="select_location_empty_text_first_row">&lt;b&gt;%1$s&lt;/b&gt;에 대한 결과가 없습니다.</string>
+ <string name="select_location_empty_text_second_row">다른 검색어를 시도하세요.</string>
+ <string name="send">전송</string>
+ <string name="send_anyway">그래도 전송</string>
+ <string name="sending">전송 중...</string>
+ <string name="sent">전송 완료</string>
+ <string name="sent_contact">필요한 경우 %1$s(으)로 연락드리겠습니다.</string>
+ <string name="sent_thanks">감사합니다!</string>
+ <string name="set_dns_error">시스템 DNS 서버를 설정할 수 없습니다. 문제 보고서를 보내주세요.</string>
+ <string name="set_firewall_policy_error">방화벽 규칙을 적용할 수 없습니다. 문제를 해결하거나 문제 보고서를 보내주세요.</string>
+ <string name="settings">설정</string>
+ <string name="settings_account">계정</string>
+ <string name="settings_preferences">환경 설정</string>
+ <string name="settings_vpn">VPN 설정</string>
+ <string name="show_account_number">계정 번호 표시</string>
+ <string name="show_system_apps">시스템 앱 표시</string>
+ <string name="split_tunneling_description">분할 터널링을 사용하면 VPN 터널을 통해 라우팅되지 않아야 하는 애플리케이션을 선택할 수 있습니다.</string>
+ <string name="start_tunnel_error">터널 연결을 시작할 수 없습니다. 문제 보고서를 보내주세요.</string>
+ <string name="submit_button">제출</string>
+ <string name="switch_location">위치 전환</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">VPN 전환</string>
+ <string name="try_again">다시 시도</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">UDP-over-TCP 난독 처리 프로토콜이 VPN 서버에서 연결해야 하는 TCP 포트입니다.</string>
+ <string name="unsecured">안전하지 않음</string>
+ <string name="unsecured_connection">비보안 연결</string>
+ <string name="unsupported_version">지원되지 않는 버전</string>
+ <string name="unsupported_version_description">지원되지 않는 이 앱 버전으로 인해 개인 정보가 위험할 수 있습니다. 지금 업데이트하세요.</string>
+ <string name="unsupported_version_without_upgrade">지원되지 않는 앱 버전을 실행 중입니다.</string>
+ <string name="update_available">업데이트 사용 가능</string>
+ <string name="update_available_description">Mullvad VPN(%1$s)을 설치하여 최신 상태로 유지하세요.</string>
+ <string name="update_available_footer">업데이트를 사용할 수 있습니다. 안전을 유지하기 위해 다운로드하세요.</string>
+ <string name="update_dns_server_dialog_title">DNS 서버 업데이트</string>
+ <string name="user_email_hint">이메일(선택 사항)</string>
+ <string name="user_message_hint">더 나은 지원을 위해 영어 또는 스웨덴어로 메시지를 작성하고 연결 국가를 포함하세요.</string>
+ <string name="view_logs">앱 로그 보기</string>
+ <string name="virtual_adapter_problem">가상 어댑터 오류</string>
+ <string name="voucher_already_used">이미 사용된 바우처 코드입니다.</string>
+ <string name="vpn_permission_denied_error">터널을 만드는 동안 VPN 사용 권한이 거부되었습니다. 다시 연결해 보세요.</string>
+ <string name="vpn_permission_error_notification_message">상시 접속 VPN이 다른 앱에 활성화되었을 수 있습니다.</string>
+ <string name="vpn_permission_error_notification_title">VPN 권한 오류</string>
+ <string name="we_will_look_into_this">조사해보겠습니다.</string>
+ <string name="wireguard_custon_port_title">사용자 지정</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">WireGuard MTU 값을 설정하세요. 유효 범위: %1$d ~ %2$d</string>
+ <string name="wireguard_port_info_description">자동 설정은 아래 표시된 유효한 포트 범위에서 임의로 선택합니다.</string>
+ <string name="wireguard_port_info_port_range">사용자 지정 포트는 유효한 범위 내의 모든 값이 될 수 있습니다: %1$s</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-my/plurals.xml b/android/lib/resource/src/main/res/values-my/plurals.xml
new file mode 100644
index 0000000000..b99a79b345
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-my/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="other">%1$d ရက်သာ ကျန်တော့သည်</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="other">%1$d လသာ ကျန်တော့သည်</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="other">%1$d နှစ်သာ ကျန်တော့သည်</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="other">လွန်ခဲ့သော %1$d ရက်</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="other">လွန်ခဲ့သော %1$d မိနစ်</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="other">လွန်ခဲ့သော %1$d လ</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="other">လွန်ခဲ့သော %1$d နှစ်</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="other">လွန်ခဲ့သော %1$d နာရီ</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="other">%1$d ရက်အကြာတွင် အကောင့်ခရက်ဒစ် သက်တမ်းကုန်ပါတော့မည်</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="other">%1$d နာရီအကြာတွင် အကောင့်ခရက်ဒစ် သက်တမ်းကုန်ပါတော့မည်</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-my/strings.xml b/android/lib/resource/src/main/res/values-my/strings.xml
new file mode 100644
index 0000000000..bc4728751f
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-my/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">အကောင့် ဖန်တီးပြီး</string>
+ <string name="account_credit_expires_in_a_few_minutes">မိနစ်အနည်းငယ်အကြာတွင် အကောင့်ခရက်ဒစ် သက်တမ်းကုန်ပါတော့မည်</string>
+ <string name="account_credit_expires_soon">မကြာမီ အကောင့် ခရက်ဒစ် သက်တမ်းကုန်ပါတော့မည်</string>
+ <string name="account_credit_has_expired">ဤအကောင့်တွင် နောက်ထပ် VPN သုံးနိုင်ချိန် မကျန်တော့ပါ။</string>
+ <string name="account_number">အကောင့် နံပါတ်</string>
+ <string name="account_time_notification_channel_description">အကောင့်အချိန် သက်တမ်းကုန်ခါနီးချိန်၌ သတိပေးချက်များ ပြသပေးပါသည်</string>
+ <string name="account_time_notification_channel_name">အကောင့်အချိန် သတိပေးချက်များ</string>
+ <string name="add_a_server">ဆာဗာ ပေါင်းထည့်ရန်</string>
+ <string name="add_dns_server_dialog_title">DNS ဆာဗာကို ပေါင်းထည့်ရန်</string>
+ <string name="add_time_to_account">ကျွန်ုပ်တို့၏ ဝက်ဘ်ဆိုက်တွင် ခရက်ဒစ် ဝယ်ယူပါ သို့မဟုတ် ဘောက်ချာဖြင့် လဲယူပါ။</string>
+ <string name="agree_and_continue">သဘောတူပြီး ဆက်လုပ်ရန်</string>
+ <string name="all_applications">အပလီကေးရှင်း အားလုံး</string>
+ <string name="allow_lan_footer">ဝေမျှရန်၊ ပရင့်ထုတ်ရန်စသည်တို့အတွက် တူညီသည့် ကွန်ရက်ရှိ အခြားစက်များကို ရယူသုံးစွဲခွင့်ပြုပေးပါသည်။</string>
+ <string name="always_on_vpn_error_notification_content">Tunnel ချိတ်ဆက်မှုကို စတင်၍ မရနိုင်ပါ။ Mullvad VPN ကို မသုံးမီ &lt;b&gt;%1$s&lt;/b&gt; အတွက် VPN အမြဲဖွင့်ထားမှုကို ပိတ်ပေးပါ။</string>
+ <string name="always_on_vpn_error_notification_title">အမြဲဖွင့် VPN ကို အခြားအက်ပ်တစ်ခုသို့ သတ်မှတ်ထားပါသည်</string>
+ <string name="app_version">အက်ပ်ဗားရှင်း</string>
+ <string name="auth_failed">အကောင့်ကို စစ်မှန်ကြောင်း အတည်ပြု၍ မရနိုင်ပါ။ ပြဿနာ ရီပို့တ်တစ်ခု ပေးပို့ပေးပါ။</string>
+ <string name="auto_connect">အော်တို ချိတ်ဆက်မှု</string>
+ <string name="auto_connect_footer">အက်ပ် စတင်ဆောင်ရွက်ချိန်တွင် ဆာဗာနှင့် အော်တို ချိတ်ဆက်သွားပါမည်။</string>
+ <string name="automatic">အလိုအလျောက်</string>
+ <string name="back">နောက်သို့</string>
+ <string name="block_ads_title">ကြောငြာများ</string>
+ <string name="block_adult_content_title">လူကြီး အကြောင်းအရာ</string>
+ <string name="block_gambling_title">လောင်းကစား</string>
+ <string name="block_malware_title">မဲလ်ဝဲရ်</string>
+ <string name="block_trackers_title">ခြေရာခံများ</string>
+ <string name="blocked_connection">ပိတ်ဆို့ထားသည့် ချိတ်ဆက်မှု</string>
+ <string name="blocking_internet">အင်တာနက် ပိတ်ဆို့နေပါသည်</string>
+ <string name="blocking_internet_device_offline">အင်တာနက် ပိတ်ဆို့နေဆဲ (စက် အော့ဖ်လိုင်း)</string>
+ <string name="buy_credit">ခရက်ဒစ် ဝယ်ရန်</string>
+ <string name="buy_more_credit">ခရက်ဒစ်များ ဝယ်ရန်</string>
+ <string name="cancel">မလုပ်တော့ပါ</string>
+ <string name="changes_dialog_dismiss_button">ရပါပြီ။</string>
+ <string name="changes_dialog_subtitle">ဤဗားရှင်းတွင် ပြောင်းလဲမှုများ-</string>
+ <string name="confirm_local_dns">လိုကယ် DNS ဆာဗာသည် လိုလားမှုများအောက်ရှိ \"လိုကယ် ကွန်ရက် ဝေမျှမှု\"ကို မဖွင့်မချင်း အလုပ်လုပ်မည် မဟုတ်ပါ။</string>
+ <string name="confirm_no_email">သင်သည် သင့်ထံ ကျွန်ုပ်တို့ ပြန်ဆက်သွယ်နိုင်မည့် နည်းလမ်း မပါဘဲ ပြဿနာ ရီပို့တ်ကို ပေးပို့တော့မည် ဖြစ်ပါသည်။ သင့်ရီပို့တ်အတွက် အဖြေ ရရှိလိုပါက အီမေးလိပ်စာ ဖြည့်သွင်းပေးရပါမည်။</string>
+ <string name="confirm_removal">စက်မှ ထွက်မည်</string>
+ <string name="congrats">ဝမ်းသာပါတယ်။</string>
+ <string name="connect">ကျွန်ုပ်၏ ချိတ်ဆက်မှုကို ကာကွယ်ရန်</string>
+ <string name="connecting">ချိတ်ဆက်နေဆဲ</string>
+ <string name="connecting_to_daemon">Mullvad စနစ် ဝန်ဆောင်မှုနှင့် ချိတ်ဆက်နေဆဲ...</string>
+ <string name="continue_login">ဆက်လက် ဝင်ရောက်ရန်</string>
+ <string name="copied_mullvad_account_number">Mullvad အကောင့်နံပါတ်ကို ကလစ်ဘုတ်တွင် ကူးထားပါသည်</string>
+ <string name="copied_to_clipboard">ကလစ်ဘုတ်တွင် ကူးယူပြီး</string>
+ <string name="copy_account_number">အကောင့်နံပါတ်ကို ကူးရန်</string>
+ <string name="create_account">အကောင့် ဖန်တီးရန်</string>
+ <string name="creating_new_account">အကောင့် ဖန်တီးနေဆဲ...</string>
+ <string name="creating_secure_connection">လုံခြုံသည့် ချိတ်ဆက်မှုကို ဖန်တီးနေပါသည်</string>
+ <string name="critical_error">အလွန်အရေးပါသည့် ချို့ယွင်းချက် (သင့်အာရုံစိုက်မှု လိုအပ်ပါသည်)</string>
+ <string name="custom_dns_footer">အနည်းဆုံး DNS ဆာဗာတစ်ခုကို ပေါင်းထည့်ပါ။</string>
+ <string name="custom_dns_hint">IP ဖြည့်ပါ</string>
+ <string name="custom_tunnel_host_resolution_error">စိတ်ကြိုက်ပြုလုပ်ထားသည့် Tunnel ၏ Host ကို ဖြေရှင်း၍ မရနိုင်ပါ။ သင့်ဆက်တင်ကို ပြောင်းကြည့်ပါ။</string>
+ <string name="device_inactive_description">ဤစက်ကို ဖယ်ရှားပြီး ဖြစ်သည်။ ထပ်မံချိတ်ဆက်ရန်အတွက် ပြန်လည် ဝင်ရောက်ရန် လိုပါသည်။</string>
+ <string name="device_inactive_title">စက်သည် သက်ဝင်လုပ်ဆောင်မှု မရှိပါ</string>
+ <string name="device_inactive_unblock_warning">ဝင်ရောက်ရန်သွားခြင်းဖြင့် ဤစက်တွင် အင်တာနက်ကို ပိတ်ဆို့ထားမှုမှ ဖယ်ရှားပါလိမ့်မည်။</string>
+ <string name="device_name">စက်အမည်</string>
+ <string name="disconnect">ချိတ်ဆက်မှုဖြုတ်ရန်</string>
+ <string name="disconnecting">ချိတ်ဆက်မှုဖြုတ်နေပါသည်</string>
+ <string name="dismiss">ဖယ်ပစ်ရန်</string>
+ <string name="dns_content_blockers_info">ဤလုပ်ဆောင်ချက်ကို ဖွင့်ထားသည့်အခါ အနှောင့်အယှက်ဖြစ်စေသည့် ကြော်ငြာများ၊ မဲလ်ဝဲရ်၊ ခြေရာခံများနှင့် အစရှိသည်တို့နှင့်စပ်လျဉ်း၍ သိရှိထားသော အချို့သော Domain များ သို့မဟုတ် ဝဘ်ဆိုက်များနှင့် ဆက်သွယ်ခြင်းမှ စက်ကို ရပ်တန့်ပေးပါသည်။</string>
+ <string name="dns_content_blockers_subtitle">ဤဆက်တင်တို့ကို သက်ဝင်လုပ်ဆောင်ရန် အောက်ပါ &lt;b&gt;%1$s&lt;/b&gt; ကို ပိတ်ပါ။</string>
+ <string name="dns_content_blockers_title">DNS အကြောင်းအရာ ပိတ်ဆို့မှုများ</string>
+ <string name="dont_have_an_account">အကောင့်နံပါတ် မရှိ ဖြစ်နေပါသလား။</string>
+ <string name="duplicate_address_warning">ဤလိပ်စာကို ရိုက်ထည့်ထားပြီး ဖြစ်ပါသည်။</string>
+ <string name="edit_message">မက်ဆေ့ချ် တည်းဖြတ်ရန်</string>
+ <string name="enable">ဖွင့်ရန်</string>
+ <string name="enable_custom_dns">စိတ်ကြိုက် DNS ဆာဗာကို သုံးရန်</string>
+ <string name="enter_value_placeholder">MTU ကို ရိုက်ထည့်ရန်</string>
+ <string name="enter_voucher_code">ဘောက်ချာကုဒ် ဖြည့်သွင်းရန်</string>
+ <string name="error_occurred">ချို့ယွင်းချက် ဖြစ်ပေါ်ခဲ့ပါသည်။</string>
+ <string name="error_state">ချိတ်ဆက်မှုကို ကာကွယ်ရန် မအောင်မြင်ပါ</string>
+ <string name="exclude_applications">အပလီကေးရှင်းများ ဖယ်ထားပြီး</string>
+ <string name="failed_to_block_internet">ကွန်ရက် ကူးလူးမှု အားလုံးကို ပိတ်ဆို့၍ မရနိုင်ပါ။ ပြစ်ချက် ရှာဖွေဖယ်ရှားပေးပါ သို့မဟုတ် ပြဿနာ ရီပို့တ်တစ်ခု ပေးပို့ပါ။</string>
+ <string name="failed_to_create_account">အကောင့် ဖန်တီးရန် မအောင်မြင်ခဲ့ပါ</string>
+ <string name="failed_to_fetch_devices">စက်စာရင်းကို ယူရန် မအောင်မြင်ခဲ့ပါ</string>
+ <string name="failed_to_remove_device">စက်ကို ဖယ်ရှားရန် မအောင်မြင်ခဲ့ပါ</string>
+ <string name="failed_to_send">ပို့ရန် မအောင်မြင်ခဲ့ပါ</string>
+ <string name="failed_to_send_details">ဖောင်မှ ထွက်ပြီး နောက်မှ ထပ်ကြိုးစားကြည့်ပါ၊ သင်ဖြည့်ထားသည့် အချက်အလက်များသည် ဤတွင် ဆက်ရှိနေပါမည်။</string>
+ <string name="faqs_and_guides">မေးလေ့ရှိသည့် မေးခွန်းများနှင့် လမ်းညွှန်များ</string>
+ <string name="foreground_notification_channel_description">လက်ရှိ VPN Tunnel အခြေအနေကို ပြသပေးပါသည်</string>
+ <string name="foreground_notification_channel_name">VPN Tunnel အခြေအနေ</string>
+ <string name="go_to_login">ဝင်ရောက်ရန် သွားပါ</string>
+ <string name="here_is_your_account_number">ဤသည်မှာ သင့်အကောင့်နံပါတ် ဖြစ်ပါသည်။ သိမ်းမှတ်ထားပါ။</string>
+ <string name="hide_account_number">အကောင့်နံပါတ်ကို ဝှက်ရန်</string>
+ <string name="hint_default">ပုံသေ</string>
+ <string name="in_address">အဝင်</string>
+ <string name="invalid_dns_servers">စိတ်ကြိုက် DNS ဆာဗာလိပ်စာများ %1$s မှားနေပါသည်</string>
+ <string name="invalid_voucher">ဘောက်ချာကုဒ် မှားနေပါသည်။</string>
+ <string name="ipv6_unavailable">IPv6 ကို သတ်မှတ်ချိန်ညှိ၍ မရနိုင်ပါ။ အက်ပ်တွင် ၎င်းကို ပိတ်ပါ သို့မဟုတ် သင့်စက်တွင် ၎င်းကို ဖွင့်ပါ။</string>
+ <string name="is_offline">သင့်စက်သည် အော့ဖ်လိုင်း ဖြစ်နေပါသည်။ သင့်စက် အွန်လိုင်း ပြန်ဖြစ်သည်နှင့် Tunnel သည် အော်တို ချိတ်ဆက်သွားပါမည်။</string>
+ <string name="less_than_a_day_left">တစ်ရက်အောက်သာ ကျန်တော့သည်</string>
+ <string name="less_than_a_minute_ago">လွန်ခဲ့သော စက္ကန့်ပိုင်း</string>
+ <string name="local_network_sharing">လိုကယ် ကွန်ရက် ဝေမျှမှု</string>
+ <string name="local_network_sharing_additional_info">ဒေသတွင်း Multicast နှင့် Broadcast အပိုင်းအခြားများဆီသို့ သာမက ဤသီးသန့် IP အပိုင်းအခြားများထံမှနှင့် ၎င်းတို့ဆီသို့ Tunnel ပြင်ပ ကွန်ရက် ဆက်သွယ်မှုကို ခွင့်ပြုခြင်းဖြင့် ဤသည်ကို လုပ်ဆောင်ပါသည်။</string>
+ <string name="local_network_sharing_info">ဤလုပ်ဆောင်ချက်သည် မျှဝေခြင်း၊ ပရင့်ထုတ်ခြင်း၊ တိုက်ရိုက်ကြည့်ရှုနားဆင်ခြင်းအစရှိသည်တို့အတွက် ဒေသတွင်း ကွန်ရက်ရှိ အခြားစက်များကို ရယူသုံးစွဲခွင့်ပေးပါသည်။</string>
+ <string name="log_out">ထွက်ရန်</string>
+ <string name="logged_in_description">မှန်ကန်သည့် အကောင့်နံပါတ်</string>
+ <string name="logged_in_title">ဝင်ရောက်ထားပြီး</string>
+ <string name="logging_in_description">အကောင့်နံပါတ်ကို စစ်နေပါသည်</string>
+ <string name="logging_in_title">ဝင်ရောက်နေဆဲ...</string>
+ <string name="login_description">သင့်အကောင့်နံပါတ်ကို ဖြည့်သွင်းပါ</string>
+ <string name="login_fail_description">အကောင့်နံပါတ် မှားယွင်းနေပါသည်</string>
+ <string name="login_fail_title">ဝင်ရောက်မှု မအောင်မြင်ပါ</string>
+ <string name="login_title">ဝင်ရန်</string>
+ <string name="malware_info">သတိပေးချက်- မဲလ်ဝဲရ် ပိတ်ဆို့မှုသည် အပိုအကာအကွယ်လွှာ တစ်ခုသာဖြစ်ပြီး ဗိုင်းရပ်စ် ကာကွယ်ရေး (anti-virus) မဟုတ်၍ ၎င်းအဖြစ် မမှတ်ယူသင့်ပါ။</string>
+ <string name="max_devices_confirm_removal_description">&lt;b&gt;%1$s&lt;/b&gt; မှ ထွက်လိုသည်မှာ သေချာပါသလား။</string>
+ <string name="max_devices_resolved_description">သင်သည် ယခု ဤစက်တွင် ဆက်လက် ဝင်ရောက်နိုင်သည်။</string>
+ <string name="max_devices_resolved_title">အလွန်ကောင်း။</string>
+ <string name="max_devices_warning_description">အောက်ပါစာရင်းမှ အနည်းဆုံး တစ်ခုကို ဖယ်ရှားခြင်းဖြင့် ၎င်းမှ ထွက်ပါ။ စက်၏ အကောင့်ဆက်တင်အောက်တွင် သက်ဆိုင်သော စက်အမည်ကို သင် ရှာနိုင်သည်။</string>
+ <string name="max_devices_warning_title">စက်များလွန်းနေသည်</string>
+ <string name="mullvad_account_number">Mullvad အကောင့်နံပါတ်</string>
+ <string name="no_matching_relay">သင့်ဆက်တင်နှင့် ကိုက်ညီသော ဆာဗာများ မရှိပါ၊ ဆာဗာ သို့မဟုတ် အခြားဆက်တင်တို့ကို ပြောင်းလဲရန် ကြိုးစားကြည့်ပါ။</string>
+ <string name="no_wireguard_key">အကျုံးဝင်သည့် WireGuard ကီး မရှိပါ။ အဆင့်မြင့်ဆက်တင် အောက်တွင် ကီးများကို စီမံခန့်ခွဲပါ။</string>
+ <string name="not_blocking_internet">ကွန်ရက် ကူးလူးမှု ပေါက်ကြားနေနိုင်ပါသည်</string>
+ <string name="obfuscation_info">Obfuscation သည် အခြားပရိုတိုကောလ်အတွင်းရှိ WireGuard ကူးလူးမှုကို ဝှက်ထားပေးပါသည်။ သာမန် WireGuard ချိတ်ဆက်မှုကို ပိတ်ဆို့မည့် အခြားသော စစ်ထုတ်မှု အမျိုးအစားများနှင့် ဆင်ဆာဖြတ်တောက်ခြင်းကို ရှောင်လွှဲနိုင်စေရာတွင် ကူညီနိုင်စေရန် ဤသည်ကို သုံးနိုင်ပါသည်။</string>
+ <string name="obfuscation_on_udp_over_tcp">ဖွင့် (UDP-over-TCP)</string>
+ <string name="off">ပိတ်</string>
+ <string name="on">ဖွင့်</string>
+ <string name="out_address">အထွက်</string>
+ <string name="out_of_time">အချိန်စေ့သွားပါပြီ</string>
+ <string name="paid_until">ဖော်ပြပါအထိ ပေးချေထားပြီး</string>
+ <string name="pay_to_start_using">အက်ပ်ကို စသုံးရန်အတွက် ဦးစွာ သင့်အကောင့်တွင် အချိန်ပေါင်းထည့်ပေးရန် လိုအပ်ပါသည်။</string>
+ <string name="port">ပေါ့တ်</string>
+ <string name="port_removal_notice">၎င်းသည် ပေးပို့ထားသော ports ကို ဖျက်ပါမည်။ စက်တွင်းဆက်တင်ကို သိမ်းထားပါမည်။</string>
+ <string name="privacy_disclaimer_title">ကိုယ်ရေးအချက်အလက် လုံခြုံရေး</string>
+ <string name="privacy_policy_label">ကိုယ်ပိုင်အချက်အလက် မူဝါဒ</string>
+ <string name="problem_report_description">သင့်အား ပိုမိုထိရောက်စွာ ကူညီနိုင်ရန် သင့်အက်ပ်၏ မှတ်တမ်းဖိုင်ကို ဤမက်ဆေ့ချ်နှင့်အတူ တွဲပေးသွားပါမည်။ ကုဒ်ပြောင်းဝှက်ထားသည့် ချန်နယ်မှတစ်ဆင့် မပေးပို့မီ သင့်ဒေတာများကို အမည်မဖော်ဘဲ ထားမည်ဖြစ်သောကြောင့် လျှို့ဝှက်လုံခြုံလျက် ရှိနေပါမည်။</string>
+ <string name="quantum_creating_secure_connection">QUANTUM လုံခြုံသည့် ချိတ်ဆက်မှုကို ဖန်တီးခြင်း</string>
+ <string name="quantum_resistant_info_first_paragaph">ဤလုပ်ဆောင်ချက်သည် Quantum ကွန်ပျူတာများမှ ဖြစ်လာနိုင်ခြေရှိသော တိုက်ခိုက်မှုများကို ခုခံနိုင်သည့် WireGuard Tunnel ကို ပြုလုပ်သည်။</string>
+ <string name="quantum_resistant_info_second_paragaph">Quantum Safe အယ်လဂိုရီသမ်တစ်ခုကို သုံး၍ ထပ်ဆောင်း ကီးဖလှယ်မှုတစ်ခုကို ဆောင်ရွက်ပြီး WireGuard ၏ ပုံမှန် ကုဒ်ပြောင်းဝှက်မှုအတွင်း ရလဒ်ကို ရောနှောခြင်းအားဖြင့် ဤသည်ကို လုပ်ဆောင်ပါသည်။ ဤထပ်ဆောင်းအဆင့်သည် Tunnel အသစ်တစ်ခု တည်ဆောက်တိုင်း ဒေတာ 500 kiB ခန့်ကို သုံးပါသည်။</string>
+ <string name="quantum_resistant_title">Quantum-resistant Tunnel</string>
+ <string name="quantum_secure_connection">QUANTUM လုံခြုံသည့် ချိတ်ဆက်မှု</string>
+ <string name="reconnecting">ပြန်ချိတ်ဆက်နေပါသည်</string>
+ <string name="redeem">လဲယူရန်</string>
+ <string name="redeem_voucher">ဘောက်ချာဖြင့် လဲယူရန်</string>
+ <string name="remove_button">ဖယ်ရှားရန်</string>
+ <string name="report_a_problem">ပြဿနာ ရီပို့တ်လုပ်ရန်</string>
+ <string name="reset_to_default_button">ပုံသေသို့ ပြန်လည်သတ်မှတ်ရန်</string>
+ <string name="search_placeholder">ရှာရန်...</string>
+ <string name="secure_connection">လုံခြုံသည့် ချိတ်ဆက်မှု</string>
+ <string name="secured">လုံခြုံပါသည်</string>
+ <string name="select_location">တည်နေရာ ရွေးရန်</string>
+ <string name="select_location_description">ချိတ်ဆက်ထားချိန်တွင် သင့်တည်နေရာအမှန်ကို ရွေးချယ်ထားသည့် ဒေသရှိ လျှို့ဝှက်လုံခြုံသည့် တည်နေရာဖြင့် ဖုံးကွယ်ထားပါသည်။</string>
+ <string name="select_location_empty_text_first_row">&lt;b&gt;%1$s&lt;/b&gt; အတွက် ရလဒ် မရှိပါ။</string>
+ <string name="select_location_empty_text_second_row">မတူညီသော ရှာဖွေမှုဖြင့် ကြိုးစားကြည့်ပါ။</string>
+ <string name="send">ပို့ရန်</string>
+ <string name="send_anyway">မည်သို့ပင်ဖြစ်စေ ပို့ရန်</string>
+ <string name="sending">ပို့နေဆဲ...</string>
+ <string name="sent">ပို့ပြီး</string>
+ <string name="sent_contact">လိုအပ်ပါက %1$s မှတစ်ဆင့် ကျွန်ုပ်တို့ထံ ဆက်သွယ်ပါ</string>
+ <string name="sent_thanks">ကျေးဇူးတင်ပါသည်။</string>
+ <string name="set_dns_error">စနစ် DNS ဆာဗာကို သတ်မှတ်၍ မရနိုင်ပါ။ ပြဿနာ ရီပို့တ်တစ်ခု ပေးပို့ပေးပါ။</string>
+ <string name="set_firewall_policy_error">Firewall စည်းမျဉ်းများကို အသုံးချ၍ မရနိုင်ပါ။ ပြစ်ချက် ရှာဖွေဖယ်ရှာပေးပါ သို့မဟုတ် ပြဿနာ ရီပို့တ် ပေးပို့ပေးပါ။</string>
+ <string name="settings">ဆက်တင်</string>
+ <string name="settings_account">အကောင့်</string>
+ <string name="settings_preferences">လိုလားမှုများ</string>
+ <string name="settings_vpn">VPN ဆက်တင်များ</string>
+ <string name="show_account_number">အကောင့်နံပါတ်ကို ပြရန်</string>
+ <string name="show_system_apps">စနစ်အက်ပ်များ ပြရန်</string>
+ <string name="split_tunneling_description">Split Tunneling သည် VPN Tunnel မှတစ်ဆင့် လမ်းကြောင်းအတိုင်း မပို့သင့်သည့် အက်ပ်များကို ရွေးချယ်နိုင်ပါသည်။</string>
+ <string name="start_tunnel_error">Tunnel ချိတ်ဆက်မှုကို စတင်၍ မရနိုင်ပါ။ ပြဿနာ ရီပို့တ်တစ်ခု ပေးပို့ပေးပါ။</string>
+ <string name="submit_button">ပေးပို့ရန်</string>
+ <string name="switch_location">တည်နေရာ ပြောင်းရန်</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">VPN ရွေးသုံးရန်</string>
+ <string name="try_again">ထပ်ကြိုးစားရန်</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">VPN ဆာဗာကို ဖွင့်ရန် ၎င်း TCP ပေါ့တ် UDP-over-TCP Obfuscation ပရိုတိုကောလ်နှင့် ချိတ်ဆက်ထားသင့်ပါသည်။</string>
+ <string name="unsecured">မလုံခြုံပါ</string>
+ <string name="unsecured_connection">မလုံခြုံသည့် ချိတ်ဆက်မှု</string>
+ <string name="unsupported_version">တွဲဖက်မလုပ်ဆောင်နိုင်သည့် ဗားရှင်း</string>
+ <string name="unsupported_version_description">တွဲဖက်မလုပ်ဆောင်နိုင်သည့် ဤအက်ပ်ဗားရှင်းကြောင့် သင့်ကိုယ်ရေးအချက်အလက်များ အန္တရာယ် ရှိနိုင်ပါသည်။ ယခုပင် အပ်ဒိတ်လုပ်ပေးပါ။</string>
+ <string name="unsupported_version_without_upgrade">တွဲဖက်မလုပ်ဆောင်နိုင်သည့် အက်ပ်ဗားရှင်းဖြင့် လုပ်ဆောင်နေပါသည်။</string>
+ <string name="update_available">အပ်ဒိတ် ရရှိနိုင်ပါပြီ</string>
+ <string name="update_available_description">အပ်ဒိတ် ဖြစ်နေစေရန် Mullvad VPN (%1$s) ကို ထည့်သွင်းပါ</string>
+ <string name="update_available_footer">အပ်ဒိတ် ရရှိနိုင်ပါပြီ၊ ဆက်လက် လုံခြုံစေရန် ဒေါင်းလုဒ်လုပ်ပါ။</string>
+ <string name="update_dns_server_dialog_title">DNS ဆာဗာကို အပ်ဒိတ်လုပ်ရန်</string>
+ <string name="user_email_hint">သင့်အီးမေးလ် (မဖြည့်လည်း ရပါသည်)</string>
+ <string name="user_message_hint">သင့်အား ပို၍ အကူအညီပေးနိုင်ရန် အင်္ဂလိပ်ဘာသာ သို့မဟုတ် ဆွီဒင်ဘာသာဖြင့် ရေးပြီး မည်သည့်နိုင်ငံမှ သင်ချိတ်ဆက်နေသည်ကို ထည့်သွင်းဖော်ပြပါ။</string>
+ <string name="view_logs">အက်ပ်မှတ်တမ်းများ ကြည့်ရန်</string>
+ <string name="virtual_adapter_problem">စက်တွင်း အဒက်တာ ချို့ယွင်းချက်</string>
+ <string name="voucher_already_used">ဘောက်ချာကုဒ် သုံးထားပြီးသား ဖြစ်ပါသည်။</string>
+ <string name="vpn_permission_denied_error">Tunnel ဖန်တီးနေစဉ် VPN ခွင့်ပြုချက်ကို ပယ်ချခဲ့ပါသည်။ ထပ်မံချိတ်ဆက်ပေးပါ။</string>
+ <string name="vpn_permission_error_notification_message">အမြဲဖွင့် VPN ကို နောက်ထပ်အက်ပ်အတွက် ဖွင့်ထားနိုင်ပါသည်</string>
+ <string name="vpn_permission_error_notification_title">VPN ခွင့်ပြုချက် ချို့ယွင်းချက်</string>
+ <string name="we_will_look_into_this">ဤသည်ကို စစ်ဆေးလိုက်ပါမည်။</string>
+ <string name="wireguard_custon_port_title">စိတ်ကြိုက်</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">WireGuard MTU တန်ဖိုးကို သတ်မှတ်ပါ။ အကျုံးဝင်သည့် အပိုင်းအခြား- %1$d - %2$d ။</string>
+ <string name="wireguard_port_info_description">အော်တိုဆက်တင်သည် အောက်တွင် ဖော်ပြထားသည့် အကျုံးဝင် ပေါ့တ် အပိုင်းအခြားများထဲမှ ကျပန်းရွေးချယ်ပါမည်။</string>
+ <string name="wireguard_port_info_port_range">စိတ်ကြိုက်ပေါ့တ်သည် အကျုံးဝင် အပိုင်းအခြားများထဲမှ မည်သည့်တန်ဖိုးမဆို ဖြစ်နိုင်ပါသည်- %1$s ။</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-nb/plurals.xml b/android/lib/resource/src/main/res/values-nb/plurals.xml
new file mode 100644
index 0000000000..dea8a0c6f9
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-nb/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 dag igjen</item>
+ <item quantity="other">%1$d dager igjen</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 måned igjen</item>
+ <item quantity="other">%1$d måneder igjen</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 år igjen</item>
+ <item quantity="other">%1$d år igjen</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">én dag siden</item>
+ <item quantity="other">%1$d dager siden</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">ett minutt siden</item>
+ <item quantity="other">%1$d minutter siden</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">én måned siden</item>
+ <item quantity="other">%1$d måneder siden</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">ett år siden</item>
+ <item quantity="other">%1$d år siden</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">én time siden</item>
+ <item quantity="other">%1$d timer siden</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Kontokreditt utløper om én dag</item>
+ <item quantity="other">Kontokreditt utløper om %1$d dager</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Kontokreditt utløper om én time</item>
+ <item quantity="other">Kontokreditt utløper om %1$d timer</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-nb/strings.xml b/android/lib/resource/src/main/res/values-nb/strings.xml
new file mode 100644
index 0000000000..375d7c012c
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-nb/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Konto opprettet</string>
+ <string name="account_credit_expires_in_a_few_minutes">Kontokreditt utløper om noen få minutter</string>
+ <string name="account_credit_expires_soon">Kontokreditt utløper snart</string>
+ <string name="account_credit_has_expired">Du har ikke mer VPN-tid igjen på kontoen.</string>
+ <string name="account_number">Kontonummer</string>
+ <string name="account_time_notification_channel_description">Viser påminnelser når tidsavbrudd for kontoen er i ferd med å inntreffe</string>
+ <string name="account_time_notification_channel_name">Påminnelser om tidsavbrudd for konto</string>
+ <string name="add_a_server">Legg til en server</string>
+ <string name="add_dns_server_dialog_title">Legg til DNS-server</string>
+ <string name="add_time_to_account">Du kan enten kjøpe kreditt på nettsiden vår eller løse inn en kupong.</string>
+ <string name="agree_and_continue">Godta og fortsett</string>
+ <string name="all_applications">Alle applikasjoner</string>
+ <string name="allow_lan_footer">Gir tilgang til andre enheter på samme nettverk for deling, utskrift osv.</string>
+ <string name="always_on_vpn_error_notification_content">Kunne ikke starte tunneltilkobling. Deaktiver VPN som alltid er på, for &lt;b&gt;%1$s&lt;/b&gt; før du bruker Mullvad VPN.</string>
+ <string name="always_on_vpn_error_notification_title">VPN som alltid er på, er tilordnet en annen app</string>
+ <string name="app_version">Appversjon</string>
+ <string name="auth_failed">Kunne ikke autentisere konto. Send inn en problemrapport.</string>
+ <string name="auto_connect">Automatisk tilkobling</string>
+ <string name="auto_connect_footer">Kobler automatisk til en server når appen starter.</string>
+ <string name="automatic">Automatisk</string>
+ <string name="back">Tilbake</string>
+ <string name="block_ads_title">Annonser</string>
+ <string name="block_adult_content_title">Vokseninnhold</string>
+ <string name="block_gambling_title">Pengespill</string>
+ <string name="block_malware_title">Skadelig programvare</string>
+ <string name="block_trackers_title">Sporing</string>
+ <string name="blocked_connection">TILKOBLING BLOKKERT</string>
+ <string name="blocking_internet">Blokkerer internettet</string>
+ <string name="blocking_internet_device_offline">Blokkerer internett (enhet frakoblet)</string>
+ <string name="buy_credit">Kjøp kreditt</string>
+ <string name="buy_more_credit">Kjøp mer kreditt</string>
+ <string name="cancel">Avbryt</string>
+ <string name="changes_dialog_dismiss_button">Forstått!</string>
+ <string name="changes_dialog_subtitle">Endringer i denne versjonen:</string>
+ <string name="confirm_local_dns">Den lokale DNS-serveren fungerer ikke med mindre du aktiverer «Deling av lokalt nettverk» under Innstillinger.</string>
+ <string name="confirm_no_email">Problemrapporten blir nå sendt uten en måte for oss å kontakte deg på. Hvis du ønsker svar på rapporten, må du oppgi en e-postadresse.</string>
+ <string name="confirm_removal">Ja, logg av enhet</string>
+ <string name="congrats">Gratulerer!</string>
+ <string name="connect">Gjør tilkoblingen sikker</string>
+ <string name="connecting">Kobler til</string>
+ <string name="connecting_to_daemon">Kobler til Mullvads systemtjeneste ...</string>
+ <string name="continue_login">Fortsett med pålogging</string>
+ <string name="copied_mullvad_account_number">Kopierte Mullvad-kontonummer til utklippstavlen</string>
+ <string name="copied_to_clipboard">Kopiert til utklippstavlen</string>
+ <string name="copy_account_number">Kopier kontonummer</string>
+ <string name="create_account">Opprett konto</string>
+ <string name="creating_new_account">Oppretter konto ...</string>
+ <string name="creating_secure_connection">OPPRETTER SIKKER TILKOBLING</string>
+ <string name="critical_error">Kritisk feil (krever din oppmerksomhet)</string>
+ <string name="custom_dns_footer">Aktiver for å legge til minst én DNS-server.</string>
+ <string name="custom_dns_hint">Angi IP</string>
+ <string name="custom_tunnel_host_resolution_error">Kunne ikke løse vert for egendefinert tunnel. Forsøk å endre innstillingene dine.</string>
+ <string name="device_inactive_description">Du har fjernet denne enheten. For å koble til igjen, må du logge inn på nytt.</string>
+ <string name="device_inactive_title">Enheten er inaktiv</string>
+ <string name="device_inactive_unblock_warning">Å gå til pålogging vil oppheve blokkeringen av internettet på denne enheten.</string>
+ <string name="device_name">Enhetsnavn</string>
+ <string name="disconnect">Koble fra</string>
+ <string name="disconnecting">Kobler fra</string>
+ <string name="dismiss">Ignorer</string>
+ <string name="dns_content_blockers_info">Når denne funksjonen er aktivert, forhindrer den enheten fra å kontakte bestemte domener og nettsteder som er kjent for å spre annonser, skadelig programvare, sporingsenheter og mer.</string>
+ <string name="dns_content_blockers_subtitle">Deaktiver &lt;b&gt;%1$s&lt;/b&gt; under for å aktivere innstillingene.</string>
+ <string name="dns_content_blockers_title">DNS-innholdsblokkering</string>
+ <string name="dont_have_an_account">Har du ikke et kontonummer?</string>
+ <string name="duplicate_address_warning">Denne adressen er allerede skrevet inn.</string>
+ <string name="edit_message">Rediger melding</string>
+ <string name="enable">Aktiver</string>
+ <string name="enable_custom_dns">Bruk egendefinert DNS-server</string>
+ <string name="enter_value_placeholder">Angi MTU</string>
+ <string name="enter_voucher_code">Skriv inn kupongkode</string>
+ <string name="error_occurred">Det oppstod en feil.</string>
+ <string name="error_state">KUNNE IKKE OPPRETTE SIKKER TILKOBLING</string>
+ <string name="exclude_applications">Ekskluder applikasjoner</string>
+ <string name="failed_to_block_internet">Kunne ikke blokkere all nettverkstrafikk. Feilsøk eller send inn en problemrapport.</string>
+ <string name="failed_to_create_account">Kunne ikke opprette konto</string>
+ <string name="failed_to_fetch_devices">Kunne ikke hente liste over enheter</string>
+ <string name="failed_to_remove_device">Kunne ikke fjerne enhet</string>
+ <string name="failed_to_send">Kunne ikke sende</string>
+ <string name="failed_to_send_details">Hvis du avslutter skjemaet og prøver igjen senere, vil informasjonen du allerede har lagt inn fortsatt være der.</string>
+ <string name="faqs_and_guides">Ofte stilte spørsmål og veiledninger</string>
+ <string name="foreground_notification_channel_description">Viser gjeldende VPN-tunnelstatus</string>
+ <string name="foreground_notification_channel_name">VPN-tunnelstatus</string>
+ <string name="go_to_login">Gå til pålogging</string>
+ <string name="here_is_your_account_number">Dette er kontonummeret ditt. Ta vare på det!</string>
+ <string name="hide_account_number">Skjul kontonummer</string>
+ <string name="hint_default">Standard</string>
+ <string name="in_address">Inngående</string>
+ <string name="invalid_dns_servers">Egendefinerte DNS-serveradresser %1$s er ugyldige</string>
+ <string name="invalid_voucher">Ugyldig kupongkode.</string>
+ <string name="ipv6_unavailable">Kunne ikke konfigurere IPv6. Deaktiver den i appen eller aktiver den på enheten din.</string>
+ <string name="is_offline">Enheten er frakoblet. Tunnelen vil koble til automatisk når enheten er tilkoblet internett igjen.</string>
+ <string name="less_than_a_day_left">mindre enn én dag igjen</string>
+ <string name="less_than_a_minute_ago">mindre enn ett minutt siden</string>
+ <string name="local_network_sharing">Deling over lokalt nettverk</string>
+ <string name="local_network_sharing_additional_info">Den gjør det ved å tillate nettverkkommunikasjon utenfor tunnelen til lokale multicast- og sendingsintervall, samt mellom følgende privat IP-intervall:</string>
+ <string name="local_network_sharing_info">Funksjonen gir tilgang til andre enheter på det lokale nettverket for ting som deling, utskrift, strømming osv.</string>
+ <string name="log_out">Logg ut</string>
+ <string name="logged_in_description">Gyldig kontonummer</string>
+ <string name="logged_in_title">Du er logget inn</string>
+ <string name="logging_in_description">Kontrollerer kontonummer</string>
+ <string name="logging_in_title">Logger inn ...</string>
+ <string name="login_description">Skriv inn kontonummeret ditt</string>
+ <string name="login_fail_description">Ugyldig kontonummer</string>
+ <string name="login_fail_title">Kunne ikke logge inn</string>
+ <string name="login_title">Logg inn</string>
+ <string name="malware_info">Advarsel: Blokkeringen av skadelig programvare er ikke et antivirusprogram og skal ikke brukes som dette. Det er bare et ekstra lag med beskyttelse.</string>
+ <string name="max_devices_confirm_removal_description">Vil du virkelig logge av &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Du kan nå fortsette med å logge på denne enheten.</string>
+ <string name="max_devices_resolved_title">Supert!</string>
+ <string name="max_devices_warning_description">Logg ut av minst én ved å fjerne den fra listen nedenfor. Du finner det tilsvarende enhetsnavnet under enhetens kontoinnstillinger.</string>
+ <string name="max_devices_warning_title">For mange enheter</string>
+ <string name="mullvad_account_number">Mullvad-kontonummer</string>
+ <string name="no_matching_relay">Ingen servere passer til innstillingene dine. Prøv å endre server eller andre innstillinger.</string>
+ <string name="no_wireguard_key">Det mangler en gyldig WireGuard-nøkkel. Du kan behandle nøklene under avanserte innstillinger.</string>
+ <string name="not_blocking_internet">DET KAN VÆRE EN NETTVERKSLEKKASJE HOS DEG</string>
+ <string name="obfuscation_info">Tilsløring skjuler WireGuard-trafikken i en annen protokoll. Man kan på den måten omgå sensur og andre typer filter i tilfeller der en vanlig WireGuard-tilkobling ville blitt blokkert.</string>
+ <string name="obfuscation_on_udp_over_tcp">På (UDP-over-TCP)</string>
+ <string name="off">Av</string>
+ <string name="on">På</string>
+ <string name="out_address">Utgående</string>
+ <string name="out_of_time">Tiden har utløpt</string>
+ <string name="paid_until">Betalt fram til</string>
+ <string name="pay_to_start_using">For å starte bruken av appen, må du først legge til tid til kontoen.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Dette vil slette alle formidlede porter. Lokale innstillinger blir lagret.</string>
+ <string name="privacy_disclaimer_title">Personvern</string>
+ <string name="privacy_policy_label">Retningslinjer for personvern</string>
+ <string name="problem_report_description">For å kunne gi deg god nok hjelp vil loggfilen til appen ligge som vedlegg til meldingen. All data forblir beskyttet og privat gjennom anonymisering før det sendes gjennom en kryptert kanal.</string>
+ <string name="quantum_creating_secure_connection">OPPRETTER KVANTESIKKER TILKOBLING</string>
+ <string name="quantum_resistant_info_first_paragaph">Denne funksjonen gjør WireGuard-tunnelen motstandsdyktig mot potensielle angrep fra kvantemaskiner.</string>
+ <string name="quantum_resistant_info_second_paragaph">Det gjøres ved at å utføre en ekstra nøkkelutveksling med en kvantesikker algoritme og kombinere resultatet med WireGuard sin vanlige kryptering. Dette ekstratrinnet bruker omtrent 500 kiB trafikk hver gang det opprettes en ny tunnel.</string>
+ <string name="quantum_resistant_title">Kvantebestandig tunnel</string>
+ <string name="quantum_secure_connection">KVANTESIKKER TILKOBLING</string>
+ <string name="reconnecting">Kobler til på nytt</string>
+ <string name="redeem">Løs inn</string>
+ <string name="redeem_voucher">Løs inn kupong</string>
+ <string name="remove_button">Fjern</string>
+ <string name="report_a_problem">Rapporter et problem</string>
+ <string name="reset_to_default_button">Tilbakestill til standard</string>
+ <string name="search_placeholder">Søk etter ...</string>
+ <string name="secure_connection">SIKKER TILKOBLING</string>
+ <string name="secured">Sikret</string>
+ <string name="select_location">Velg plassering</string>
+ <string name="select_location_description">Mens du er tilkoblet vil din egentlige plassering være skjult med en privat og sikker plassering i den valgte regionen.</string>
+ <string name="select_location_empty_text_first_row">Ingen resultater for &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Prøv et annet søk.</string>
+ <string name="send">Send</string>
+ <string name="send_anyway">Send allikevel</string>
+ <string name="sending">Sender ...</string>
+ <string name="sent">Sendt</string>
+ <string name="sent_contact">Vi vil kontakte deg på %1$s ved behov</string>
+ <string name="sent_thanks">Takk!</string>
+ <string name="set_dns_error">Kunne ikke angi DNS-server for systemet. Send inn en problemrapport.</string>
+ <string name="set_firewall_policy_error">Kunne ikke bruke brannmur-regler. Feilsøk eller send inn en problemrapport.</string>
+ <string name="settings">Innstillinger</string>
+ <string name="settings_account">Konto</string>
+ <string name="settings_preferences">Preferanser</string>
+ <string name="settings_vpn">VPN-innstillinger</string>
+ <string name="show_account_number">Vis kontonummer</string>
+ <string name="show_system_apps">Vis systemapper</string>
+ <string name="split_tunneling_description">Tunneldeling gjør det mulig å velge hvilke applikasjoner som ikke skal rutes gjennom VPN-tunnelen.</string>
+ <string name="start_tunnel_error">Kunne ikke starte tunneltilkobling. Send inn en problemrapport.</string>
+ <string name="submit_button">Send inn</string>
+ <string name="switch_location">Bytt plassering</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Velg VPN</string>
+ <string name="try_again">Prøv på nytt</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">TCP-porten som UDP-over-TCP-tilsløringen skal koble til på VPN-serveren.</string>
+ <string name="unsecured">Usikret</string>
+ <string name="unsecured_connection">USIKKER TILKOBLING</string>
+ <string name="unsupported_version">VERSJON UTEN STØTTE</string>
+ <string name="unsupported_version_description">Personvernet ditt kan være i fare med denne appversjonen som ikke støttes. Oppdater nå.</string>
+ <string name="unsupported_version_without_upgrade">Du kjører en appversjon som ikke støttes.</string>
+ <string name="update_available">OPPDATERING TILGJENGELIG</string>
+ <string name="update_available_description">Installer Mullvad VPN (%1$s) for å holde deg oppdatert</string>
+ <string name="update_available_footer">Oppdatering tilgjengelig. Last ned for å oppdatere sikkerheten.</string>
+ <string name="update_dns_server_dialog_title">Oppdater DNS-serveren</string>
+ <string name="user_email_hint">E-post (valgfritt)</string>
+ <string name="user_message_hint">For at vi skal kunne hjelpe deg bedre, ber vi deg om å skrive på engelsk eller svensk og fortelle hvilket land du befinner deg i.</string>
+ <string name="view_logs">Se applogger</string>
+ <string name="virtual_adapter_problem">Virtuell adapterfeil</string>
+ <string name="voucher_already_used">Kupongkoden er allerede brukt.</string>
+ <string name="vpn_permission_denied_error">VPN-tillatelse ble avvist under opprettelsen av tunnelen. Prøv å koble til igjen.</string>
+ <string name="vpn_permission_error_notification_message">VPN som alltid er på, kan være aktivert for en annen app</string>
+ <string name="vpn_permission_error_notification_title">Feil med VPN-tillatelse</string>
+ <string name="we_will_look_into_this">Dette skal vi følge opp.</string>
+ <string name="wireguard_custon_port_title">Egendefinert</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">Angi WireGuard MTU-verdi. Verdiområde: %1$d–%2$d.</string>
+ <string name="wireguard_port_info_description">Den automatiske innstillingen vil tilfeldig velge fra utvalget av gyldige porter vist under.</string>
+ <string name="wireguard_port_info_port_range">Den egendefinerte porten kan ha en hvilken som helst verdi innen det gyldige utvalget: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-nl/plurals.xml b/android/lib/resource/src/main/res/values-nl/plurals.xml
new file mode 100644
index 0000000000..7a99c6a6f7
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-nl/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 dag resterend</item>
+ <item quantity="other">%1$d dagen resterend</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 maand resterend</item>
+ <item quantity="other">%1$d maanden resterend</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 jaar resterend</item>
+ <item quantity="other">%1$d jaar resterend</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">een dag geleden</item>
+ <item quantity="other">%1$d dagen geleden</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">een minuut geleden</item>
+ <item quantity="other">%1$d minuten geleden</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">een maand geleden</item>
+ <item quantity="other">%1$d maanden geleden</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">een jaar geleden</item>
+ <item quantity="other">%1$d jaar geleden</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">een uur geleden</item>
+ <item quantity="other">%1$d uur geleden</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Accountkrediet verloopt over een dag</item>
+ <item quantity="other">Accountkrediet verloopt over %1$d dagen</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Accountkrediet verloopt over een uur</item>
+ <item quantity="other">Accountkrediet verloopt over %1$d uur</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-nl/strings.xml b/android/lib/resource/src/main/res/values-nl/strings.xml
new file mode 100644
index 0000000000..5d8124537f
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-nl/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Account aangemaakt</string>
+ <string name="account_credit_expires_in_a_few_minutes">Accountkrediet verloopt over enkele minuten</string>
+ <string name="account_credit_expires_soon">Accountkrediet verloopt binnenkort</string>
+ <string name="account_credit_has_expired">U hebt geen VPN-tijd meer op dit account.</string>
+ <string name="account_number">Accountnummer</string>
+ <string name="account_time_notification_channel_description">Toont herinneringen wanneer de accounttijd op het punt staat te verlopen</string>
+ <string name="account_time_notification_channel_name">Accounttijdherinneringen</string>
+ <string name="add_a_server">Server toevoegen</string>
+ <string name="add_dns_server_dialog_title">DNS-server toevoegen</string>
+ <string name="add_time_to_account">Koop krediet op onze website of wissel een voucher in.</string>
+ <string name="agree_and_continue">Akkoord en doorgaan</string>
+ <string name="all_applications">Alle toepassingen</string>
+ <string name="allow_lan_footer">Biedt toegang tot andere apparaten op hetzelfde netwerk voor delen, afdrukken en dergelijke</string>
+ <string name="always_on_vpn_error_notification_content">Kan de tunnelverbinding niet starten. Schakel Altijd-aan VPN uit voor &lt;b&gt;%1$s&lt;/b&gt; voordat u Mullvad VPN gebruikt.</string>
+ <string name="always_on_vpn_error_notification_title">Altijd-aan VPN toegewezen aan andere app</string>
+ <string name="app_version">Appversie</string>
+ <string name="auth_failed">Kan account niet verifiëren. Stuur een probleemrapport.</string>
+ <string name="auto_connect">Automatisch verbinden</string>
+ <string name="auto_connect_footer">Automatisch verbinden met een server wanneer de app wordt gestart.</string>
+ <string name="automatic">Automatisch</string>
+ <string name="back">Terug</string>
+ <string name="block_ads_title">Advertenties</string>
+ <string name="block_adult_content_title">Content voor volwassenen</string>
+ <string name="block_gambling_title">Gokken</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Trackers</string>
+ <string name="blocked_connection">VERBINDING GEBLOKKEERD</string>
+ <string name="blocking_internet">Internet blokkeren</string>
+ <string name="blocking_internet_device_offline">Internet blokkeren (apparaat offline)</string>
+ <string name="buy_credit">Krediet kopen</string>
+ <string name="buy_more_credit">Meer krediet kopen</string>
+ <string name="cancel">Annuleren</string>
+ <string name="changes_dialog_dismiss_button">Begrepen!</string>
+ <string name="changes_dialog_subtitle">Wijzigingen in deze versie:</string>
+ <string name="confirm_local_dns">De lokale DNS-server werkt niet tenzij u \"Lokale netwerken delen\" inschakelt onder Voorkeuren.</string>
+ <string name="confirm_no_email">U staat op het punt om het probleemrapport te verzenden zonder een contactmethode op te geven. Voer een e-mailadres in als u een antwoord wenst op het rapport.</string>
+ <string name="confirm_removal">Ja, apparaat afmelden</string>
+ <string name="congrats">Gefeliciteerd!</string>
+ <string name="connect">Mijn verbinding beveiligen</string>
+ <string name="connecting">Bezig met verbinden</string>
+ <string name="connecting_to_daemon">Verbinden met Mullvad-systeemdienst...</string>
+ <string name="continue_login">Doorgaan met aanmelden</string>
+ <string name="copied_mullvad_account_number">Mullvad-accountnummer gekopieerd naar klembord</string>
+ <string name="copied_to_clipboard">Gekopieerd naar klembord</string>
+ <string name="copy_account_number">Accountnummer kopiëren</string>
+ <string name="create_account">Account aanmaken</string>
+ <string name="creating_new_account">Account aanmaken...</string>
+ <string name="creating_secure_connection">BEVEILIGDE VERBINDING AANMAKEN</string>
+ <string name="critical_error">Kritieke fout (uw aandacht is vereist)</string>
+ <string name="custom_dns_footer">Schakel in om minimaal één DNS-server toe te voegen.</string>
+ <string name="custom_dns_hint">Voer IP-adres in</string>
+ <string name="custom_tunnel_host_resolution_error">Kan host van aangepaste tunnel niet omzetten. Probeer uw instellingen te wijzigen.</string>
+ <string name="device_inactive_description">U hebt dit apparaat verwijderd. U moet zich opnieuw aanmelden om het opnieuw te verbinden.</string>
+ <string name="device_inactive_title">Apparaat is niet actief</string>
+ <string name="device_inactive_unblock_warning">Als u naar aanmelden gaat, wordt het blokkeren van internet op dit apparaat opgeheven.</string>
+ <string name="device_name">Apparaatnaam</string>
+ <string name="disconnect">Verbinding verbreken</string>
+ <string name="disconnecting">Verbinding wordt verbroken</string>
+ <string name="dismiss">Negeren</string>
+ <string name="dns_content_blockers_info">Als deze functie is ingeschakeld, maakt het apparaat geen contact meer met bepaalde domeinen of websites waarvan bekend is dat ze advertenties, malware, trackers en meer verspreiden.</string>
+ <string name="dns_content_blockers_subtitle">Schakel &lt;b&gt;%1$s&lt;/b&gt; hieronder uit om deze instellingen te activeren.</string>
+ <string name="dns_content_blockers_title">DNS-contentblokkeringen</string>
+ <string name="dont_have_an_account">Hebt u geen accountnummer?</string>
+ <string name="duplicate_address_warning">Dit adres is al ingevoerd.</string>
+ <string name="edit_message">Bericht bewerken</string>
+ <string name="enable">Inschakelen</string>
+ <string name="enable_custom_dns">Aangepaste DNS-server gebruiken</string>
+ <string name="enter_value_placeholder">Voer MTU in</string>
+ <string name="enter_voucher_code">Vouchercode invoeren</string>
+ <string name="error_occurred">Er is een fout opgetreden.</string>
+ <string name="error_state">VERBINDING BEVEILIGEN MISLUKT</string>
+ <string name="exclude_applications">Uitgesloten toepassingen</string>
+ <string name="failed_to_block_internet">Kan niet alle netwerkverkeer blokkeren. Los problemen op of stuur een probleemmelding.</string>
+ <string name="failed_to_create_account">Account aanmaken mislukt</string>
+ <string name="failed_to_fetch_devices">Ophalen van lijst van apparaten mislukt</string>
+ <string name="failed_to_remove_device">Verwijderen van apparaat mislukt</string>
+ <string name="failed_to_send">Verzenden mislukt</string>
+ <string name="failed_to_send_details">Als u het formulier verlaat en het later opnieuw probeert, is de reeds ingevoerde informatie er nog.</string>
+ <string name="faqs_and_guides">Veelgestelde vragen en gidsen</string>
+ <string name="foreground_notification_channel_description">Toont de huidige status van de VPN-tunnel</string>
+ <string name="foreground_notification_channel_name">Status VPN-tunnel</string>
+ <string name="go_to_login">Ga naar aanmelden</string>
+ <string name="here_is_your_account_number">Hier is uw accountnummer. Sla het op!</string>
+ <string name="hide_account_number">Accountnummer verbergen</string>
+ <string name="hint_default">Standaard</string>
+ <string name="in_address">In</string>
+ <string name="invalid_dns_servers">Aangepaste DNS-serveradressen %1$s zijn ongeldig</string>
+ <string name="invalid_voucher">Vouchercode is ongeldig.</string>
+ <string name="ipv6_unavailable">Kon IPv6 niet configureren. Schakel het uit in de app of schakel het in op uw apparaat.</string>
+ <string name="is_offline">Uw apparaat is offline. De tunnel wordt automatisch verbonden wanneer uw apparaat weer online is.</string>
+ <string name="less_than_a_day_left">minder dan een dag over</string>
+ <string name="less_than_a_minute_ago">minder dan een minuut geleden</string>
+ <string name="local_network_sharing">Delen op lokaal netwerk</string>
+ <string name="local_network_sharing_additional_info">De functie doet dit door netwerkcommunicatie buiten de tunnel naar lokale multicast- en broadcastbereiken toe te staan, alsmede van en naar deze private IP-adresbereiken:</string>
+ <string name="local_network_sharing_info">Deze functie geeft toegang tot andere apparaten op het lokale netwerk, bijvoorbeeld voor delen, afdrukken, streamen en dergelijke</string>
+ <string name="log_out">Afmelden</string>
+ <string name="logged_in_description">Geldig accountnummer</string>
+ <string name="logged_in_title">Aangemeld</string>
+ <string name="logging_in_description">Accountnummer wordt gecontroleerd</string>
+ <string name="logging_in_title">Aanmelden...</string>
+ <string name="login_description">Voer uw accountnummer in</string>
+ <string name="login_fail_description">Ongeldig accountnummer</string>
+ <string name="login_fail_title">Aanmelden mislukt</string>
+ <string name="login_title">Aanmelden</string>
+ <string name="malware_info">Waarschuwing: de malwareblocker is geen antivirus en mag niet als zodanig behandeld worden. Dit is slechts een extra beschermingslaag.</string>
+ <string name="max_devices_confirm_removal_description">Weet u zeker dat u &lt;b&gt;%1$s&lt;/b&gt; wilt afmelden?</string>
+ <string name="max_devices_resolved_description">U kunt nu doorgaan met het aanmelden bij dit apparaat.</string>
+ <string name="max_devices_resolved_title">Super!</string>
+ <string name="max_devices_warning_description">Meld u bij minstens één apparaat af door het te verwijderen uit de onderstaande lijst. U kunt de bijbehorende apparaatnaam vinden in de accountinstellingen van het apparaat.</string>
+ <string name="max_devices_warning_title">Te veel apparaten</string>
+ <string name="mullvad_account_number">Mullvad-accountnummer</string>
+ <string name="no_matching_relay">Er zijn geen servers die overeenkomen met uw instellingen. Probeer een andere server of andere instellingen.</string>
+ <string name="no_wireguard_key">Geldige WireGuard-sleutel ontbreekt. Beheer sleutels onder Geavanceerde instellingen.</string>
+ <string name="not_blocking_internet">U LEKT MOGELIJK NETWERKVERKEER</string>
+ <string name="obfuscation_info">Obfuscatie verbergt het WireGuard-verkeer in een ander protocol. Het kan worden gebruikt om censuur en andere soorten filtering te omzeilen, waar een gewone WireGuard-verbinding zou worden geblokkeerd.</string>
+ <string name="obfuscation_on_udp_over_tcp">Aan (UDP-over-TCP)</string>
+ <string name="off">Uit</string>
+ <string name="on">Aan</string>
+ <string name="out_address">Uit</string>
+ <string name="out_of_time">Geen tijd meer</string>
+ <string name="paid_until">Betaald tot</string>
+ <string name="pay_to_start_using">Om de app te gebruiken, moet u eerst tijd toevoegen aan uw account.</string>
+ <string name="port">Poort</string>
+ <string name="port_removal_notice">Hiermee worden alle doorgestuurde poorten verwijderd. De lokale instellingen worden opgeslagen.</string>
+ <string name="privacy_disclaimer_title">Privacy</string>
+ <string name="privacy_policy_label">Privacybeleid</string>
+ <string name="problem_report_description">Het logboekbestand van uw app wordt aan dit bericht gekoppeld zodat we u beter kunnen helpen. Uw gegevens blijven veilig en privé, omdat ze worden geanonimiseerd voordat ze over een versleuteld kanaal worden verzonden.</string>
+ <string name="quantum_creating_secure_connection">BEVEILIGDE QUANTUMVERBINDING AANMAKEN</string>
+ <string name="quantum_resistant_info_first_paragaph">Deze eigenschap maakt de WireGuard-tunnel bestand tegen mogelijke aanvallen met kwantumcomputers.</string>
+ <string name="quantum_resistant_info_second_paragaph">Het doet dit door een extra sleuteluitwisseling uit te voeren met een kwantumveilig algoritme en het resultaat te mengen met de reguliere versleuteling van WireGuard. Deze extra stap gebruikt ongeveer 500 kiB aan verkeer elke keer dat een nieuwe tunnel wordt opgezet.</string>
+ <string name="quantum_resistant_title">Kwantumbestendige tunnel</string>
+ <string name="quantum_secure_connection">QUANTUMVEILIGE VERBINDING</string>
+ <string name="reconnecting">Opnieuw verbinden</string>
+ <string name="redeem">Inwisselen</string>
+ <string name="redeem_voucher">Voucher inwisselen</string>
+ <string name="remove_button">Verwijderen</string>
+ <string name="report_a_problem">Een probleem rapporteren</string>
+ <string name="reset_to_default_button">Standaardwaarde herstellen</string>
+ <string name="search_placeholder">Zoeken naar...</string>
+ <string name="secure_connection">BEVEILIGDE VERBINDING</string>
+ <string name="secured">Beveiligd</string>
+ <string name="select_location">Locatie selecteren</string>
+ <string name="select_location_description">Wanneer u verbonden bent, wordt uw daadwerkelijke locatie gemaskeerd met een privé en veilige locatie in de geselecteerde regio.</string>
+ <string name="select_location_empty_text_first_row">Geen resultaten voor &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Probeer een andere zoekopdracht.</string>
+ <string name="send">Verzenden</string>
+ <string name="send_anyway">Toch verzenden</string>
+ <string name="sending">Verzenden...</string>
+ <string name="sent">Verzonden</string>
+ <string name="sent_contact">Indien nodig nemen we u contact op via %1$s</string>
+ <string name="sent_thanks">Bedankt!</string>
+ <string name="set_dns_error">Kan DNS-server van systeem niet instellen. Stuur een probleemrapport.</string>
+ <string name="set_firewall_policy_error">Kan firewallregels niet toepassen. Los problemen op of stuur een probleemmelding.</string>
+ <string name="settings">Instellingen</string>
+ <string name="settings_account">Account</string>
+ <string name="settings_preferences">Voorkeuren</string>
+ <string name="settings_vpn">VPN-instellingen</string>
+ <string name="show_account_number">Accountnummer weergeven</string>
+ <string name="show_system_apps">Systeemapps weergeven</string>
+ <string name="split_tunneling_description">Split tunneling maakt het mogelijk te kiezen welke toepassingen niet via de VPN-tunnel moeten worden geleid.</string>
+ <string name="start_tunnel_error">Kan de tunnelverbinding niet starten. Stuur een probleemrapport.</string>
+ <string name="submit_button">Verzenden</string>
+ <string name="switch_location">Locatie wijzigen</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">VPN in-/uitschakelen</string>
+ <string name="try_again">Probeer het opnieuw</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Met welke TCP-poort moet het UDP-over-TCP-obfuscatieprotocol verbinding maken op de VPN-server.</string>
+ <string name="unsecured">Niet beveiligd</string>
+ <string name="unsecured_connection">NIET-BEVEILIGDE VERBINDING</string>
+ <string name="unsupported_version">NIET-ONDERSTEUNDE VERSIE</string>
+ <string name="unsupported_version_description">Uw privacy kan risico lopen met deze niet-ondersteunde appversie. Werk de app nu bij.</string>
+ <string name="unsupported_version_without_upgrade">U gebruikt een niet-ondersteunde versie van de app.</string>
+ <string name="update_available">UPDATE BESCHIKBAAR</string>
+ <string name="update_available_description">Installeer Mullvad VPN (%1$s) om up-to-date te blijven</string>
+ <string name="update_available_footer">Update beschikbaar, download deze om veilig te blijven.</string>
+ <string name="update_dns_server_dialog_title">DNS-server bijwerken</string>
+ <string name="user_email_hint">Uw e-mailadres (optioneel)</string>
+ <string name="user_message_hint">Om u beter te kunnen helpen, kunt u in het Engels of Zweeds schrijven. Vermeld uit welk land u komt.</string>
+ <string name="view_logs">Applogboeken weergeven</string>
+ <string name="virtual_adapter_problem">Fout virtuele adapter</string>
+ <string name="voucher_already_used">Vouchercode is al gebruikt.</string>
+ <string name="vpn_permission_denied_error">VPN-toestemming is geweigerd tijdens maken van de tunnel. Probeer opnieuw verbinding te maken.</string>
+ <string name="vpn_permission_error_notification_message">Altijd-aan VPN is mogelijk ingeschakeld voor een andere app</string>
+ <string name="vpn_permission_error_notification_title">VPN-machtigingsfout</string>
+ <string name="we_will_look_into_this">We gaan het bekijken.</string>
+ <string name="wireguard_custon_port_title">Aangepast</string>
+ <string name="wireguard_mtu">WireGuard-MTU</string>
+ <string name="wireguard_mtu_footer">Stel de MTU-waarde voor WireGuard in. Geldig bereik: %1$d - %2$d.</string>
+ <string name="wireguard_port_info_description">Bij de automatische instelling wordt willekeurig gekozen uit de hieronder weergegeven geldige poortbereiken.</string>
+ <string name="wireguard_port_info_port_range">De aangepaste poort kan elke waarde zijn binnen de geldige bereiken: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-pl/plurals.xml b/android/lib/resource/src/main/res/values-pl/plurals.xml
new file mode 100644
index 0000000000..67654bfc29
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-pl/plurals.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">Pozostał 1 dzień</item>
+ <item quantity="few">Pozostały %1$d dni</item>
+ <item quantity="many">Pozostało %1$d dni</item>
+ <item quantity="other">Pozostało %1$d dnia</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">Pozostał 1 miesiąc</item>
+ <item quantity="few">Pozostały %1$d miesiące</item>
+ <item quantity="many">Pozostało %1$d miesięcy</item>
+ <item quantity="other">Pozostało %1$d miesiąca</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">Pozostał 1 rok</item>
+ <item quantity="few">Pozostały %1$d lata</item>
+ <item quantity="many">Pozostało %1$d lat</item>
+ <item quantity="other">Pozostało %1$d roku</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">dzień temu</item>
+ <item quantity="few">%1$d dni temu</item>
+ <item quantity="many">%1$d dni temu</item>
+ <item quantity="other">%1$d dnia temu</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">minutę temu</item>
+ <item quantity="few">%1$d minuty temu</item>
+ <item quantity="many">%1$d minut temu</item>
+ <item quantity="other">%1$d minuty temu</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">miesiąc temu</item>
+ <item quantity="few">%1$d miesiące temu</item>
+ <item quantity="many">%1$d miesięcy temu</item>
+ <item quantity="other">%1$d miesiąca temu</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">rok temu</item>
+ <item quantity="few">%1$d lata temu</item>
+ <item quantity="many">%1$d lat temu</item>
+ <item quantity="other">%1$d roku temu</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">godzinę temu</item>
+ <item quantity="few">%1$d godziny temu</item>
+ <item quantity="many">%1$d godzin temu</item>
+ <item quantity="other">%1$d godzuny temu</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Doładowanie konta wygasa za 1 dzień</item>
+ <item quantity="few">Doładowanie konta wygasa za %1$d dni</item>
+ <item quantity="many">Doładowanie konta wygasa za %1$d dni</item>
+ <item quantity="other">Doładowanie konta wygasa za %1$d dnia</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Doładowanie konta wygasa za 1 godzinę</item>
+ <item quantity="few">Doładowanie konta wygasa za %1$d godziny</item>
+ <item quantity="many">Doładowanie konta wygasa za %1$d godzin</item>
+ <item quantity="other">Doładowanie konta wygasa za %1$d godziny</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-pl/strings.xml b/android/lib/resource/src/main/res/values-pl/strings.xml
new file mode 100644
index 0000000000..d38f5a7c39
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-pl/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Utworzono konto</string>
+ <string name="account_credit_expires_in_a_few_minutes">Doładowanie konta wygasa za kilka minut</string>
+ <string name="account_credit_expires_soon">Doładowanie konta wkrótce wygasa</string>
+ <string name="account_credit_has_expired">Na tym koncie nie masz już czasu VPN.</string>
+ <string name="account_number">Numer konta</string>
+ <string name="account_time_notification_channel_description">Pokazuje przypomnienia, gdy kończy się czas na koncie</string>
+ <string name="account_time_notification_channel_name">Przypomnienia o czasie na koncie</string>
+ <string name="add_a_server">Dodaj serwer</string>
+ <string name="add_dns_server_dialog_title">Dodaj serwer DNS</string>
+ <string name="add_time_to_account">Doładuj w naszej witrynie internetowej lub zrealizuj kupon.</string>
+ <string name="agree_and_continue">Zaakceptuj i kontynuuj</string>
+ <string name="all_applications">Wszystkie aplikacje</string>
+ <string name="allow_lan_footer">Umożliwia dostęp do innych urządzeń w tej samej sieci w celu udostępniania, drukowania itd.</string>
+ <string name="always_on_vpn_error_notification_content">Nie można uruchomić połączenia tunelowego. Przed rozpoczęciem użytkowania usługi Mullvad VPN wyłącz opcję „Zawsze włączony VPN” w &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="always_on_vpn_error_notification_title">Opcja „Zawsze włączony VPN” przypisana jest do innej aplikacji</string>
+ <string name="app_version">Wersja aplikacji</string>
+ <string name="auth_failed">Nie można uwierzytelnić konta. Wyślij zgłoszenie problemu.</string>
+ <string name="auto_connect">Automatyczne łączenie</string>
+ <string name="auto_connect_footer">Automatycznie łącz z serwerem po uruchomieniu aplikacji.</string>
+ <string name="automatic">Automatycznie</string>
+ <string name="back">Wstecz</string>
+ <string name="block_ads_title">Reklamy</string>
+ <string name="block_adult_content_title">Treści dla dorosłych</string>
+ <string name="block_gambling_title">Hazard</string>
+ <string name="block_malware_title">Złośliwe oprogramowanie</string>
+ <string name="block_trackers_title">Trackery</string>
+ <string name="blocked_connection">ZABLOKOWANE POŁĄCZENIE</string>
+ <string name="blocking_internet">Blokowanie Internetu</string>
+ <string name="blocking_internet_device_offline">Blokowanie Internetu (urządzenie rozłączone)</string>
+ <string name="buy_credit">Kup doładowanie</string>
+ <string name="buy_more_credit">Doładuj konto</string>
+ <string name="cancel">Anuluj</string>
+ <string name="changes_dialog_dismiss_button">Jasne!</string>
+ <string name="changes_dialog_subtitle">Zmiany w tej wersji:</string>
+ <string name="confirm_local_dns">Lokalny serwer DNS nie będzie działał, dopóki nie włączysz opcji „Udostępnianie sieci lokalnej” w Preferencjach.</string>
+ <string name="confirm_no_email">Za chwilę wyślesz zgłoszenie problemu, nie umożliwiając nam skontaktowania się z Tobą. Aby uzyskać odpowiedź na zgłoszenie, musisz podać adres e-mail.</string>
+ <string name="confirm_removal">Tak, wyloguj urządzenie</string>
+ <string name="congrats">Gratulacje!</string>
+ <string name="connect">Zabezpiecz moje połączenie</string>
+ <string name="connecting">Łączenie</string>
+ <string name="connecting_to_daemon">Łączenie z usługą systemową Mullvad...</string>
+ <string name="continue_login">Kontynuuj logowanie</string>
+ <string name="copied_mullvad_account_number">Skopiowano numer konta Mullvad do schowka</string>
+ <string name="copied_to_clipboard">Skopiowano do schowka</string>
+ <string name="copy_account_number">Kopiuj numer konta</string>
+ <string name="create_account">Utwórz konto</string>
+ <string name="creating_new_account">Tworzenie konta...</string>
+ <string name="creating_secure_connection">TWORZENIE BEZPIECZNEGO POŁĄCZENIA</string>
+ <string name="critical_error">Błąd krytyczny (wymagana uwaga)</string>
+ <string name="custom_dns_footer">Włącz, aby dodać co najmniej jeden serwer DNS.</string>
+ <string name="custom_dns_hint">Wprowadź adres IP</string>
+ <string name="custom_tunnel_host_resolution_error">Nie można rozpoznać hosta tunelu niestandardowego. Spróbuj zmienić ustawienia.</string>
+ <string name="device_inactive_description">Urządzenie usunięto. Aby połączyć się ponownie, musisz się ponownie zalogować.</string>
+ <string name="device_inactive_title">Urządzenie nieaktywne</string>
+ <string name="device_inactive_unblock_warning">Przejście do logowania odblokuje Internet na tym urządzeniu.</string>
+ <string name="device_name">Nazwa urządzenia</string>
+ <string name="disconnect">Rozłącz</string>
+ <string name="disconnecting">Rozłączanie</string>
+ <string name="dismiss">Odrzuć</string>
+ <string name="dns_content_blockers_info">Po włączeniu funkcja ta uniemożliwia urządzeniu kontakt z określonymi domenami lub witrynami internetowymi, które rozpowszechniają reklamy, złośliwe oprogramowanie itd.</string>
+ <string name="dns_content_blockers_subtitle">Aby aktywować te ustawienia, wyłącz &lt;b&gt;%1$s&lt;/b&gt; poniżej.</string>
+ <string name="dns_content_blockers_title">Funkcje blokowania treści DNS</string>
+ <string name="dont_have_an_account">Nie masz numeru konta?</string>
+ <string name="duplicate_address_warning">Ten adres został już wprowadzony.</string>
+ <string name="edit_message">Edytuj wiadomość</string>
+ <string name="enable">Włącz</string>
+ <string name="enable_custom_dns">Użyj niestandardowego serwera DNS</string>
+ <string name="enter_value_placeholder">Wprowadź MTU</string>
+ <string name="enter_voucher_code">Wprowadź kod kuponu</string>
+ <string name="error_occurred">Wystąpił błąd.</string>
+ <string name="error_state">BŁĄD ZABEZPIECZANIA POŁĄCZENIA</string>
+ <string name="exclude_applications">Wykluczone aplikacje</string>
+ <string name="failed_to_block_internet">Nie można zablokować całego ruchu sieciowego. Rozwiąż problem lub wyślij zgłoszenie problemu.</string>
+ <string name="failed_to_create_account">Nie można utworzyć konta</string>
+ <string name="failed_to_fetch_devices">Nie udało się pobrać listy urządzeń</string>
+ <string name="failed_to_remove_device">Niepowodzenie usunięcia urządzenia</string>
+ <string name="failed_to_send">Błąd wysyłania</string>
+ <string name="failed_to_send_details">Jeśli wyjdziesz z formularza i spróbujesz ponownie później, zastaniesz już wprowadzone dane.</string>
+ <string name="faqs_and_guides">Często zadawane pytania i poradniki</string>
+ <string name="foreground_notification_channel_description">Pokazuje bieżący status tunelu VPN</string>
+ <string name="foreground_notification_channel_name">Status tunelu VPN</string>
+ <string name="go_to_login">Przejdź do logowania</string>
+ <string name="here_is_your_account_number">Oto Twój numer konta. Zachowaj go!</string>
+ <string name="hide_account_number">Ukryj numer konta</string>
+ <string name="hint_default">Domyślnie</string>
+ <string name="in_address">Wejście</string>
+ <string name="invalid_dns_servers">Niestandardowe adresy serwerów DNS %1$s są nieprawidłowe</string>
+ <string name="invalid_voucher">Nieprawidłowy kod kuponu.</string>
+ <string name="ipv6_unavailable">Nie można skonfigurować protokołu IPv6. Wyłącz go w aplikacji lub włącz na urządzeniu.</string>
+ <string name="is_offline">Twoje urządzenie jest offline. Tunel zostanie automatycznie połączony, gdy urządzenie ponownie przejdzie w tryb online.</string>
+ <string name="less_than_a_day_left">pozostał mniej niż jeden dzień</string>
+ <string name="less_than_a_minute_ago">mniej niż minutę temu</string>
+ <string name="local_network_sharing">Udostępnianie sieci lokalnej</string>
+ <string name="local_network_sharing_additional_info">Zapewnia to poprzez umożliwienie komunikacji sieciowej poza tunelem do lokalnych zakresów adresów IP multiemisji i emisji, a także do i z następujących prywatnych zakresów adresów IP:</string>
+ <string name="local_network_sharing_info">Funkcja ta umożliwia dostęp do innych urządzeń w sieci lokalnej, np. w celu udostępniania, drukowania, transmisji strumieniowej itd.</string>
+ <string name="log_out">Wyloguj się</string>
+ <string name="logged_in_description">Prawidłowy numer konta</string>
+ <string name="logged_in_title">Zalogowano jako</string>
+ <string name="logging_in_description">Sprawdzanie numeru konta</string>
+ <string name="logging_in_title">Logowanie...</string>
+ <string name="login_description">Wprowadź numer konta</string>
+ <string name="login_fail_description">Nieprawidłowy numer konta</string>
+ <string name="login_fail_title">Błąd logowania</string>
+ <string name="login_title">Logowanie</string>
+ <string name="malware_info">Ostrzeżenie: funkcja blokowania złośliwego oprogramowania nie jest programem antywirusowym i nie należy jej tak traktować. To jedynie dodatkowa warstwa zabezpieczeń.</string>
+ <string name="max_devices_confirm_removal_description">Czy na pewno chcesz wylogować &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Teraz można kontynuować logowanie się na tym urządzeniu.</string>
+ <string name="max_devices_resolved_title">Super!</string>
+ <string name="max_devices_warning_description">Wyloguj się z co najmniej jednego urządzenia, usuwając je z poniższej listy. Odpowiednią nazwę urządzenia można znaleźć w ustawieniach konta urządzenia.</string>
+ <string name="max_devices_warning_title">Zbyt wiele urządzeń</string>
+ <string name="mullvad_account_number">Numer konta Mullvad</string>
+ <string name="no_matching_relay">Żaden serwer nie odpowiada ustawieniom. Spróbuj zmienić serwer lub inne ustawienia.</string>
+ <string name="no_wireguard_key">Brak prawidłowego klucza WireGuard. Zarządzaj kluczami w Ustawieniach zaawansowanych.</string>
+ <string name="not_blocking_internet">TWÓJ RUCH SIECIOWY MOŻE WYCIEKAĆ</string>
+ <string name="obfuscation_info">Zaciemnianie ukrywa ruch WireGuard w innym protokole. Można go użyć do obchodzenia cenzury i innych typów filtrowania, w których zwykłe połączenie WireGuard byłoby blokowane.</string>
+ <string name="obfuscation_on_udp_over_tcp">Wł. (UDP-przez-TCP)</string>
+ <string name="off">Wył.</string>
+ <string name="on">Wł.</string>
+ <string name="out_address">Wyjście</string>
+ <string name="out_of_time">Koniec czasu</string>
+ <string name="paid_until">Płatne do</string>
+ <string name="pay_to_start_using">Aby rozpocząć korzystanie z aplikacji, musisz najpierw dodać czas do swojego konta.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Spowoduje to usunięcie wszystkich przekierowanych portów. Ustawienia lokalne zostaną zapisane.</string>
+ <string name="privacy_disclaimer_title">Prywatność</string>
+ <string name="privacy_policy_label">Polityka prywatności</string>
+ <string name="problem_report_description">Aby można było pomóc Ci skuteczniej, do tej wiadomości dołączony zostanie plik dziennika aplikacji. Twoje dane pozostaną bezpieczne i prywatne, ponieważ przed wysłaniem zaszyfrowanym kanałem zostają one zanonimizowane.</string>
+ <string name="quantum_creating_secure_connection">TWORZENIE KWANTOWO BEZPIECZNEGO POŁĄCZENIA</string>
+ <string name="quantum_resistant_info_first_paragaph">Ta funkcja sprawia, że tunel WireGuard jest odporny na potencjalne ataki ze strony komputerów kwantowych.</string>
+ <string name="quantum_resistant_info_second_paragaph">Jest to wykonywane poprzez dodatkową wymianę kluczy przy użyciu algorytmu odpornego na ataki z użyciem komputerów kwantowych i zmieszanie wyniku ze zwykłym szyfrowaniem WireGuard. Ten dodatkowy krok zużywa około 500 kB ruchu za każdym razem, gdy ustanawiany jest nowy tunel.</string>
+ <string name="quantum_resistant_title">Tunel odporny na ataki z użyciem komputerów kwantowych</string>
+ <string name="quantum_secure_connection">KWANTOWO BEZPIECZNE POŁĄCZENIE</string>
+ <string name="reconnecting">Ponowne łączenie</string>
+ <string name="redeem">Zrealizuj</string>
+ <string name="redeem_voucher">Zrealizuj kupon</string>
+ <string name="remove_button">Usuń</string>
+ <string name="report_a_problem">Zgłoś problem</string>
+ <string name="reset_to_default_button">Przywróć domyślne</string>
+ <string name="search_placeholder">Wyszukaj...</string>
+ <string name="secure_connection">BEZPIECZNE POŁĄCZENIE</string>
+ <string name="secured">Zabezpieczone</string>
+ <string name="select_location">Wybierz lokalizację</string>
+ <string name="select_location_description">Podczas połączenia Twoja prawdziwa lokalizacja jest maskowana prywatną, bezpieczną lokalizacją w wybranym regionie.</string>
+ <string name="select_location_empty_text_first_row">Brak wyników dla &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Wypróbuj inne wyszukiwanie.</string>
+ <string name="send">Wyślij</string>
+ <string name="send_anyway">Mimo to wyślij</string>
+ <string name="sending">Wysyłanie...</string>
+ <string name="sent">Wysłano</string>
+ <string name="sent_contact">W razie potrzeby skontaktujemy się z Tobą pod adresem %1$s</string>
+ <string name="sent_thanks">Dziękujemy!</string>
+ <string name="set_dns_error">Nie można ustawić systemowego serwera DNS. Wyślij zgłoszenie problemu.</string>
+ <string name="set_firewall_policy_error">Nie można zastosować reguł zapory. Rozwiąż problem lub wyślij zgłoszenie problemu.</string>
+ <string name="settings">Ustawienia</string>
+ <string name="settings_account">Konto</string>
+ <string name="settings_preferences">Preferencje</string>
+ <string name="settings_vpn">Ustawienia VPN</string>
+ <string name="show_account_number">Pokaż numer konta</string>
+ <string name="show_system_apps">Pokaż aplikacje systemowe</string>
+ <string name="split_tunneling_description">Dzielone tunelowanie umożliwia wybranie aplikacji, które nie powinny być kierowane przez tunel VPN.</string>
+ <string name="start_tunnel_error">Nie można uruchomić połączenia tunelowego. Wyślij zgłoszenie problemu.</string>
+ <string name="submit_button">Prześlij</string>
+ <string name="switch_location">Zmień lokalizację</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Przełącz VPN</string>
+ <string name="try_again">Spróbuj ponownie</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Port TCP, z którym powinien łączyć się protokół zaciemniania UDP-przez-TCP na serwerze VPN.</string>
+ <string name="unsecured">Niezabezpieczone</string>
+ <string name="unsecured_connection">NIEZABEZPIECZONE POŁĄCZENIE</string>
+ <string name="unsupported_version">WERSJA NIEOBSŁUGIWANA</string>
+ <string name="unsupported_version_description">W tej nieobsługiwanej wersji aplikacji prywatność może być zagrożona. Zaktualizuj już teraz.</string>
+ <string name="unsupported_version_without_upgrade">Używasz nieobsługiwanej wersji aplikacji.</string>
+ <string name="update_available">DOSTĘPNA JEST AKTUALIZACJA</string>
+ <string name="update_available_description">Aby być na bieżąco, zainstaluj Mullvad VPN (%1$s)</string>
+ <string name="update_available_footer">Dostępna jest aktualizacja. Aby zachować bezpieczeństwo, pobierz ją.</string>
+ <string name="update_dns_server_dialog_title">Zaktualizuj serwer DNS</string>
+ <string name="user_email_hint">Twój adres e-mail (opcjonalnie)</string>
+ <string name="user_message_hint">Abyśmy mogli lepiej Ci pomóc, napisz w języku angielskim lub szwedzkim i podaj kraj, z którego się łączysz.</string>
+ <string name="view_logs">Wyświetl dzienniki aplikacji</string>
+ <string name="virtual_adapter_problem">Błąd wirtualnej karty sieciowej</string>
+ <string name="voucher_already_used">Kod z tego kuponu został już użyty.</string>
+ <string name="vpn_permission_denied_error">Uprawnienie VPN zostało odrzucone podczas tworzenia tunelu. Spróbuj połączyć się ponownie.</string>
+ <string name="vpn_permission_error_notification_message">Opcja „Zawsze włączony VPN” może być włączona dla innej aplikacji</string>
+ <string name="vpn_permission_error_notification_title">Błąd uprawnienia VPN</string>
+ <string name="we_will_look_into_this">Sprawdzimy to.</string>
+ <string name="wireguard_custon_port_title">Niestandardowy</string>
+ <string name="wireguard_mtu">MTU WireGuard</string>
+ <string name="wireguard_mtu_footer">Ustaw wartość MTU WireGuard. Prawidłowy zakres: %1$d–%2$d.</string>
+ <string name="wireguard_port_info_description">Ustawienie automatyczne skutkuje wyborem losowym prawidłowego zakresu portów spośród zakresów przedstawionych poniżej.</string>
+ <string name="wireguard_port_info_port_range">Port niestandardowy może mieć dowolną wartość z następujących prawidłowych zakresów: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-pt/plurals.xml b/android/lib/resource/src/main/res/values-pt/plurals.xml
new file mode 100644
index 0000000000..e4eba372a7
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-pt/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 dia restante</item>
+ <item quantity="other">%1$d dias restantes</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 mês restante</item>
+ <item quantity="other">%1$d meses restantes</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 ano restante</item>
+ <item quantity="other">%1$d anos restantes</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">há um dia</item>
+ <item quantity="other">há %1$d dias</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">há um minuto</item>
+ <item quantity="other">há %1$d minutos</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">há um mês</item>
+ <item quantity="other">há %1$d meses</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">há um ano</item>
+ <item quantity="other">há %1$d anos</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">há uma hora</item>
+ <item quantity="other">há %1$d horas</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">O crédito da conta expira dentro de um dia</item>
+ <item quantity="other">O crédito da conta expira dentro de %1$d dias</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">O crédito da conta expira dentro de uma hora</item>
+ <item quantity="other">O crédito da conta expira dentro de %1$d horas</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-pt/strings.xml b/android/lib/resource/src/main/res/values-pt/strings.xml
new file mode 100644
index 0000000000..29e3e5df25
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-pt/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Conta criada</string>
+ <string name="account_credit_expires_in_a_few_minutes">O crédito da conta expira dentro de alguns minutos</string>
+ <string name="account_credit_expires_soon">O crédito da conta expira brevemente</string>
+ <string name="account_credit_has_expired">Não tem mais Tempo de VPN restante nesta conta.</string>
+ <string name="account_number">Número de conta</string>
+ <string name="account_time_notification_channel_description">Mostra lembretes quando o tempo da conta está prestes a expirar</string>
+ <string name="account_time_notification_channel_name">Lembretes de tempo da conta</string>
+ <string name="add_a_server">Adicionar um servidor</string>
+ <string name="add_dns_server_dialog_title">Adicionar servidor DNS</string>
+ <string name="add_time_to_account">Compre crédito no nosso sítio da web ou reclame um voucher.</string>
+ <string name="agree_and_continue">Concordar e continuar</string>
+ <string name="all_applications">Todas as aplicações</string>
+ <string name="allow_lan_footer">Permite o acesso a outros dispositivos na mesma rede para partilha, impressão, etc.</string>
+ <string name="always_on_vpn_error_notification_content">Não foi possível iniciar a ligação de túnel. Desative a VPN sempre ligada para &lt;b&gt;%1$s&lt;/b&gt; antes de utilizar a Mullvad VPN.</string>
+ <string name="always_on_vpn_error_notification_title">VPN sempre ligada atribuída a outra app</string>
+ <string name="app_version">Versão da app</string>
+ <string name="auth_failed">Não foi possível autenticar a conta. Envie um relatório do problema.</string>
+ <string name="auto_connect">Ligação automática</string>
+ <string name="auto_connect_footer">Liga-se automaticamente a um servidor quando a app inicia.</string>
+ <string name="automatic">Automático</string>
+ <string name="back">Retroceder</string>
+ <string name="block_ads_title">Anúncios</string>
+ <string name="block_adult_content_title">Conteúdo para adultos</string>
+ <string name="block_gambling_title">Jogos de azar</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="block_trackers_title">Trackers</string>
+ <string name="blocked_connection">LIGAÇÃO BLOQUEADA</string>
+ <string name="blocking_internet">A bloquear a Internet</string>
+ <string name="blocking_internet_device_offline">Bloqueio de Internet (dispositivo offline)</string>
+ <string name="buy_credit">Comprar crédito</string>
+ <string name="buy_more_credit">Comprar mais crédito</string>
+ <string name="cancel">Cancelar</string>
+ <string name="changes_dialog_dismiss_button">Entendido!</string>
+ <string name="changes_dialog_subtitle">Alterações nesta versão:</string>
+ <string name="confirm_local_dns">O servidor DNS local não funcionará exceto se ativar \"Partilha de rede local\" em Preferências.</string>
+ <string name="confirm_no_email">Está prestes a enviar o relatório de problema sem que tenhamos uma forma de lhe responder. Se pretender uma resposta ao seu relatório, tem de introduzir um endereço de email.</string>
+ <string name="confirm_removal">Sim, desligar o dispositivo</string>
+ <string name="congrats">Parabéns!</string>
+ <string name="connect">Tornar a minha ligação segura</string>
+ <string name="connecting">A ligar</string>
+ <string name="connecting_to_daemon">A ligar-se ao serviço de sistema Mulvad...</string>
+ <string name="continue_login">Continuar com a ligação</string>
+ <string name="copied_mullvad_account_number">Número de conta Mullvad copiado para a área de transferência</string>
+ <string name="copied_to_clipboard">Copiado para a área de transferência</string>
+ <string name="copy_account_number">Copiar número de conta</string>
+ <string name="create_account">Criar conta</string>
+ <string name="creating_new_account">A criar conta...</string>
+ <string name="creating_secure_connection">A CRIAR LIGAÇÃO SEGURA</string>
+ <string name="critical_error">Erro crítico (é necessária a sua atenção)</string>
+ <string name="custom_dns_footer">Ativar para adicionar pelo menos um servidor DNS.</string>
+ <string name="custom_dns_hint">Introduzir IP</string>
+ <string name="custom_tunnel_host_resolution_error">Não foi possível resolver o anfitrião do túnel personalizado. Experimente alterar as suas definições.</string>
+ <string name="device_inactive_description">Removeu este dispositivo. Para voltar a ligar o dispositivo, terá de voltar a iniciar a sessão.</string>
+ <string name="device_inactive_title">O dispositivo está desativado</string>
+ <string name="device_inactive_unblock_warning">Ir para a ligação irá desbloquear a Internet neste dispositivo.</string>
+ <string name="device_name">Nome do dispositivo</string>
+ <string name="disconnect">Desligar</string>
+ <string name="disconnecting">A desligar</string>
+ <string name="dismiss">Dispensar</string>
+ <string name="dns_content_blockers_info">Quando esta funcionalidade é ativada, impede que o dispositivo contacte certos domínios ou sites conhecidos por distribuir anúncios, malware, trackers e muito mais.</string>
+ <string name="dns_content_blockers_subtitle">Desative &lt;b&gt;%1$s&lt;/b&gt; abaixo para ativar estas definições.</string>
+ <string name="dns_content_blockers_title">Bloqueadores de conteúdo de DNS</string>
+ <string name="dont_have_an_account">Não tem um número de conta?</string>
+ <string name="duplicate_address_warning">Este endereço já foi introduzido.</string>
+ <string name="edit_message">Editar mensagem</string>
+ <string name="enable">Ativar</string>
+ <string name="enable_custom_dns">Usar servidor DNS personalizado</string>
+ <string name="enter_value_placeholder">Introduzir MTU</string>
+ <string name="enter_voucher_code">Introduza o código do voucher</string>
+ <string name="error_occurred">Ocorreu um erro.</string>
+ <string name="error_state">ERRO AO ESTABELECER LIGAÇÃO SEGURA</string>
+ <string name="exclude_applications">Aplicações excluídas</string>
+ <string name="failed_to_block_internet">Não foi possível bloquear todo o tráfego de rede. Experimente a resolução de problemas ou envie um relatório do problema.</string>
+ <string name="failed_to_create_account">Não foi possível criar a conta</string>
+ <string name="failed_to_fetch_devices">Erro ao obter a lista de dispositivos</string>
+ <string name="failed_to_remove_device">Erro ao remover dispositivo</string>
+ <string name="failed_to_send">Erro no envio</string>
+ <string name="failed_to_send_details">Se sair do formulário e tentar novamente mais tarde, a informação que já tiver introduzido continuará aqui.</string>
+ <string name="faqs_and_guides">Perguntas frequentes e guias</string>
+ <string name="foreground_notification_channel_description">Indica o estado atual do túnel VPN</string>
+ <string name="foreground_notification_channel_name">Estado do túnel VPN</string>
+ <string name="go_to_login">Ir para a ligação</string>
+ <string name="here_is_your_account_number">Aqui tem o seu número de conta. Guarde-o!</string>
+ <string name="hide_account_number">Ocultar número de conta</string>
+ <string name="hint_default">Padrão</string>
+ <string name="in_address">Entrada</string>
+ <string name="invalid_dns_servers">Os endereços do servidor DNS personalizado %1$s são inválidos</string>
+ <string name="invalid_voucher">Código do voucher inválido.</string>
+ <string name="ipv6_unavailable">Não foi possível configurar o IPv6. Desative-o ou ative-o no seu dispositivo.</string>
+ <string name="is_offline">O seu dispositivo está offline. O túnel irá ligar-se automaticamente assim que o seu dispositivo estiver novamente online.</string>
+ <string name="less_than_a_day_left">menos de um dia restante</string>
+ <string name="less_than_a_minute_ago">há menos de um minuto</string>
+ <string name="local_network_sharing">Partilha de rede local</string>
+ <string name="local_network_sharing_additional_info">Para tal, permite a comunicação de rede fora do túnel para intervalos locais de multicast e difusão, bem como de e para estes intervalos de IPs privados:</string>
+ <string name="local_network_sharing_info">Esta funcionalidade permite o acesso a outros dispositivos na rede local, por exemplo, para partilha, impressão, streaming, etc.</string>
+ <string name="log_out">Terminar sessão</string>
+ <string name="logged_in_description">Número de conta válido</string>
+ <string name="logged_in_title">Sessão iniciada</string>
+ <string name="logging_in_description">A verificar o número da conta</string>
+ <string name="logging_in_title">A iniciar sessão...</string>
+ <string name="login_description">Introduza o seu número de conta</string>
+ <string name="login_fail_description">Número de conta inválido</string>
+ <string name="login_fail_title">Erro ao iniciar sessão</string>
+ <string name="login_title">Iniciar sessão</string>
+ <string name="malware_info">Aviso: o bloqueador de malware não é um antivírus e não deve ser tratado como tal, é apenas uma camada extra de proteção.</string>
+ <string name="max_devices_confirm_removal_description">Tem a certeza de que quer terminar a sessão de &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Agora pode continuar a ligação neste dispositivo.</string>
+ <string name="max_devices_resolved_title">Excelente!</string>
+ <string name="max_devices_warning_description">Desligue-se de pelo menos um dos dispositivos removendo-o da lista abaixo. Pode encontrar o nome do dispositivo correspondente nas definições de Conta do dispositivo.</string>
+ <string name="max_devices_warning_title">Demasiados dispositivos</string>
+ <string name="mullvad_account_number">Número de conta Mullvad</string>
+ <string name="no_matching_relay">Nenhum servidor corresponde às suas definições. Tente alterar o servidor ou outras definições.</string>
+ <string name="no_wireguard_key">Chave WireGuard válida em falta. Faça a gestão das chaves em Definições Avançadas.</string>
+ <string name="not_blocking_internet">PODERÁ ESTAR A PERDER TRÁFEGO DE REDE</string>
+ <string name="obfuscation_info">A ofuscação oculta o tráfego do WireGuard dentro de outro protocolo. Pode ser utilizado para ajudar a contornar a censura e outros tipos de filtragem, onde uma simples ligação WireGuard seria bloqueada.</string>
+ <string name="obfuscation_on_udp_over_tcp">Ligado (UDP sobre TCP)</string>
+ <string name="off">Desligado</string>
+ <string name="on">Ligado</string>
+ <string name="out_address">Saída</string>
+ <string name="out_of_time">Sem tempo</string>
+ <string name="paid_until">Pago até</string>
+ <string name="pay_to_start_using">Para começar a utilizar a aplicação, primeiro tem de adicionar tempo à sua conta.</string>
+ <string name="port">Porta</string>
+ <string name="port_removal_notice">Esta ação irá apagar todas as portas reencaminhadas. As definições locais serão guardadas.</string>
+ <string name="privacy_disclaimer_title">Privacidade</string>
+ <string name="privacy_policy_label">Política de privacidade</string>
+ <string name="problem_report_description">Para ajudarmos de forma mais eficaz, o ficheiro de registo da sua aplicação será anexado a esta mensagem. Os seus dados permanecerão seguros e privados, pois são tornados anónimos antes de serem enviados através de um canal encriptado.</string>
+ <string name="quantum_creating_secure_connection">A CRIAR LIGAÇÃO COM SEGURANÇA QUÂNTICA</string>
+ <string name="quantum_resistant_info_first_paragaph">Esta funcionalidade torna o túnel do WireGuard resistente a potenciais ataques de computadores quânticos.</string>
+ <string name="quantum_resistant_info_second_paragaph">Fá-lo ao realizar uma troca de chaves adicional utilizando um algoritmo de segurança quântica e misturando o resultado na encriptação regular do WireGuard. Este passo adicional utiliza aproximadamente 500 kiB de tráfego sempre que um novo túnel é estabelecido.</string>
+ <string name="quantum_resistant_title">Túnel com resistência quântica</string>
+ <string name="quantum_secure_connection">LIGAÇÃO COM SEGURANÇA QUÂNTICA</string>
+ <string name="reconnecting">A religar</string>
+ <string name="redeem">Reclamar</string>
+ <string name="redeem_voucher">Reclamar voucher</string>
+ <string name="remove_button">Remover</string>
+ <string name="report_a_problem">Reportar um problema</string>
+ <string name="reset_to_default_button">Repor para as predefinições</string>
+ <string name="search_placeholder">Pesquisar por...</string>
+ <string name="secure_connection">LIGAÇÃO SEGURA</string>
+ <string name="secured">Seguro</string>
+ <string name="select_location">Selecionar local</string>
+ <string name="select_location_description">Enquanto estiver ligado, a sua localização real será mascarada com uma localização privada e segura na região selecionada.</string>
+ <string name="select_location_empty_text_first_row">Sem resultados para &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Experimente uma pesquisa diferente.</string>
+ <string name="send">Enviar</string>
+ <string name="send_anyway">Enviar mesmo assim</string>
+ <string name="sending">A enviar...</string>
+ <string name="sent">Enviado</string>
+ <string name="sent_contact">Se necessário, iremos contactá-lo através de %1$s</string>
+ <string name="sent_thanks">Obrigado!</string>
+ <string name="set_dns_error">Não foi possível definir o servidor DNS do sistema. Envie um relatório do problema.</string>
+ <string name="set_firewall_policy_error">Não foi possível aplicar as regras de firewall. Experimente a resolução de problemas ou envie um relatório do problema.</string>
+ <string name="settings">Definições</string>
+ <string name="settings_account">Conta</string>
+ <string name="settings_preferences">Preferências</string>
+ <string name="settings_vpn">Definições de VPN</string>
+ <string name="show_account_number">Mostrar número de conta</string>
+ <string name="show_system_apps">Mostrar aplicações do sistema</string>
+ <string name="split_tunneling_description">A divisão do túnel permite selecionar quais as aplicações que devem ser direcionadas através do túnel VPN.</string>
+ <string name="start_tunnel_error">Não foi possível iniciar a ligação de túnel. Envie um relatório do problema.</string>
+ <string name="submit_button">Enviar</string>
+ <string name="switch_location">Alterar local</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Alternar VPN</string>
+ <string name="try_again">Tentar novamente</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">A que porta TCP o protocolo de ofuscação UDP sobre TCP deve ligar-se no servidor VPN.</string>
+ <string name="unsecured">Inseguro</string>
+ <string name="unsecured_connection">LIGAÇÃO INSEGURA</string>
+ <string name="unsupported_version">VERSÃO NÃO SUPORTADA</string>
+ <string name="unsupported_version_description">A sua privacidade pode estar comprometida com uma versão não suportada da aplicação. Por favor efetue a atualização agora.</string>
+ <string name="unsupported_version_without_upgrade">Está a executar uma versão da aplicação não suportada.</string>
+ <string name="update_available">ESTÁ DISPONÍVEL UMA ATUALIZAÇÃO</string>
+ <string name="update_available_description">Instalar o Mullvad VPN (%1$s) para ficar atualizado</string>
+ <string name="update_available_footer">Atualização disponível, transfira-a para ficar seguro.</string>
+ <string name="update_dns_server_dialog_title">Atualizar servidor DNS</string>
+ <string name="user_email_hint">O seu email (opcional)</string>
+ <string name="user_message_hint">Para o ajudar melhor, escreva em inglês ou sueco e indique o país de onde está a efetuar a ligação.</string>
+ <string name="view_logs">Ver os registos da app</string>
+ <string name="virtual_adapter_problem">Erro de adaptador virtual</string>
+ <string name="voucher_already_used">O código do voucher já foi utilizado.</string>
+ <string name="vpn_permission_denied_error">A transmissão foi negada durante a criação do túnel. Tente fazer novamente a ligação.</string>
+ <string name="vpn_permission_error_notification_message">A VPN sempre ligada pode estar ativada para outra app</string>
+ <string name="vpn_permission_error_notification_title">Erro de permissão da VPN</string>
+ <string name="we_will_look_into_this">Vamos analisar esta situação.</string>
+ <string name="wireguard_custon_port_title">Personalizado</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">Definir o valor WireGuard MTU. Intervalo válido: %1$d - %2$d.</string>
+ <string name="wireguard_port_info_description">A definição automática escolherá aleatoriamente a partir do intervalo de portas válido apresentado abaixo.</string>
+ <string name="wireguard_port_info_port_range">A porta personalizada pode ser qualquer valor dentro dos intervalos válidos: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-ru/plurals.xml b/android/lib/resource/src/main/res/values-ru/plurals.xml
new file mode 100644
index 0000000000..3a4cfffb59
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-ru/plurals.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">Остался %1$d день</item>
+ <item quantity="few">Осталось %1$d дня</item>
+ <item quantity="many">Осталось %1$d дней</item>
+ <item quantity="other">Осталось %1$d дня</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">Остался %1$d месяц</item>
+ <item quantity="few">Осталось %1$d месяца</item>
+ <item quantity="many">Осталось %1$d месяцев</item>
+ <item quantity="other">Осталось %1$d месяца</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">Остался %1$d год</item>
+ <item quantity="few">Осталось %1$d года</item>
+ <item quantity="many">Осталось %1$d лет</item>
+ <item quantity="other">Осталось %1$d года</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">%1$d день назад</item>
+ <item quantity="few">%1$d дня назад</item>
+ <item quantity="many">%1$d дней назад</item>
+ <item quantity="other">%1$d дня назад</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">%1$d минуту назад</item>
+ <item quantity="few">%1$d минуты назад</item>
+ <item quantity="many">%1$d минут назад</item>
+ <item quantity="other">%1$d минуты назад</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">%1$d месяц назад</item>
+ <item quantity="few">%1$d месяца назад</item>
+ <item quantity="many">%1$d месяцев назад</item>
+ <item quantity="other">%1$d месяца назад</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">%1$d год назад</item>
+ <item quantity="few">%1$d года назад</item>
+ <item quantity="many">%1$d лет назад</item>
+ <item quantity="other">%1$d года назад</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">%1$d час назад</item>
+ <item quantity="few">%1$d часа назад</item>
+ <item quantity="many">%1$d часов назад</item>
+ <item quantity="other">%1$d часа назад</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Срок действия баланса учетной записи истекает через %1$d день</item>
+ <item quantity="few">Срок действия баланса учетной записи истекает через %1$d дня</item>
+ <item quantity="many">Срок действия баланса учетной записи истекает через %1$d дней</item>
+ <item quantity="other">Срок действия баланса учетной записи истекает через %1$d дня</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Срок действия баланса учетной записи истекает через %1$d час</item>
+ <item quantity="few">Срок действия баланса учетной записи истекает через %1$d часа</item>
+ <item quantity="many">Срок действия баланса учетной записи истекает через %1$d часов</item>
+ <item quantity="other">Срок действия баланса учетной записи истекает через %1$d часа</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-ru/strings.xml b/android/lib/resource/src/main/res/values-ru/strings.xml
new file mode 100644
index 0000000000..3fdc285af6
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-ru/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Учетная запись создана</string>
+ <string name="account_credit_expires_in_a_few_minutes">Баланс учетной записи закончится через несколько минут</string>
+ <string name="account_credit_expires_soon">Баланс учетной записи скоро закончится</string>
+ <string name="account_credit_has_expired">На этой учетной записи времени VPN не осталось.</string>
+ <string name="account_number">Номер учетной записи</string>
+ <string name="account_time_notification_channel_description">Показывает уведомления, когда время на учетной записи скоро закончится</string>
+ <string name="account_time_notification_channel_name">Напоминания о времени на учетной записи</string>
+ <string name="add_a_server">Добавить сервер</string>
+ <string name="add_dns_server_dialog_title">Добавить DNS-сервер</string>
+ <string name="add_time_to_account">Пополните баланс у нас на сайте или погасите ваучер.</string>
+ <string name="agree_and_continue">Согласиться и продолжить</string>
+ <string name="all_applications">Все приложения</string>
+ <string name="allow_lan_footer">Разрешить доступ к другим устройствам в той же сети для организации общего доступа, печати и т. д.</string>
+ <string name="always_on_vpn_error_notification_content">Не удалось запустить туннельное соединение. Перед использованием Mullvad VPN отключите опцию «VPN всегда вкл.» для &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="always_on_vpn_error_notification_title">Опция «VPN всегда вкл.» назначена другому приложению</string>
+ <string name="app_version">Версия приложения</string>
+ <string name="auth_failed">Не удается произвести аутентификацию учетной записи. Отправьте сообщение о проблеме.</string>
+ <string name="auto_connect">Автоподключение</string>
+ <string name="auto_connect_footer">Автоматически подключаться к серверу при запуске приложения.</string>
+ <string name="automatic">Автоматически</string>
+ <string name="back">Назад</string>
+ <string name="block_ads_title">Реклама</string>
+ <string name="block_adult_content_title">Контент для взрослых</string>
+ <string name="block_gambling_title">Азартные игры</string>
+ <string name="block_malware_title">Вредоносное ПО</string>
+ <string name="block_trackers_title">Трекеры</string>
+ <string name="blocked_connection">ПОДКЛЮЧЕНИЕ ЗАБЛОКИРОВАНО</string>
+ <string name="blocking_internet">Блокируется доступ в Интернет</string>
+ <string name="blocking_internet_device_offline">Блокируется доступ в Интернет (устройство офлайн)</string>
+ <string name="buy_credit">Пополнить баланс</string>
+ <string name="buy_more_credit">Пополнить баланс</string>
+ <string name="cancel">Отмена</string>
+ <string name="changes_dialog_dismiss_button">Понятно!</string>
+ <string name="changes_dialog_subtitle">Изменения в этой версии:</string>
+ <string name="confirm_local_dns">Локальный DNS-сервер не будет работать, пока вы не включите «Обмен данными в локальной сети» в разделе «Параметры».</string>
+ <string name="confirm_no_email">Вы собираетесь отправить отчет о проблеме, не оставив контакты. Если вы хотите получить ответ, введите свой адрес электронной почты.</string>
+ <string name="confirm_removal">Выйти из профиля на устройстве</string>
+ <string name="congrats">Поздравляем!</string>
+ <string name="connect">Защитить мое подключение</string>
+ <string name="connecting">Идет подключение</string>
+ <string name="connecting_to_daemon">Подключение к системному сервису Mullvad...</string>
+ <string name="continue_login">Войти</string>
+ <string name="copied_mullvad_account_number">Номер учетной записи Mullvad скопирован в буфер обмена</string>
+ <string name="copied_to_clipboard">Скопировано в буфер обмена</string>
+ <string name="copy_account_number">Копировать номер учетной записи</string>
+ <string name="create_account">Создать учетную запись</string>
+ <string name="creating_new_account">Создание учетной записи...</string>
+ <string name="creating_secure_connection">СОЗДАНИЕ ЗАЩИЩЕННОГО ПОДКЛЮЧЕНИЯ</string>
+ <string name="critical_error">Критическая ошибка (требуется ваше участие)</string>
+ <string name="custom_dns_footer">Чтобы добавить как минимум один DNS-сервер, включите этот параметр.</string>
+ <string name="custom_dns_hint">Введите IP-адрес</string>
+ <string name="custom_tunnel_host_resolution_error">Не удалось преобразовать имя узла пользовательского туннеля. Попробуйте изменить настройки.</string>
+ <string name="device_inactive_description">Вы удалили это устройство. Чтобы снова подключиться, нужно будет выполнить вход.</string>
+ <string name="device_inactive_title">Устройство неактивно</string>
+ <string name="device_inactive_unblock_warning">Вход в профиль разблокирует Интернет на этом устройстве.</string>
+ <string name="device_name">Имя устройства</string>
+ <string name="disconnect">Отключить</string>
+ <string name="disconnecting">Отключение</string>
+ <string name="dismiss">Закрыть</string>
+ <string name="dns_content_blockers_info">При включенной опции устройство не будет устанавливать соединение с определенными доменами и сайтами, известными распространением рекламы, вредоносного ПО, трекеров и т. д.</string>
+ <string name="dns_content_blockers_subtitle">Чтобы активировать эти параметры, отключите опцию &lt;b&gt;%1$s&lt;/b&gt; ниже.</string>
+ <string name="dns_content_blockers_title">DNS-блокировщики контента</string>
+ <string name="dont_have_an_account">У вас нет номера учетной записи?</string>
+ <string name="duplicate_address_warning">Этот адрес уже введен.</string>
+ <string name="edit_message">Изменить сообщение</string>
+ <string name="enable">Включить</string>
+ <string name="enable_custom_dns">Пользовательский DNS-сервер</string>
+ <string name="enter_value_placeholder">Введите MTU</string>
+ <string name="enter_voucher_code">Введите код ваучера</string>
+ <string name="error_occurred">Произошла ошибка.</string>
+ <string name="error_state">НЕ УДАЛОСЬ УСТАНОВИТЬ БЕЗОПАСНОЕ ПОДКЛЮЧЕНИЕ</string>
+ <string name="exclude_applications">Исключенные приложения</string>
+ <string name="failed_to_block_internet">Не удалось заблокировать весь сетевой трафик. Устраните неполадки или отправьте сообщение о проблеме.</string>
+ <string name="failed_to_create_account">Не удалось создать учетную запись</string>
+ <string name="failed_to_fetch_devices">Не удалось получить список устройств</string>
+ <string name="failed_to_remove_device">Не удалось удалить устройство</string>
+ <string name="failed_to_send">Ошибка отправки</string>
+ <string name="failed_to_send_details">Если вы выйдете из формы и повторите попытку позже, информация, которую вы уже ввели, сохранится.</string>
+ <string name="faqs_and_guides">Ответы на вопросы и руководства</string>
+ <string name="foreground_notification_channel_description">Показывает текущее состояние VPN-туннеля</string>
+ <string name="foreground_notification_channel_name">Состояние туннеля VPN</string>
+ <string name="go_to_login">Войти</string>
+ <string name="here_is_your_account_number">Вот номер вашей учетной записи. Сохраните его!</string>
+ <string name="hide_account_number">Скрыть номер учетной записи</string>
+ <string name="hint_default">По умолчанию</string>
+ <string name="in_address">Вход</string>
+ <string name="invalid_dns_servers">Пользовательские адреса DNS-серверов %1$s недопустимы</string>
+ <string name="invalid_voucher">Код ваучера недействителен.</string>
+ <string name="ipv6_unavailable">Не удается сконфигурировать IPv6. Отключите этот протокол в приложении или включите на устройстве.</string>
+ <string name="is_offline">Устройство отключено от Интернета. Туннельное соединение автоматически запустится, как только ваше устройство подключится к Интернету.</string>
+ <string name="less_than_a_day_left">осталось менее суток</string>
+ <string name="less_than_a_minute_ago">менее минуты назад</string>
+ <string name="local_network_sharing">Обмен данными в локальной сети</string>
+ <string name="local_network_sharing_additional_info">Это достигается путем разрешения сетевого взаимодействия вне туннеля с локальными многоадресными и широковещательными диапазонами, а также со следующими диапазонами частных IP-адресов:</string>
+ <string name="local_network_sharing_info">Эта функция позволяет получить доступ к другим устройствам в локальной сети, например, для организации общего доступа, печати, потоковой передачи и т. д.</string>
+ <string name="log_out">Выйти</string>
+ <string name="logged_in_description">Действительный номер учетной записи</string>
+ <string name="logged_in_title">Вход выполнен</string>
+ <string name="logging_in_description">Проверка номера учетной записи</string>
+ <string name="logging_in_title">Выполняется вход...</string>
+ <string name="login_description">Введите номер учетной записи</string>
+ <string name="login_fail_description">Недействительный номер учетной записи</string>
+ <string name="login_fail_title">Ошибка входа</string>
+ <string name="login_title">Вход</string>
+ <string name="malware_info">Внимание! Блокировщик вредоносного ПО — это просто дополнительный уровень защиты, а не антивирус.</string>
+ <string name="max_devices_confirm_removal_description">Действительно выйти из профиля на устройстве &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Теперь можно войти в учетную запись на этом устройстве.</string>
+ <string name="max_devices_resolved_title">Отлично!</string>
+ <string name="max_devices_warning_description">Выйдите из учетной записи хотя бы на одном из устройств, удалив его из списка ниже. Имя устройства указано в настройках учетной записи.</string>
+ <string name="max_devices_warning_title">Слишком много устройств</string>
+ <string name="mullvad_account_number">Номер учетной записи Mullvad</string>
+ <string name="no_matching_relay">Нет серверов, соответствующих вашим настройкам. Попробуйте изменить сервер или задайте другие настройки.</string>
+ <string name="no_wireguard_key">Не найден действительный ключ WireGuard. Управлять ключами можно в дополнительных настройках.</string>
+ <string name="not_blocking_internet">ВОЗМОЖНА УТЕЧКА СЕТЕВОГО ТРАФИКА</string>
+ <string name="obfuscation_info">Обфускация скрывает трафик WireGuard внутри другого протокола. Это может использоваться для обхода цензуры и других видов фильтрации, когда обычное соединение WireGuard было бы заблокировано.</string>
+ <string name="obfuscation_on_udp_over_tcp">Вкл. (UDP через TCP)</string>
+ <string name="off">Выключен</string>
+ <string name="on">Включен</string>
+ <string name="out_address">Выход</string>
+ <string name="out_of_time">Закончилось время</string>
+ <string name="paid_until">Оплачено до</string>
+ <string name="pay_to_start_using">Чтобы пользоваться приложением, нужно добавить время на учетную запись.</string>
+ <string name="port">Порт</string>
+ <string name="port_removal_notice">Будут удалены все перенаправленные порты. Локальные настройки сохранятся.</string>
+ <string name="privacy_disclaimer_title">Конфиденциальность</string>
+ <string name="privacy_policy_label">Политика конфиденциальности</string>
+ <string name="problem_report_description">Чтобы помощь была эффективнее, к этому сообщению будет прикреплен файл журнала из приложения. Ваши данные останутся защищенными и конфиденциальными: они обезличиваются и отправляются по зашифрованному каналу.</string>
+ <string name="quantum_creating_secure_connection">СОЗДАНИЕ ПОДКЛЮЧЕНИЯ С ЗАЩИТОЙ ОТ КВАНТОВЫХ АТАК</string>
+ <string name="quantum_resistant_info_first_paragaph">Эта функция делает туннель WireGuard устойчивым к потенциальным атакам с использованием квантовых компьютеров.</string>
+ <string name="quantum_resistant_info_second_paragaph">Для этого функция выполняет дополнительный обмен ключами с использованием квантово-устойчивого алгоритма и добавляет результат к обычному шифрованию WireGuard. Эта дополнительная мера использует примерно 500 КиБ трафика при каждом создании нового туннеля.</string>
+ <string name="quantum_resistant_title">Квантово-устойчивый туннель</string>
+ <string name="quantum_secure_connection">ПОДКЛЮЧЕНИЕ С ЗАЩИТОЙ ОТ КВАНТОВЫХ АТАК</string>
+ <string name="reconnecting">Идет переподключение</string>
+ <string name="redeem">Погасить</string>
+ <string name="redeem_voucher">Погасить ваучер</string>
+ <string name="remove_button">Удалить</string>
+ <string name="report_a_problem">Сообщение о проблеме</string>
+ <string name="reset_to_default_button">Восстановить значение по умолчанию</string>
+ <string name="search_placeholder">Поиск...</string>
+ <string name="secure_connection">ЗАЩИЩЕННОЕ ПОДКЛЮЧЕНИЕ</string>
+ <string name="secured">Подключение защищено</string>
+ <string name="select_location">Выбор местоположения</string>
+ <string name="select_location_description">При подключении реальное местоположение маскируется защищенным конфиденциальным местоположением в выбранном регионе.</string>
+ <string name="select_location_empty_text_first_row">По запросу &lt;b&gt;%1$s&lt;/b&gt; ничего не найдено.</string>
+ <string name="select_location_empty_text_second_row">Измените условие поиска.</string>
+ <string name="send">Отправить</string>
+ <string name="send_anyway">Все равно отправить</string>
+ <string name="sending">Идет отправка...</string>
+ <string name="sent">Отправлено</string>
+ <string name="sent_contact">При необходимости мы свяжемся с вами по адресу %1$s</string>
+ <string name="sent_thanks">Спасибо!</string>
+ <string name="set_dns_error">Не удалось установить системный DNS-сервер. Отправьте сообщение о проблеме.</string>
+ <string name="set_firewall_policy_error">Невозможно применить правила брандмауэра. Устраните неполадки или отправьте сообщение о проблеме.</string>
+ <string name="settings">Настройки</string>
+ <string name="settings_account">Учетная запись</string>
+ <string name="settings_preferences">Параметры</string>
+ <string name="settings_vpn">Настройки VPN</string>
+ <string name="show_account_number">Показать номер учетной записи</string>
+ <string name="show_system_apps">Показывать системные приложения</string>
+ <string name="split_tunneling_description">Раздельное туннелирование позволяет выбрать, какие приложения не должны маршрутизироваться через VPN-туннель.</string>
+ <string name="start_tunnel_error">Не удалось запустить туннельное соединение. Отправьте сообщение о проблеме.</string>
+ <string name="submit_button">Отправить</string>
+ <string name="switch_location">Сменить местоположение</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Включение VPN</string>
+ <string name="try_again">Повторить попытку</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">TCP-порт, к которому должен подключаться протокол обфускации UDP через TCP на VPN-сервере.</string>
+ <string name="unsecured">Подключение не защищено</string>
+ <string name="unsecured_connection">НЕЗАЩИЩЕННОЕ ПОДКЛЮЧЕНИЕ</string>
+ <string name="unsupported_version">НЕПОДДЕРЖИВАЕМАЯ ВЕРСИЯ</string>
+ <string name="unsupported_version_description">Эта версия приложения не поддерживается, что может угрожать неприкосновенности ваших данных. Обновите приложение.</string>
+ <string name="unsupported_version_without_upgrade">Версия приложения, с которой вы работаете, не поддерживается.</string>
+ <string name="update_available">ЕСТЬ ОБНОВЛЕНИЕ</string>
+ <string name="update_available_description">Пользуйтесь актуальной версией — установите Mullvad VPN (%1$s)</string>
+ <string name="update_available_footer">Вышло обновление. Установите его, чтобы защитить подключения.</string>
+ <string name="update_dns_server_dialog_title">Обновить DNS-сервер</string>
+ <string name="user_email_hint">Ваша электронная почта (необязательно)</string>
+ <string name="user_message_hint">Чтобы мы могли быстрее решить проблему, напишите нам на английском или шведском и укажите, из какой страны вы подключаетесь.</string>
+ <string name="view_logs">Открыть журналы</string>
+ <string name="virtual_adapter_problem">Ошибка виртуального адаптера</string>
+ <string name="voucher_already_used">Этот код ваучера уже использовался.</string>
+ <string name="vpn_permission_denied_error">При создании туннеля в доступе к VPN было отказано. Попробуйте подключиться снова.</string>
+ <string name="vpn_permission_error_notification_message">Опцию «VPN всегда вкл.» может быть включена для другого приложения</string>
+ <string name="vpn_permission_error_notification_title">Ошибка разрешения для VPN</string>
+ <string name="we_will_look_into_this">Мы рассмотрим эту проблему.</string>
+ <string name="wireguard_custon_port_title">Пользовательский</string>
+ <string name="wireguard_mtu">MTU для WireGuard</string>
+ <string name="wireguard_mtu_footer">Установите значение MTU для WireGuard. Диапазон значений: %1$d–%2$d.</string>
+ <string name="wireguard_port_info_description">При автоматической настройке порт будет выбираться случайным образом из допустимого диапазона, показанного ниже.</string>
+ <string name="wireguard_port_info_port_range">Пользовательский порт может принимать любое значение внутри допустимых диапазонов: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-sv/plurals.xml b/android/lib/resource/src/main/res/values-sv/plurals.xml
new file mode 100644
index 0000000000..d31ab0ad5b
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-sv/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 dag kvar</item>
+ <item quantity="other">%1$d dagar kvar</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 månad kvar</item>
+ <item quantity="other">%1$d månader kvar</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 år kvar</item>
+ <item quantity="other">%1$d år kvar</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">en dag sedan</item>
+ <item quantity="other">%1$d dagar sedan</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">en minut sedan</item>
+ <item quantity="other">%1$d minuter sedan</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">en månad sedan</item>
+ <item quantity="other">%1$d månader sedan</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">ett år sedan</item>
+ <item quantity="other">%1$d år sedan</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">en timme sedan</item>
+ <item quantity="other">%1$d timmar sedan</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Kontokrediten slutar gälla om en dag</item>
+ <item quantity="other">Kontokrediten slutar gälla om %1$d dagar</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Kontokrediten slutar gälla om en timme</item>
+ <item quantity="other">Kontokrediten slutar gälla om %1$d timmar</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-sv/strings.xml b/android/lib/resource/src/main/res/values-sv/strings.xml
new file mode 100644
index 0000000000..e85a4d2a20
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-sv/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Kontot har skapats</string>
+ <string name="account_credit_expires_in_a_few_minutes">Kontokrediten slutar gälla om några minuter</string>
+ <string name="account_credit_expires_soon">Kontokrediten slutar snart gälla</string>
+ <string name="account_credit_has_expired">Du har ingen VPN-tid kvar på det här kontot.</string>
+ <string name="account_number">Kontonummer</string>
+ <string name="account_time_notification_channel_description">Visar påminnelser när kontots tidsgräns uppnås</string>
+ <string name="account_time_notification_channel_name">Påminnelser om kontotid</string>
+ <string name="add_a_server">Lägg till en server</string>
+ <string name="add_dns_server_dialog_title">Lägg till DNS-server</string>
+ <string name="add_time_to_account">Du kan antingen köpa kredit på vår webbplats eller lösa in en kupong.</string>
+ <string name="agree_and_continue">Godkänn och fortsätt</string>
+ <string name="all_applications">Alla applikationer</string>
+ <string name="allow_lan_footer">Tillåter åtkomst till andra enheter på samma nätverk för delning, utskrift osv.</string>
+ <string name="always_on_vpn_error_notification_content">Det går inte att starta tunnelanslutning. Aktivera VPN som alltid är på för &lt;b&gt;%1$s&lt;/b&gt; innan du använder Mullvad VPN.</string>
+ <string name="always_on_vpn_error_notification_title">VPN som alltid är på har tilldelats till annan app</string>
+ <string name="app_version">Appversion</string>
+ <string name="auth_failed">Det går inte att autentisera kontot. Skicka en problemrapport.</string>
+ <string name="auto_connect">Anslut automatiskt</string>
+ <string name="auto_connect_footer">Anslut automatiskt till en server när appen startas.</string>
+ <string name="automatic">Automatisk</string>
+ <string name="back">Tillbaka</string>
+ <string name="block_ads_title">Annonser</string>
+ <string name="block_adult_content_title">Vuxet innehåll</string>
+ <string name="block_gambling_title">Hasardspel</string>
+ <string name="block_malware_title">Skadlig kod</string>
+ <string name="block_trackers_title">Spårare</string>
+ <string name="blocked_connection">ANSLUTNINGEN BLOCKERAD</string>
+ <string name="blocking_internet">Blockerar internet</string>
+ <string name="blocking_internet_device_offline">Blockerar internet (enheten är frånkopplad)</string>
+ <string name="buy_credit">Köp kredit</string>
+ <string name="buy_more_credit">Köp mer kredit</string>
+ <string name="cancel">Avbryt</string>
+ <string name="changes_dialog_dismiss_button">Jag förstår!</string>
+ <string name="changes_dialog_subtitle">Ändringar i den här versionen:</string>
+ <string name="confirm_local_dns">Den lokala DNS-servern fungerar inte om du inte aktiverar \"Lokal nätverksdelning\" under Inställningar.</string>
+ <string name="confirm_no_email">Du är på väg att skicka problemrapporten utan att vi har möjlighet att besvara dig. Om du vill ha svar på din rapport måste du ange en e-postadress.</string>
+ <string name="confirm_removal">Ja, logga ut enheten</string>
+ <string name="congrats">Grattis!</string>
+ <string name="connect">Skydda min anslutning</string>
+ <string name="connecting">Ansluter</string>
+ <string name="connecting_to_daemon">Ansluter till Mullvads systemtjänst...</string>
+ <string name="continue_login">Fortsätt med inloggning</string>
+ <string name="copied_mullvad_account_number">Kopierade Mullvad-kontonummer till urklipp</string>
+ <string name="copied_to_clipboard">Kopierat till urklipp</string>
+ <string name="copy_account_number">Kopiera kontonummer</string>
+ <string name="create_account">Skapa konto</string>
+ <string name="creating_new_account">Skapar konto...</string>
+ <string name="creating_secure_connection">SKAPAR SÄKER ANSLUTNING</string>
+ <string name="critical_error">Kritiskt fel (kräver din uppmärksamhet)</string>
+ <string name="custom_dns_footer">Aktivera för att lägga till minst en DNS-server.</string>
+ <string name="custom_dns_hint">Ange IP</string>
+ <string name="custom_tunnel_host_resolution_error">Det går inte att lösa värd för anpassad tunnel. Försök att ändra inställningarna.</string>
+ <string name="device_inactive_description">Du har tagit bort den här enheten. Du måste logga in igen för att återansluta.</string>
+ <string name="device_inactive_title">Enheten är inaktiv</string>
+ <string name="device_inactive_unblock_warning">Om du loggar in tas blockering av internet bort på den här enheten.</string>
+ <string name="device_name">Enhetens namn</string>
+ <string name="disconnect">Koppla från</string>
+ <string name="disconnecting">Kopplar från</string>
+ <string name="dismiss">Ignorera</string>
+ <string name="dns_content_blockers_info">När den här funktionen är aktiverad stoppas enheten från att kontakta vissa domäner eller webbplatser som är kända för att sprida annonser, skadlig kod, spårare med mera.</string>
+ <string name="dns_content_blockers_subtitle">Inaktivera &lt;b&gt;%1$s&lt;/b&gt; nedan för att aktivera dessa inställningar.</string>
+ <string name="dns_content_blockers_title">DNS-innehållsblockerare</string>
+ <string name="dont_have_an_account">Har du inget kontonummer?</string>
+ <string name="duplicate_address_warning">Adressen har redan angetts.</string>
+ <string name="edit_message">Redigera meddelande</string>
+ <string name="enable">Aktivera</string>
+ <string name="enable_custom_dns">Använd anpassad DNS-server</string>
+ <string name="enter_value_placeholder">Ange MTU</string>
+ <string name="enter_voucher_code">Ange kupongkod</string>
+ <string name="error_occurred">Ett fel har inträffat.</string>
+ <string name="error_state">DET GICK INTE ATT SÄKRA ANSLUTNINGEN</string>
+ <string name="exclude_applications">Exkluderade applikationer</string>
+ <string name="failed_to_block_internet">Det går inte att blockera all nätverkstrafik. Felsök eller skicka en problemrapport.</string>
+ <string name="failed_to_create_account">Det gick inte att skapa konto</string>
+ <string name="failed_to_fetch_devices">Det gick inte att hämta lista med enheter</string>
+ <string name="failed_to_remove_device">Det gick inte att ta bort enheten</string>
+ <string name="failed_to_send">Det gick inte att skicka</string>
+ <string name="failed_to_send_details">Om du lämnar formuläret och försöker igen senare kommer informationen du anger att finnas kvar.</string>
+ <string name="faqs_and_guides">Vanliga frågor och guider</string>
+ <string name="foreground_notification_channel_description">Visar nuvarande status för VPN-tunnel</string>
+ <string name="foreground_notification_channel_name">VPN-tunnelstatus</string>
+ <string name="go_to_login">Gå till inloggning</string>
+ <string name="here_is_your_account_number">Här är ditt kontonummer. Spara det!</string>
+ <string name="hide_account_number">Dölj kontonummer</string>
+ <string name="hint_default">Standard</string>
+ <string name="in_address">In</string>
+ <string name="invalid_dns_servers">Anpassade DNS-serveradresser %1$s är ogiltiga</string>
+ <string name="invalid_voucher">Kupongkoden är ogiltig.</string>
+ <string name="ipv6_unavailable">Det gick inte att konfigurera IPv6. Inaktivera det i appen eller aktivera det på din enhet.</string>
+ <string name="is_offline">Din enhet är offline. Tunneln ansluts automatiskt när din enhet är online igen.</string>
+ <string name="less_than_a_day_left">mindre än en dag kvar</string>
+ <string name="less_than_a_minute_ago">mindre än en minut sedan</string>
+ <string name="local_network_sharing">Lokal nätverksdelning</string>
+ <string name="local_network_sharing_additional_info">Den gör det genom att tillåta nätverkskommunikation utanför tunneln till lokala multicast- och sändningsintervall, samt till och från dessa privata IP-intervall:</string>
+ <string name="local_network_sharing_info">Funktionen tillåter åtkomst till andra enheter på det lokala nätverket, t.ex. för att dela, skriva ut, streama osv.</string>
+ <string name="log_out">Logga ut</string>
+ <string name="logged_in_description">Giltigt kontonummer</string>
+ <string name="logged_in_title">Inloggad</string>
+ <string name="logging_in_description">Kontrollerar kontonummer</string>
+ <string name="logging_in_title">Loggar in...</string>
+ <string name="login_description">Ange ditt kontonummer</string>
+ <string name="login_fail_description">Ogiltigt kontonummer</string>
+ <string name="login_fail_title">Inloggningen misslyckades</string>
+ <string name="login_title">Logga in</string>
+ <string name="malware_info">Varning! Blockering av skadlig kod är inte ett antivirusprogram och bör inte behandlas som ett. Det här är bara ett extra skyddslager.</string>
+ <string name="max_devices_confirm_removal_description">Vill du verkligen logga ut &lt;b&gt;%1$s&lt;/b&gt;?</string>
+ <string name="max_devices_resolved_description">Du kan nu fortsätta med att logga in på den här enheten.</string>
+ <string name="max_devices_resolved_title">Super!</string>
+ <string name="max_devices_warning_description">Logga ut på minst en enhet genom att ta bort den från listan nedan. Du hittar motsvarande enhetsnamn i enhetens kontoinställningar.</string>
+ <string name="max_devices_warning_title">För många enheter</string>
+ <string name="mullvad_account_number">Mullvad-kontonummer</string>
+ <string name="no_matching_relay">Inga servrar matchar dina inställningar. Försök att byta server eller ändra inställningarna.</string>
+ <string name="no_wireguard_key">Giltig WireGuard-nyckel saknas. Hantera nycklar i Avancerade inställningar.</string>
+ <string name="not_blocking_internet">DU KANSKE HAR LÄCKAGE I NÄTVERKSTRAFIKEN</string>
+ <string name="obfuscation_info">Obfuskering döljer WireGuard-trafik inne i ett annat protokoll. Det kan användas för att kringgå censur och andra filtertyper där en vanlig WireGuard-anslutning skulle blockeras.</string>
+ <string name="obfuscation_on_udp_over_tcp">På (UDP över TCP)</string>
+ <string name="off">Av</string>
+ <string name="on">På</string>
+ <string name="out_address">Ut</string>
+ <string name="out_of_time">Ingen tid kvar</string>
+ <string name="paid_until">Betalat till</string>
+ <string name="pay_to_start_using">Om du vill börja använda appen måste du först lägga till tid i ditt konto.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Detta tar bort alla vidarebefordrade portar. Lokala inställningar sparas.</string>
+ <string name="privacy_disclaimer_title">Sekretess</string>
+ <string name="privacy_policy_label">Sekretesspolicy</string>
+ <string name="problem_report_description">För att hjälpa dig mer effektivt kommer appens loggfil att bifogas i detta meddelande. Dina uppgifter förblir säkra och privata, eftersom de anonymiseras innan de skickas över en krypterad kanal.</string>
+ <string name="quantum_creating_secure_connection">SKAPAR KVANTSÄKER ANSLUTNING</string>
+ <string name="quantum_resistant_info_first_paragaph">Den här funktionen gör WireGuard-tunneln resistent mot potentiella attacker från kvantdatorer.</string>
+ <string name="quantum_resistant_info_second_paragaph">Den gör det genom att göra ett extra nyckelutbyte med en kvantsäker algoritm och kombinera resultatet med WireGuards vanliga kryptering. Det här extra steget använder ungefär 500 KiB i trafik varje gång en ny tunnel upprättas.</string>
+ <string name="quantum_resistant_title">Kvantresistent tunnel</string>
+ <string name="quantum_secure_connection">KVANTSÄKER ANSLUTNING</string>
+ <string name="reconnecting">Återansluter</string>
+ <string name="redeem">Lös in</string>
+ <string name="redeem_voucher">Lös in kupong</string>
+ <string name="remove_button">Ta bort</string>
+ <string name="report_a_problem">Rapportera ett problem</string>
+ <string name="reset_to_default_button">Återställ till standard</string>
+ <string name="search_placeholder">Sök efter …</string>
+ <string name="secure_connection">SÄKER ANSLUTNING</string>
+ <string name="secured">Skyddad</string>
+ <string name="select_location">Välj plats</string>
+ <string name="select_location_description">Medan du är ansluten maskeras din riktiga plats med en privat och säker plats i den valda regionen.</string>
+ <string name="select_location_empty_text_first_row">Inga resultat för &lt;b&gt;%1$s&lt;/b&gt;.</string>
+ <string name="select_location_empty_text_second_row">Testa en annan sökning.</string>
+ <string name="send">Skicka</string>
+ <string name="send_anyway">Skicka ändå</string>
+ <string name="sending">Skicka...</string>
+ <string name="sent">Skickat</string>
+ <string name="sent_contact">Om det behövs kontaktar vi dig på %1$s</string>
+ <string name="sent_thanks">Tack!</string>
+ <string name="set_dns_error">Det går inte att konfigurera DNS-server. Skicka en problemrapport.</string>
+ <string name="set_firewall_policy_error">Det går inte att tillämpa brandväggsregler. Felsök eller skicka en problemrapport.</string>
+ <string name="settings">Inställningar</string>
+ <string name="settings_account">Konto</string>
+ <string name="settings_preferences">Inställningar</string>
+ <string name="settings_vpn">VPN-inställningar</string>
+ <string name="show_account_number">Visa kontonummer</string>
+ <string name="show_system_apps">Visa systemappar</string>
+ <string name="split_tunneling_description">Delade tunnlar gör det möjligt att välja vilka applikationer som inte ska dirigeras genom VPN-tunneln.</string>
+ <string name="start_tunnel_error">Det går inte att starta tunnelanslutning. Skicka en problemrapport.</string>
+ <string name="submit_button">Skicka</string>
+ <string name="switch_location">Växla plats</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">Växla VPN</string>
+ <string name="try_again">Försök igen</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">Vilken TCP-port som UDP-över-TCP-obfuskeringsprotokoll bör ansluta till på VPN-servern.</string>
+ <string name="unsecured">Oskyddad</string>
+ <string name="unsecured_connection">OSÄKER ANSLUTNING</string>
+ <string name="unsupported_version">VERSION UTAN STÖD</string>
+ <string name="unsupported_version_description">Din sekretess kan vara utsatt för risk med den här appversionen som inte stöds. Uppdatera nu.</string>
+ <string name="unsupported_version_without_upgrade">Du kör en appversion som inte stöds.</string>
+ <string name="update_available">UPPDATERING TILLGÄNGLIG</string>
+ <string name="update_available_description">Installera Mullvad VPN (%1$s) för att hålla dig uppdaterad</string>
+ <string name="update_available_footer">Uppdatering tillgänglig. Ladda ned för att vara säker.</string>
+ <string name="update_dns_server_dialog_title">Uppdatera DNS-server</string>
+ <string name="user_email_hint">Din e-postadress (valfritt)</string>
+ <string name="user_message_hint">Skriv på engelska eller svenska och ange från vilket land du är ansluten så att vi kan hjälpa dig bättre.</string>
+ <string name="view_logs">Visa appens loggar</string>
+ <string name="virtual_adapter_problem">Fel med virtuell adapter</string>
+ <string name="voucher_already_used">Kupongkoden har redan använts.</string>
+ <string name="vpn_permission_denied_error">VPN-behörighet nekades när tunneln skapades. Försök att ansluta igen.</string>
+ <string name="vpn_permission_error_notification_message">VPN som alltid är på kan ha aktiverats för annan app</string>
+ <string name="vpn_permission_error_notification_title">Behörighetsfel med VPN</string>
+ <string name="we_will_look_into_this">Vi kommer att undersöka detta.</string>
+ <string name="wireguard_custon_port_title">Anpassad</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">Ange WireGuard MTU-värde. Giltigt intervall: %1$d–%2$d.</string>
+ <string name="wireguard_port_info_description">Den automatiska inställningen väljer slumpmässigt från giltiga portintervall som visas nedan.</string>
+ <string name="wireguard_port_info_port_range">Den anpassade porten kan vara ett värde inom de giltiga intervallen: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-th/plurals.xml b/android/lib/resource/src/main/res/values-th/plurals.xml
new file mode 100644
index 0000000000..96232c71d5
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-th/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="other">คงเหลือ %1$d วัน</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="other">คงเหลือ %1$d เดือน</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="other">คงเหลือ %1$d ปี</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="other">%1$d วันก่อน</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="other">%1$d นาทีก่อน</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="other">%1$d เดือนก่อน</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="other">%1$d ปีก่อน</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="other">%1$d ชั่วโมงก่อน</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="other">เครดิตของบัญชีจะหมดอายุใน %1$d วัน</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="other">เครดิตของบัญชีจะหมดอายุใน %1$d ชั่วโมง</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-th/strings.xml b/android/lib/resource/src/main/res/values-th/strings.xml
new file mode 100644
index 0000000000..fefb659b84
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-th/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">สร้างบัญชีแล้ว</string>
+ <string name="account_credit_expires_in_a_few_minutes">เครดิตของบัญชีจะหมดอายุในอีกไม่กี่นาที</string>
+ <string name="account_credit_expires_soon">เครดิตของบัญชีจะหมดอายุในเร็วๆ นี้</string>
+ <string name="account_credit_has_expired">คุณไม่มีเวลาใช้งาน VPN เหลืออยู่ในบัญชีนี้แล้ว</string>
+ <string name="account_number">หมายเลขบัญชี</string>
+ <string name="account_time_notification_channel_description">แสดงการแจ้งเตือน ในขณะที่เวลาบัญชีใกล้หมดอายุ</string>
+ <string name="account_time_notification_channel_name">การแจ้งเตือนเวลาบัญชี</string>
+ <string name="add_a_server">เพิ่มเซิร์ฟเวอร์</string>
+ <string name="add_dns_server_dialog_title">เพิ่มเซิร์ฟเวอร์ DNS</string>
+ <string name="add_time_to_account">ซื้อเครดิตบนเว็บไซต์ของเรา หรือแลกรับบัตรกำนัล</string>
+ <string name="agree_and_continue">ยอมรับและดำเนินการต่อ</string>
+ <string name="all_applications">แอปพลิเคชันทั้งหมด</string>
+ <string name="allow_lan_footer">อนุญาตให้เข้าถึงอุปกรณ์อื่นๆ บนเครือข่ายเดียวกัน เพื่อแชร์ พิมพ์ ฯลฯ</string>
+ <string name="always_on_vpn_error_notification_content">ไม่สามารถเริ่มการเชื่อมต่ออุโมงค์ได้ โปรดปิดใช้งาน Always-on VPN เป็นเวลา &lt;b&gt;%1$s&lt;/b&gt; ก่อนที่จะใช้งาน Mullvad VPN</string>
+ <string name="always_on_vpn_error_notification_title">Always-on VPN ได้รับการมอบหมายไปยังแอปอื่นแล้ว</string>
+ <string name="app_version">เวอร์ชันแอป</string>
+ <string name="auth_failed">ไม่สามารถตรวจสอบความถูกต้องของบัญชีได้ โปรดส่งรายงานปัญหา</string>
+ <string name="auto_connect">เชื่อมต่ออัตโนมัติ</string>
+ <string name="auto_connect_footer">เชื่อมต่อเซิร์ฟเวอร์โดยอัตโนมัติทันทีที่เปิดแอป</string>
+ <string name="automatic">อัตโนมัติ</string>
+ <string name="back">ย้อนกลับ</string>
+ <string name="block_ads_title">โฆษณา</string>
+ <string name="block_adult_content_title">เนื้อหาสำหรับผู้ใหญ่</string>
+ <string name="block_gambling_title">การพนัน</string>
+ <string name="block_malware_title">มัลแวร์</string>
+ <string name="block_trackers_title">ตัวติดตาม</string>
+ <string name="blocked_connection">การเชื่อมต่อที่ถูกบล็อก</string>
+ <string name="blocking_internet">กำลังบล็อกอินเทอร์เน็ต</string>
+ <string name="blocking_internet_device_offline">กำลังบล็อกอินเทอร์เน็ต (อุปกรณ์ออฟไลน์)</string>
+ <string name="buy_credit">ซื้อเครดิต</string>
+ <string name="buy_more_credit">ซื้อเครดิตเพิ่ม</string>
+ <string name="cancel">ยกเลิก</string>
+ <string name="changes_dialog_dismiss_button">รับทราบ!</string>
+ <string name="changes_dialog_subtitle">การเปลี่ยนแปลงในเวอร์ชันนี้:</string>
+ <string name="confirm_local_dns">เซิร์ฟเวอร์ DNS ท้องถิ่นจะไม่ทำงาน เว้นแต่คุณจะเปิดใช้ \"การแชร์ในเครือข่ายท้องถิ่น\" ซึ่งอยู่ในส่วนการกำหนดค่า</string>
+ <string name="confirm_no_email">คุณกำลังจะส่งรายงานปัญหา โดยไม่มีการระบุวิธีการติดต่อกลับให้กับเรา และคุณจำเป็นต้องป้อนที่อยู่อีเมลของคุณ หากคุณอยากให้เราตอบกลับการรายงานของคุณ</string>
+ <string name="confirm_removal">ใช่ นำอุปกรณ์ออกจากระบบ</string>
+ <string name="congrats">ยินดีด้วย!</string>
+ <string name="connect">รักษาความปลอดภัยในการเชื่อมต่อ</string>
+ <string name="connecting">กำลังเชื่อมต่อ</string>
+ <string name="connecting_to_daemon">กำลังเชื่อมต่อบริการของระบบ Mullvad...</string>
+ <string name="continue_login">เข้าสู่ระบบต่อ</string>
+ <string name="copied_mullvad_account_number">คัดลอกหมายเลขบัญชี Mullvad ไปยังคลิปบอร์ดแล้ว</string>
+ <string name="copied_to_clipboard">คัดลอกไปยังคลิปบอร์ดแล้ว</string>
+ <string name="copy_account_number">คัดลอกหมายเลขบัญชี</string>
+ <string name="create_account">สร้างบัญชี</string>
+ <string name="creating_new_account">กำลังสร้างบัญชี...</string>
+ <string name="creating_secure_connection">กำลังสร้างการเชื่อมต่อที่ปลอดภัย</string>
+ <string name="critical_error">ข้อผิดพลาดร้ายแรง (คุณจำเป็นต้องตรวจสอบ)</string>
+ <string name="custom_dns_footer">เปิดเพื่อเพิ่มเซิร์ฟเวอร์ DNS อย่างน้อยหนึ่งรายการ</string>
+ <string name="custom_dns_hint">ป้อน IP</string>
+ <string name="custom_tunnel_host_resolution_error">ไม่พบโฮสต์ของช่องทางแบบกำหนดเอง กรุณาลองเปลี่ยนการตั้งค่าของคุณ</string>
+ <string name="device_inactive_description">คุณได้ลบอุปกรณ์เครื่องนี้แล้ว หากต้องการเชื่อมต่ออีกครั้ง คุณจะต้องเข้าสู่ระบบใหม่อีกครั้ง</string>
+ <string name="device_inactive_title">อุปกรณ์ไม่ได้ใช้งาน</string>
+ <string name="device_inactive_unblock_warning">การไปที่ส่วนเข้าสู่ระบบจะปลดบล็อกอินเทอร์เน็ตบนอุปกรณ์เครื่องนี้</string>
+ <string name="device_name">ชื่ออุปกรณ์</string>
+ <string name="disconnect">ตัดการเชื่อมต่อ</string>
+ <string name="disconnecting">กำลังตัดการเชื่อมต่อ</string>
+ <string name="dismiss">ละทิ้ง</string>
+ <string name="dns_content_blockers_info">ในขณะที่เปิดใช้งานคุณสมบัตินี้ คุณสมบัตินี้จะหยุดไม่ให้อุปกรณ์ติดต่อโดเมน หรือเว็บไซต์ใดๆ ที่เป็นที่ทราบกันว่า ใช้ในการเผยแพร่โฆษณา มัลแวร์ ตัวติดตาม และอื่นๆ</string>
+ <string name="dns_content_blockers_subtitle">ปิดใช้งาน &lt;b&gt;%1$s&lt;/b&gt; ด้านล่าง เพื่อเปิดใช้การตั้งค่าเหล่านี้</string>
+ <string name="dns_content_blockers_title">ตัวบล็อกเนื้อหา DNS</string>
+ <string name="dont_have_an_account">ยังไม่มีหมายเลขบัญชีใช่ไหม</string>
+ <string name="duplicate_address_warning">ที่อยู่นี้ได้รับการป้อนไปแล้ว</string>
+ <string name="edit_message">แก้ไขข้อความ</string>
+ <string name="enable">เปิดใช้งาน</string>
+ <string name="enable_custom_dns">ใช้เซิร์ฟเวอร์ DNS แบบกำหนดเอง</string>
+ <string name="enter_value_placeholder">ป้อน MTU</string>
+ <string name="enter_voucher_code">ป้อนรหัสบัตรกำนัล</string>
+ <string name="error_occurred">เกิดข้อผิดพลาดขึ้น</string>
+ <string name="error_state">ไม่สามารถเชื่อมต่ออย่างปลอดภัยได้</string>
+ <string name="exclude_applications">แอปพลิเคชันที่แยกออก</string>
+ <string name="failed_to_block_internet">ไม่สามารถบล็อกการรับส่งข้อมูลทางเครือข่ายทั้งหมดได้ โปรดแก้ไขปัญหาหรือส่งรายงานปัญหา</string>
+ <string name="failed_to_create_account">ไม่สามารถสร้างบัญชีได้</string>
+ <string name="failed_to_fetch_devices">ไม่สามารถดึงรายการอุปกรณ์มาได้</string>
+ <string name="failed_to_remove_device">ไม่สามารถลบอุปกรณ์ได้</string>
+ <string name="failed_to_send">ไม่สามารถส่งได้</string>
+ <string name="failed_to_send_details">หากคุณออกจากแบบฟอร์มแล้วเข้ามาใหม่ในภายหลัง ข้อมูลที่คุณกรอกไว้จะยังคงอยู่ที่นี่ดังเดิม</string>
+ <string name="faqs_and_guides">คำถามที่พบบ่อยและคำแนะนำ</string>
+ <string name="foreground_notification_channel_description">แสดงสถานะอุโมงค์ VPN ในปัจจุบัน</string>
+ <string name="foreground_notification_channel_name">สถานะอุโมงค์ VPN</string>
+ <string name="go_to_login">ไปเข้าสู่ระบบ</string>
+ <string name="here_is_your_account_number">นี่คือหมายเลขบัญชีของคุณ จดบันทึกไว้ด้วยนะ!</string>
+ <string name="hide_account_number">ซ่อนหมายเลขบัญชี</string>
+ <string name="hint_default">ค่าเริ่มต้น</string>
+ <string name="in_address">เข้า</string>
+ <string name="invalid_dns_servers">ที่อยู่เซิร์ฟเวอร์ DNS %1$s ที่กำหนดเองไม่ถูกต้อง</string>
+ <string name="invalid_voucher">รหัสบัตรกำนัลไม่ถูกต้อง</string>
+ <string name="ipv6_unavailable">ไม่สามารถกำหนดค่า IPv6 ได้ โปรดปิดใช้งานรายการนี้ในแอป หรือเปิดใช้งานบนอุปกรณ์ของคุณ</string>
+ <string name="is_offline">อุปกรณ์ของคุณออฟไลน์อยู่ อุโมงค์จะเชื่อมต่อโดยอัตโนมัติ หลังจากที่อุปกรณ์ของคุณกลับมาออนไลน์</string>
+ <string name="less_than_a_day_left">เหลือเวลาน้อยกว่าหนึ่งวัน</string>
+ <string name="less_than_a_minute_ago">น้อยกว่าหนึ่งนาทีก่อน</string>
+ <string name="local_network_sharing">การแชร์ในเครือข่ายท้องถิ่น</string>
+ <string name="local_network_sharing_additional_info">ทำเช่นนี้ได้โดยการอนุญาตให้มีการสื่อสารเครือข่ายนอกอุโมงค์ ไปยังมัลติคาสต์และช่วงการเผยแพร่ในท้องถิ่น รวมถึงการสื่อสารไปมาในช่วง IP ส่วนตัวเหล่านี้:</string>
+ <string name="local_network_sharing_info">คุณสมบัตินี้จะช่วยให้สามารถเข้าถึงอุปกรณ์อื่นๆ บนเครือข่ายท้องถิ่น เช่น การแชร์ การพิมพ์ การสตรีม ฯลฯ</string>
+ <string name="log_out">ลงชื่อออก</string>
+ <string name="logged_in_description">หมายเลขบัญชีที่ถูกต้อง</string>
+ <string name="logged_in_title">เข้าสู่ระบบแล้ว</string>
+ <string name="logging_in_description">กำลังตรวจสอบหมายเลขบัญชี</string>
+ <string name="logging_in_title">กำลังเข้าสู่ระบบ...</string>
+ <string name="login_description">ป้อนหมายเลขบัญชีของคุณ</string>
+ <string name="login_fail_description">หมายเลขบัญชีไม่ถูกต้อง</string>
+ <string name="login_fail_title">การเข้าสู่ระบบล้มเหลว</string>
+ <string name="login_title">เข้าสู่ระบบ</string>
+ <string name="malware_info">คำเตือน: ตัวบล็อกมัลแวร์ไม่ใช่แอนตี้ไวรัส และไม่ควรนำมาใช้ในรูปแบบดังกล่าว นี่เป็นเพียงชั้นการป้องกันเพิ่มเติมเท่านั้น</string>
+ <string name="max_devices_confirm_removal_description">คุณแน่ใจหรือไม่ว่าต้องการออกจากระบบบน &lt;b&gt;%1$s&lt;/b&gt;</string>
+ <string name="max_devices_resolved_description">คุณสามารถดำเนินการเข้าสู่ระบบต่อบนอุปกรณ์เครื่องนี้ได้แล้ว</string>
+ <string name="max_devices_resolved_title">เยี่ยมยอด!</string>
+ <string name="max_devices_warning_description">โปรดลงชื่อออกจากระบบบนอุปกรณ์อย่างน้อยหนึ่งเครื่อง เพื่อนำอุปกรณ์ออกจากรายการด้านล่าง คุณสามารถดูชื่ออุปกรณ์ที่เกี่ยวข้องได้ ภายใต้การตั้งค่าบัญชีของอุปกรณ์</string>
+ <string name="max_devices_warning_title">มีอุปกรณ์มากเกินไป</string>
+ <string name="mullvad_account_number">หมายเลขบัญชี Mullvad</string>
+ <string name="no_matching_relay">ไม่มีเซิร์ฟเวอร์ที่ตรงกับการตั้งค่าของคุณ โปรดลองเปลี่ยนเซิร์ฟเวอร์ หรือการตั้งค่าอื่นๆ</string>
+ <string name="no_wireguard_key">คีย์ WireGuard ที่ใช้ได้ขาดหายไป จัดการคีย์ภายใต้การตั้งค่าขั้นสูง</string>
+ <string name="not_blocking_internet">คุณอาจมีการรับส่งข้อมูลทางเครือข่ายที่รั่วไหลอยู่</string>
+ <string name="obfuscation_info">ข้อมูลที่คลุมเครือจะซ่อนการรับส่งข้อมูล WireGuard ภายในอีกโพรโทคอลหนึ่ง ซึ่งใช้เพื่อช่วยหลบเลี่ยงการเซ็นเซอร์ และการกรองประเภทอื่นๆ ที่การเชื่อมต่อ WireGuard แบบธรรมดาจะถูกบล็อกได้</string>
+ <string name="obfuscation_on_udp_over_tcp">เปิด (UDP-ผ่าน-TCP)</string>
+ <string name="off">ปิด</string>
+ <string name="on">เปิด</string>
+ <string name="out_address">ออก</string>
+ <string name="out_of_time">หมดเวลา</string>
+ <string name="paid_until">ชำระเงินแล้วจนถึง</string>
+ <string name="pay_to_start_using">คุณจำเป็นต้องเพิ่มเวลาไปยังบัญชีของคุณก่อน เพื่อที่จะเริ่มใช้งานแอป</string>
+ <string name="port">พอร์ต</string>
+ <string name="port_removal_notice">นี่จะเป็นการลบพอร์ตที่ส่งต่อทั้งหมด และการตั้งค่าบนอุปกรณ์จะได้รับการบันทึกไว้</string>
+ <string name="privacy_disclaimer_title">ความเป็นส่วนตัว</string>
+ <string name="privacy_policy_label">นโยบายความเป็นส่วนตัว</string>
+ <string name="problem_report_description">ไฟล์บันทึกล็อกของแอปของคุณจะถูกแนบไปกับข้อความนี้ เพื่อที่เราจะช่วยเหลือคุณได้อย่างมีประสิทธิภาพมากขึ้น ข้อมูลของคุณจะยังคงมีความปลอดภัยและเป็นส่วนตัว เนื่องจากจะไม่มีการระบุตัวตนก่อนส่งข้อมูลผ่านช่องทางที่มีการเข้ารหัส</string>
+ <string name="quantum_creating_secure_connection">กำลังสร้างการเชื่อมต่อควอนตัมที่ปลอดภัย</string>
+ <string name="quantum_resistant_info_first_paragaph">ฟีเจอร์นี้จะช่วยให้ช่องทาง WireGuard สามารถสกัดกั้นการโจมตีที่อาจมาจากคอมพิวเตอร์ควอนตัมได้</string>
+ <string name="quantum_resistant_info_second_paragaph">ระบบจะดำเนินการสิ่งนี้ผ่านการแลกเปลี่ยนคีย์เพิ่มเติม โดยการใช้อัลกอริทึมแบบควอนตัมที่ปลอดภัย และผสมผลลัพธ์เข้ากับการเข้ารหัสตามปกติของ WireGuard และขั้นตอนพิเศษนี้ใช้การรับส่งข้อมูลประมาณ 500 kiB ในทุกครั้งที่สร้างช่องทางใหม่</string>
+ <string name="quantum_resistant_title">ช่องทางการสกัดกั้นควอนตัม</string>
+ <string name="quantum_secure_connection">การเชื่อมต่อควอนตัมที่ปลอดภัย</string>
+ <string name="reconnecting">กำลังเชื่อมต่อใหม่</string>
+ <string name="redeem">แลกรับ</string>
+ <string name="redeem_voucher">แลกบัตรกำนัล</string>
+ <string name="remove_button">ลบ</string>
+ <string name="report_a_problem">รายงานปัญหา</string>
+ <string name="reset_to_default_button">รีเซ็ตเป็นค่าเริ่มต้น</string>
+ <string name="search_placeholder">ค้นหา…</string>
+ <string name="secure_connection">การเชื่อมต่อที่ปลอดภัย</string>
+ <string name="secured">ปลอดภัย</string>
+ <string name="select_location">เลือกตำแหน่งที่ตั้ง</string>
+ <string name="select_location_description">ในขณะที่เชื่อมต่อ ตำแหน่งที่ตั้งจริงของคุณจะถูกปิดบัง ด้วยตำแหน่งที่ตั้งที่เป็นส่วนตัวและปลอดภัย ในภูมิภาคที่เลือก</string>
+ <string name="select_location_empty_text_first_row">ไม่มีผลลัพธ์สำหรับ &lt;b&gt;%1$s&lt;/b&gt;</string>
+ <string name="select_location_empty_text_second_row">ลองใช้การค้นหาอื่น</string>
+ <string name="send">ส่ง</string>
+ <string name="send_anyway">ส่งต่อไป</string>
+ <string name="sending">กำลังส่ง...</string>
+ <string name="sent">ส่ง</string>
+ <string name="sent_contact">เราจะติดต่อคุณไปทาง %1$s ในกรณีจำเป็น</string>
+ <string name="sent_thanks">ขอบคุณ!</string>
+ <string name="set_dns_error">ไม่สามารถตั้งค่าเซิร์ฟเวอร์ DNS ของระบบได้ โปรดส่งรายงานปัญหา</string>
+ <string name="set_firewall_policy_error">ไม่สามารถใช้กฎไฟร์วอลล์ได้ โปรดแก้ไขปัญหา หรือส่งรายงานปัญหา</string>
+ <string name="settings">การตั้งค่า</string>
+ <string name="settings_account">บัญชี</string>
+ <string name="settings_preferences">การกำหนดค่า</string>
+ <string name="settings_vpn">การตั้งค่า VPN</string>
+ <string name="show_account_number">แสดงหมายเลขบัญชี</string>
+ <string name="show_system_apps">แสดงแอประบบ</string>
+ <string name="split_tunneling_description">การแยกอุโมงค์ทำให้สามารถเลือกได้ว่า แอปพลิเคชันใดไม่ควรได้รับการกำหนดเส้นทางผ่านอุโมงค์ VPN</string>
+ <string name="start_tunnel_error">ไม่สามารถเริ่มการเชื่อมต่ออุโมงค์ได้ โปรดส่งรายงานปัญหา</string>
+ <string name="submit_button">ส่ง</string>
+ <string name="switch_location">สลับตำแหน่ง</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">เปิด/ปิด VPN</string>
+ <string name="try_again">ลองอีกครั้ง</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">พอร์ต TCP ใดที่โพรโทคอลข้อมูลที่คลุมเครือ UDP-ผ่าน-TCP ควรเชื่อมต่อบนเซิร์ฟเวอร์ VPN</string>
+ <string name="unsecured">ไม่ปลอดภัย</string>
+ <string name="unsecured_connection">การเชื่อมต่อที่ไม่ปลอดภัย</string>
+ <string name="unsupported_version">เวอร์ชันที่ไม่รองรับ</string>
+ <string name="unsupported_version_description">ความเป็นส่วนตัวของคุณอาจมีความเสี่ยง ในขณะที่ใช้งานเวอร์ชันแอปที่ไม่ได้รับการสนับสนุนนี้ โปรดอัปเดตตอนนี้เลย</string>
+ <string name="unsupported_version_without_upgrade">คุณกำลังใช้งานเวอร์ชันแอปที่ไม่ได้รับการสนับสนุน</string>
+ <string name="update_available">มีการอัปเดตให้ใช้งาน</string>
+ <string name="update_available_description">ติดตั้ง Mullvad VPN (%1$s) เพื่อรับอัปเดตล่าสุดอยู่เสมอ</string>
+ <string name="update_available_footer">มีอัปเดตพร้อมใช้งาน ดาวน์โหลดเพื่อคงความปลอดภัยไว้</string>
+ <string name="update_dns_server_dialog_title">อัปเดตเซิร์ฟเวอร์ DNS</string>
+ <string name="user_email_hint">อีเมลของคุณ (ไม่บังคับ)</string>
+ <string name="user_message_hint">โปรดเขียนเป็นภาษาอังกฤษหรือสวีเดน พร้อมระบุประเทศต้นทางที่คุณเชื่อมต่อ เพื่อให้รับความช่วยเหลือได้ดียิ่งขึ้น</string>
+ <string name="view_logs">ดูบันทึกของแอป</string>
+ <string name="virtual_adapter_problem">ข้อผิดพลาดของอะแดปเตอร์เสมือน</string>
+ <string name="voucher_already_used">รหัสบัตรกำนัลถูกใช้ไปแล้ว</string>
+ <string name="vpn_permission_denied_error">การให้สิทธิ์ VPN ถูกปฏิเสธ ในขณะที่สร้างอุโมงค์ โปรดลองเชื่อมต่อใหม่อีกครั้ง</string>
+ <string name="vpn_permission_error_notification_message">Always-on VPN อาจได้รับการเปิดใช้งานสำหรับแอปอื่น</string>
+ <string name="vpn_permission_error_notification_title">เกิดข้อผิดพลาดในการอนุญาต VPN</string>
+ <string name="we_will_look_into_this">เราจะตรวจสอบปัญหานี้</string>
+ <string name="wireguard_custon_port_title">กำหนดเอง</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">ตั้งค่า WireGuard MTU ช่วงที่ใช้ได้: %1$d - %2$d</string>
+ <string name="wireguard_port_info_description">การตั้งค่าอัตโนมัติจะเป็นการสุ่มเลือกจากช่วงพอร์ตที่ใช้งานได้ต่างๆ ซึ่งแสดงอยู่ด้านล่าง</string>
+ <string name="wireguard_port_info_port_range">พอร์ตแบบกำหนดเองอาจมีค่าใดๆ ก็ได้ ภายในช่วงที่ใช้งานได้: %1$s</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-tr/plurals.xml b/android/lib/resource/src/main/res/values-tr/plurals.xml
new file mode 100644
index 0000000000..250f0e2261
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-tr/plurals.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="one">1 gün kaldı</item>
+ <item quantity="other">%1$d gün kaldı</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 ay kaldı</item>
+ <item quantity="other">%1$d ay kaldı</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="one">1 yıl kaldı</item>
+ <item quantity="other">%1$d yıl kaldı</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">bir gün önce</item>
+ <item quantity="other">%1$d gün önce</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="one">bir dakika önce</item>
+ <item quantity="other">%1$d dakika önce</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">bir ay önce</item>
+ <item quantity="other">%1$d ay önce</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">bir yıl önce</item>
+ <item quantity="other">%1$d yıl önce</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">bir saat önce</item>
+ <item quantity="other">%1$d saat önce</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Hesap kredisi bir gün içinde sona eriyor</item>
+ <item quantity="other">Hesap kredisi %1$d gün içinde sona eriyor</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Hesap kredisi bir saat içinde sona eriyor</item>
+ <item quantity="other">Hesap kredisi %1$d saat içinde sona eriyor</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-tr/strings.xml b/android/lib/resource/src/main/res/values-tr/strings.xml
new file mode 100644
index 0000000000..387db9c990
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-tr/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">Hesap oluşturuldu</string>
+ <string name="account_credit_expires_in_a_few_minutes">Hesap kredisinin süresi birkaç dakika içinde doluyor</string>
+ <string name="account_credit_expires_soon">Hesap kredisinin süresi yakında doluyor</string>
+ <string name="account_credit_has_expired">Bu hesap için artık VPN süreniz kalmadı.</string>
+ <string name="account_number">Hesap Kimliği</string>
+ <string name="account_time_notification_channel_description">Hesap süresinin dolmak üzere olduğunu bildiren hatırlatıcıları gösterir</string>
+ <string name="account_time_notification_channel_name">Hesap süresi hatırlatıcıları</string>
+ <string name="add_a_server">Sunucu ekle</string>
+ <string name="add_dns_server_dialog_title">DNS sunucusu ekle</string>
+ <string name="add_time_to_account">Web sitemizden kredi satın alın veya kupon kullanın.</string>
+ <string name="agree_and_continue">Kabul et ve devam et</string>
+ <string name="all_applications">Tüm uygulamalar</string>
+ <string name="allow_lan_footer">Paylaşım, yazdırma gibi özellikler için aynı ağdaki diğer cihazlara erişim izni verir.</string>
+ <string name="always_on_vpn_error_notification_content">Tünel bağlantısı başlatılamıyor. Mullvad VPN\'i kullanmadan önce lütfen Her zaman açık VPN\'i &lt;b&gt;%1$s&lt;/b&gt; için devre dışı bırakın.</string>
+ <string name="always_on_vpn_error_notification_title">Her zaman açık VPN başka bir uygulamaya atandı</string>
+ <string name="app_version">Uygulama sürümü</string>
+ <string name="auth_failed">Hesap doğrulanamıyor. Lütfen bir hata raporu gönderin.</string>
+ <string name="auto_connect">Otomatik Bağlan</string>
+ <string name="auto_connect_footer">Uygulama başladığında bir sunucuya otomatik olarak bağlan.</string>
+ <string name="automatic">Otomatik</string>
+ <string name="back">Geri</string>
+ <string name="block_ads_title">Reklamlar</string>
+ <string name="block_adult_content_title">Yetişkinlere özel içerik</string>
+ <string name="block_gambling_title">Kumar</string>
+ <string name="block_malware_title">Kötü amaçlı yazılım</string>
+ <string name="block_trackers_title">İzleyiciler</string>
+ <string name="blocked_connection">ENGELLENEN BAĞLANTI</string>
+ <string name="blocking_internet">İnternet bağlantısı engelleniyor</string>
+ <string name="blocking_internet_device_offline">İnternet bağlantısı engelleniyor (cihaz çevrimdışı)</string>
+ <string name="buy_credit">Kredi satın alın</string>
+ <string name="buy_more_credit">Daha fazla kredi satın alın</string>
+ <string name="cancel">İptal et</string>
+ <string name="changes_dialog_dismiss_button">Anladım!</string>
+ <string name="changes_dialog_subtitle">Bu sürümdeki değişiklikler:</string>
+ <string name="confirm_local_dns">Tercihler sekmesinin altındaki \"Yerel Ağ Paylaşımı\" seçeneğini etkinleştirmediğiniz sürece yerel DNS sunucusu çalışmaz.</string>
+ <string name="confirm_no_email">Sorun raporunu, size geri dönüş yapmamıza imkan vermeyen bir şekilde göndermek üzeresiniz. Sorununuz için yanıt almak istiyorsanız bir e-posta adresi girmelisiniz.</string>
+ <string name="confirm_removal">Evet, cihazdan çıkış yap</string>
+ <string name="congrats">Tebrikler!</string>
+ <string name="connect">Bağlantımı güvenceye al</string>
+ <string name="connecting">Bağlanılıyor</string>
+ <string name="connecting_to_daemon">Mullvad sistem hizmetlerine bağlanılıyor...</string>
+ <string name="continue_login">Giriş yapmak için devam et</string>
+ <string name="copied_mullvad_account_number">Mullvad hesap numarası panoya kopyalandı</string>
+ <string name="copied_to_clipboard">Panoya kopyalandı</string>
+ <string name="copy_account_number">Hesap numarasını kopyala</string>
+ <string name="create_account">Hesap oluştur</string>
+ <string name="creating_new_account">Hesap oluşturuluyor...</string>
+ <string name="creating_secure_connection">GÜVENLİ BAĞLANTI OLUŞTURULUYOR</string>
+ <string name="critical_error">Kritik hata (Lütfen dikkatli olun)</string>
+ <string name="custom_dns_footer">En az bir DNS sunucusu eklemek için etkinleştirin.</string>
+ <string name="custom_dns_hint">IP\'yi girin</string>
+ <string name="custom_tunnel_host_resolution_error">Özel tünel ana bilgisayarı çözülemedi. Ayarlarınızı değiştirmeyi deneyin.</string>
+ <string name="device_inactive_description">Bu cihazı kaldırdın. Tekrar bağlanmak için yeniden giriş yapmanız gerekecek.</string>
+ <string name="device_inactive_title">Cihaz etkin değil</string>
+ <string name="device_inactive_unblock_warning">Giriş yapmak bu cihazdaki internet engelini kaldıracaktır.</string>
+ <string name="device_name">Cihaz adı</string>
+ <string name="disconnect">Bağlantıyı Kes</string>
+ <string name="disconnecting">Bağlantı kesiliyor</string>
+ <string name="dismiss">Reddet</string>
+ <string name="dns_content_blockers_info">Bu özellik etkinleştirildiğinde, cihazınızın reklamlar, kötü amaçlı yazılımlar, izleyiciler ve daha fazlasını dağıttığı bilinen belirli alan adlarıyla veya web siteleriyle iletişim kurmasını durdurur.</string>
+ <string name="dns_content_blockers_subtitle">Bu ayarları etkinleştirmek için aşağıdaki &lt;b&gt;%1$s&lt;/b&gt; seçeneğini devre dışı bırakın.</string>
+ <string name="dns_content_blockers_title">DNS içerik engelleyiciler</string>
+ <string name="dont_have_an_account">Hesap numaranız yok mu?</string>
+ <string name="duplicate_address_warning">Bu adres zaten girilmiş.</string>
+ <string name="edit_message">Mesajı düzenle</string>
+ <string name="enable">Etkinleştir</string>
+ <string name="enable_custom_dns">Özel DNS sunucusu kullanın</string>
+ <string name="enter_value_placeholder">MTU\'yu girin</string>
+ <string name="enter_voucher_code">Kupon kodunu girin</string>
+ <string name="error_occurred">Bir hata oluştu.</string>
+ <string name="error_state">GÜVENLİ BAĞLANTI OLUŞTURULAMADI</string>
+ <string name="exclude_applications">Hariç tutulan uygulamalar</string>
+ <string name="failed_to_block_internet">Tüm ağ trafiği engellenemiyor. Lütfen sorunu çözmeyi deneyin veya bir hata raporu gönderin.</string>
+ <string name="failed_to_create_account">Hesap oluşturulamadı</string>
+ <string name="failed_to_fetch_devices">Cihaz listesi alınamadı</string>
+ <string name="failed_to_remove_device">Cihaz kaldırılamadı</string>
+ <string name="failed_to_send">Gönderme başarısız</string>
+ <string name="failed_to_send_details">Formdan çıkıp daha sonra tekrar denerseniz, girmiş olduğunuz bilgiler hala burada olacaktır.</string>
+ <string name="faqs_and_guides">SSS ve Kılavuzlar</string>
+ <string name="foreground_notification_channel_description">Mevcut VPN tünelinin durumunu gösterir</string>
+ <string name="foreground_notification_channel_name">VPN tüneli durumu</string>
+ <string name="go_to_login">Giriş sayfasına git</string>
+ <string name="here_is_your_account_number">İşte hesap numaranız. Kaydedin!</string>
+ <string name="hide_account_number">Hesap numarasını gizle</string>
+ <string name="hint_default">Varsayılan</string>
+ <string name="in_address">Giriş</string>
+ <string name="invalid_dns_servers">Özel DNS sunucu adresleri (%1$s) geçersiz</string>
+ <string name="invalid_voucher">Kupon kodu geçersiz.</string>
+ <string name="ipv6_unavailable">IPv6 yapılandırılamadı. IPv6\'yı uygulamada devre dışı bırakın veya cihazınızda etkinleştirin.</string>
+ <string name="is_offline">Cihazınız çevrimdışı. Cihazınız tekrar çevrimiçi olduğunda tünel otomatik olarak bağlanacak.</string>
+ <string name="less_than_a_day_left">bir günden az kaldı</string>
+ <string name="less_than_a_minute_ago">bir dakikadan az</string>
+ <string name="local_network_sharing">Yerel ağ paylaşımı</string>
+ <string name="local_network_sharing_additional_info">Bunu, yerel çok noktaya yayın ve yayın aralıklarının yanı sıra aşağıdaki özel IP aralıkları arasında tünel dışı ağ iletişimine izin vererek yapar:</string>
+ <string name="local_network_sharing_info">Bu özellik; paylaşım, yazdırma, akış sağlama gibi özellikler için yerel ağdaki diğer cihazlara erişim izni verir.</string>
+ <string name="log_out">Oturumu kapat</string>
+ <string name="logged_in_description">Geçerli hesap numarası</string>
+ <string name="logged_in_title">Oturum açıldı</string>
+ <string name="logging_in_description">Hesap numarası kontrol ediliyor</string>
+ <string name="logging_in_title">Oturum açılıyor...</string>
+ <string name="login_description">Hesap numaranızı girin</string>
+ <string name="login_fail_description">Geçersiz hesap numarası</string>
+ <string name="login_fail_title">Oturum açma başarısız</string>
+ <string name="login_title">Oturum Aç</string>
+ <string name="malware_info">Uyarı: Kötü amaçlı yazılım engelleyici, virüsten koruma yazılımı değildir ve bu şekilde değerlendirilmemelidir. Sadece ek bir koruma seviyesi sağlamaktadır.</string>
+ <string name="max_devices_confirm_removal_description">&lt;b&gt;%1$s&lt;/b&gt; adlı cihazdan çıkış yapmak istediğinizden emin misiniz?</string>
+ <string name="max_devices_resolved_description">Artık bu cihazda oturum açmaya devam edebilirsiniz.</string>
+ <string name="max_devices_resolved_title">Süper!</string>
+ <string name="max_devices_warning_description">Lütfen aşağıdaki listeden en az bir cihazı kaldırarak çıkış yapın. İlgili cihaz adını cihazın Hesap ayarları altında bulabilirsiniz.</string>
+ <string name="max_devices_warning_title">Cihaz sayısı çok fazla</string>
+ <string name="mullvad_account_number">Mullvad hesap numarası</string>
+ <string name="no_matching_relay">Ayarlarınızla eşleşen sunucu yok. Sunucuyu veya diğer ayarları değiştirmeyi deneyin.</string>
+ <string name="no_wireguard_key">Geçerli WireGuard anahtarı eksik. Gelişmiş ayarlardan anahtarları yönetin.</string>
+ <string name="not_blocking_internet">AĞ TRAFİĞİNİZDE SIZINTI OLABİLİR</string>
+ <string name="obfuscation_info">Gizleme, WireGuard trafiğini başka bir protokolün içinde gizler. Normal bir WireGuard bağlantısının engelleneceği sansürü ve diğer filtreleme türlerini aşmaya yardımcı olmak için kullanılabilir.</string>
+ <string name="obfuscation_on_udp_over_tcp">Açık (TCP üzerinden UDP)</string>
+ <string name="off">Kapalı</string>
+ <string name="on">Açık</string>
+ <string name="out_address">Çıkış</string>
+ <string name="out_of_time">Süre doldu</string>
+ <string name="paid_until">Şu tarihe kadar ödendi:</string>
+ <string name="pay_to_start_using">Uygulamayı kullanmaya başlamak için önce hesabınıza süre eklemeniz gerekir.</string>
+ <string name="port">Port</string>
+ <string name="port_removal_notice">Bu işlem, yönlendirilen tüm portları silecek. Yerel ayarlar kaydedilecektir.</string>
+ <string name="privacy_disclaimer_title">Gizlilik</string>
+ <string name="privacy_policy_label">Gizlilik politikası</string>
+ <string name="problem_report_description">Size daha etkili bir şekilde yardımcı olmak için uygulamanızın günlük dosyası bu mesaja eklenecektir. Verileriniz şifrelenmiş bir kanal üzerinden gönderilmeden önce anonimleştirildiği için güvenli ve gizli kalacaktır.</string>
+ <string name="quantum_creating_secure_connection">KUANTUM GÜVENLİ BAĞLANTISI OLUŞTURULUYOR</string>
+ <string name="quantum_resistant_info_first_paragaph">Bu özellik, WireGuard tünelini kuantum bilgisayarlardan gelebilecek potansiyel saldırılara karşı dayanıklı hale getirir.</string>
+ <string name="quantum_resistant_info_second_paragaph">Bu işlemi, bir kuantum güvenlik algoritmasıyla ekstra bir anahtar değişimi gerçekleştirdikten sonra sonucu WireGuard\'ın normal şifrelemesiyle karıştırarak yapar. Bu ekstra adım, her yeni tünel kurulduğunda yaklaşık 500 kiB trafik kullanır.</string>
+ <string name="quantum_resistant_title">Kuantuma dayanıklı tünel</string>
+ <string name="quantum_secure_connection">KUANTUM GÜVENLİ BAĞLANTISI</string>
+ <string name="reconnecting">Yeniden Bağlanılıyor</string>
+ <string name="redeem">Kullan</string>
+ <string name="redeem_voucher">Kuponu kullan</string>
+ <string name="remove_button">Kaldır</string>
+ <string name="report_a_problem">Bir sorun bildir</string>
+ <string name="reset_to_default_button">Varsayılana sıfırla</string>
+ <string name="search_placeholder">Ara...</string>
+ <string name="secure_connection">GÜVENLİ BAĞLANTI</string>
+ <string name="secured">Güvenli</string>
+ <string name="select_location">Konum seçin</string>
+ <string name="select_location_description">Bağlıyken gerçek konumunuz, seçilen bölgedeki özel ve gizli bir konumla maskelenir.</string>
+ <string name="select_location_empty_text_first_row">&lt;b&gt;%1$s&lt;/b&gt; için sonuç bulunamadı.</string>
+ <string name="select_location_empty_text_second_row">Farklı bir arama deneyin.</string>
+ <string name="send">Gönder</string>
+ <string name="send_anyway">Yine de gönder</string>
+ <string name="sending">Gönderiliyor...</string>
+ <string name="sent">Gönderildi</string>
+ <string name="sent_contact">Gerektiğinde sizinle %1$s adresinden iletişime geçeceğiz</string>
+ <string name="sent_thanks">Teşekkürler!</string>
+ <string name="set_dns_error">Sistem DNS sunucusu ayarlanamıyor. Lütfen bir hata raporu gönderin.</string>
+ <string name="set_firewall_policy_error">Güvenlik duvarı kuralları uygulanamıyor. Lütfen sorunu çözmeye çalışın veya bir hata raporu gönderin.</string>
+ <string name="settings">Ayarlar</string>
+ <string name="settings_account">Hesap</string>
+ <string name="settings_preferences">Tercihler</string>
+ <string name="settings_vpn">VPN ayarları</string>
+ <string name="show_account_number">Hesap numarasını göster</string>
+ <string name="show_system_apps">Sistem uygulamalarını göster</string>
+ <string name="split_tunneling_description">Bölünmüş tünelleme, VPN tüneli üzerinden yönlendirilmemesi gereken uygulamaları seçmenize imkan sağlar.</string>
+ <string name="start_tunnel_error">Tünel bağlantısı başlatılamıyor. Lütfen bir hata raporu gönderin.</string>
+ <string name="submit_button">Gönder</string>
+ <string name="switch_location">Konum değiştir</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">VPN\'i aç/kapat</string>
+ <string name="try_again">Tekrar dene</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">TCP üzerinden UDP gizleme protokolünün VPN sunucusunda hangi TCP portuna bağlanması gerekiyor.</string>
+ <string name="unsecured">Güvenli değil</string>
+ <string name="unsecured_connection">GÜVENLİ OLMAYAN BAĞLANTI</string>
+ <string name="unsupported_version">DESTEKLENMEYEN SÜRÜM</string>
+ <string name="unsupported_version_description">Bu desteklenmeyen uygulama sürümüyle gizliliğiniz risk altında olabilir. Lütfen hemen güncelleyin.</string>
+ <string name="unsupported_version_without_upgrade">Desteklenmeyen bir uygulama sürümünü kullanıyorsunuz.</string>
+ <string name="update_available">GÜNCELLEME MEVCUT</string>
+ <string name="update_available_description">Güncel kalmak için Mullvad VPN (%1$s) yükleyin</string>
+ <string name="update_available_footer">Güncelleme mevcut, güvende kalmak için güncellemeyi indirin.</string>
+ <string name="update_dns_server_dialog_title">DNS sunucusunu güncelle</string>
+ <string name="user_email_hint">E-posta adresiniz (isteğe bağlı)</string>
+ <string name="user_message_hint">Size daha iyi yardımcı olabilmemiz için lütfen mesajınızı İngilizce veya İsveççe olarak yazın ve hangi ülkeden bağlandığınızı belirtin.</string>
+ <string name="view_logs">Uygulama kayıtlarını görüntüle</string>
+ <string name="virtual_adapter_problem">Sanal adaptör hatası</string>
+ <string name="voucher_already_used">Kupon kodu zaten kullanılmış.</string>
+ <string name="vpn_permission_denied_error">Tünel oluşturulurken VPN izni reddedildi. Lütfen tekrar bağlanmayı deneyin.</string>
+ <string name="vpn_permission_error_notification_message">Her zaman açık VPN başka bir uygulama için etkinleştirilebilir</string>
+ <string name="vpn_permission_error_notification_title">VPN izin hatası</string>
+ <string name="we_will_look_into_this">Bunu araştıracağız.</string>
+ <string name="wireguard_custon_port_title">Özel</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">WireGuard MTU değerini ayarlayın. Geçerli aralık: %1$d - %2$d.</string>
+ <string name="wireguard_port_info_description">Otomatik ayar, aşağıda gösterilen geçerli port aralıklarından rastgele seçim yapar.</string>
+ <string name="wireguard_port_info_port_range">Özel port, geçerli aralıklar içindeki herhangi bir değer olabilir: %1$s.</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-zh-rCN/plurals.xml b/android/lib/resource/src/main/res/values-zh-rCN/plurals.xml
new file mode 100644
index 0000000000..5a9b4b2b33
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-zh-rCN/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="other">剩余 %1$d 天</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="other">剩余 %1$d 个月</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="other">剩余 %1$d 年</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="other">%1$d 天前</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="other">%1$d 分钟前</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="other">%1$d 个月前</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="other">%1$d 年前</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="other">%1$d 小时前</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="other">帐户额度将在 %1$d 天后到期</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="other">帐户额度将在 %1$d 小时后到期</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-zh-rCN/strings.xml b/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
new file mode 100644
index 0000000000..2362f35b97
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-zh-rCN/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">已创建帐户</string>
+ <string name="account_credit_expires_in_a_few_minutes">帐户额度将在几分钟后到期</string>
+ <string name="account_credit_expires_soon">帐户额度即将到期</string>
+ <string name="account_credit_has_expired">此帐户没有更多的 VPN 时间了。</string>
+ <string name="account_number">帐号</string>
+ <string name="account_time_notification_channel_description">在帐户时间即将到期时显示提醒</string>
+ <string name="account_time_notification_channel_name">帐户时间提醒</string>
+ <string name="add_a_server">添加服务器</string>
+ <string name="add_dns_server_dialog_title">添加 DNS 服务器</string>
+ <string name="add_time_to_account">在我们的网站上购买额度或兑换优惠券。</string>
+ <string name="agree_and_continue">同意并继续</string>
+ <string name="all_applications">所有应用程序</string>
+ <string name="allow_lan_footer">允许访问同一网络上的其他设备,以进行共享、打印等</string>
+ <string name="always_on_vpn_error_notification_content">无法启动隧道连接。在使用 Mullvad VPN 之前,请为 &lt;b&gt;%1$s&lt;/b&gt; 禁用“始终启用 VPN”。</string>
+ <string name="always_on_vpn_error_notification_title">“始终启用 VPN”已分配给其他应用</string>
+ <string name="app_version">应用版本</string>
+ <string name="auth_failed">无法验证帐户。请发送问题报告。</string>
+ <string name="auto_connect">自动连接</string>
+ <string name="auto_connect_footer">在应用启动时自动连接到服务器。</string>
+ <string name="automatic">自动</string>
+ <string name="back">返回</string>
+ <string name="block_ads_title">广告</string>
+ <string name="block_adult_content_title">成人内容</string>
+ <string name="block_gambling_title">博彩</string>
+ <string name="block_malware_title">恶意软件</string>
+ <string name="block_trackers_title">跟踪器</string>
+ <string name="blocked_connection">已阻止连接</string>
+ <string name="blocking_internet">正在阻止网络</string>
+ <string name="blocking_internet_device_offline">阻止网络(设备离线)</string>
+ <string name="buy_credit">购买额度</string>
+ <string name="buy_more_credit">购买更多额度</string>
+ <string name="cancel">取消</string>
+ <string name="changes_dialog_dismiss_button">知道了!</string>
+ <string name="changes_dialog_subtitle">此版本中的变更:</string>
+ <string name="confirm_local_dns">除非您在“偏好设置”下启用“本地网络共享”,否则本地 DNS 服务器将不会运行。</string>
+ <string name="confirm_no_email">您即将发送问题报告,但没有提供让我们可以联系到您的方式。如果您希望获得回复,必须输入您的电子邮件地址。</string>
+ <string name="confirm_removal">是,退出设备</string>
+ <string name="congrats">恭喜!</string>
+ <string name="connect">保护我的连接</string>
+ <string name="connecting">正在连接</string>
+ <string name="connecting_to_daemon">正在连接到 Mullvad 系统服务…</string>
+ <string name="continue_login">继续登录</string>
+ <string name="copied_mullvad_account_number">已将 Mullvad 帐号复制到剪贴板</string>
+ <string name="copied_to_clipboard">已复制到剪贴板</string>
+ <string name="copy_account_number">复制帐号</string>
+ <string name="create_account">创建帐户</string>
+ <string name="creating_new_account">正在创建帐户…</string>
+ <string name="creating_secure_connection">正在创建安全连接</string>
+ <string name="critical_error">严重错误(需要注意)</string>
+ <string name="custom_dns_footer">启用以添加至少一个 DNS 服务器。</string>
+ <string name="custom_dns_hint">输入 IP</string>
+ <string name="custom_tunnel_host_resolution_error">无法解析自定义隧道的主机。请尝试更改您的设置。</string>
+ <string name="device_inactive_description">您已移除此设备。要重新连接,您需要重新登录。</string>
+ <string name="device_inactive_title">设备处于非活动状态</string>
+ <string name="device_inactive_unblock_warning">前往登录将在此设备上解除阻止互联网。</string>
+ <string name="device_name">设备名称</string>
+ <string name="disconnect">断开连接</string>
+ <string name="disconnecting">正在断开连接</string>
+ <string name="dismiss">关闭</string>
+ <string name="dns_content_blockers_info">启用此功能后,它将阻止设备与已知的分发广告、恶意软件、跟踪器等内容的特定域或网站联系。</string>
+ <string name="dns_content_blockers_subtitle">禁用下方的&lt;b&gt;%1$s&lt;/b&gt;以激活这些设置。</string>
+ <string name="dns_content_blockers_title">DNS 内容阻止程序</string>
+ <string name="dont_have_an_account">没有帐号?</string>
+ <string name="duplicate_address_warning">此地址已输入过。</string>
+ <string name="edit_message">编辑消息</string>
+ <string name="enable">启用</string>
+ <string name="enable_custom_dns">使用自定义 DNS 服务器</string>
+ <string name="enter_value_placeholder">输入 MTU</string>
+ <string name="enter_voucher_code">输入优惠码</string>
+ <string name="error_occurred">出错了。</string>
+ <string name="error_state">无法保护连接</string>
+ <string name="exclude_applications">排除的应用程序</string>
+ <string name="failed_to_block_internet">无法阻止所有网络流量。请排查问题或发送问题报告。</string>
+ <string name="failed_to_create_account">无法创建帐户</string>
+ <string name="failed_to_fetch_devices">无法获取设备列表</string>
+ <string name="failed_to_remove_device">无法移除设备</string>
+ <string name="failed_to_send">无法发送</string>
+ <string name="failed_to_send_details">如果您退出窗体并稍后再试,您输入的信息仍会在这里。</string>
+ <string name="faqs_and_guides">常见问题解答与指南</string>
+ <string name="foreground_notification_channel_description">显示当前的 VPN 隧道状态</string>
+ <string name="foreground_notification_channel_name">VPN 隧道状态</string>
+ <string name="go_to_login">前往登录</string>
+ <string name="here_is_your_account_number">以下是您的帐号。请妥善保存!</string>
+ <string name="hide_account_number">隐藏帐号</string>
+ <string name="hint_default">默认</string>
+ <string name="in_address">内部</string>
+ <string name="invalid_dns_servers">自定义 DNS 服务器地址 %1$s 无效</string>
+ <string name="invalid_voucher">该优惠券码无效。</string>
+ <string name="ipv6_unavailable">无法配置 IPv6。请在应用中将其禁用或在您的设备上将其启用。</string>
+ <string name="is_offline">您的设备已离线。在您的设备重新上线后,隧道将自动连接。</string>
+ <string name="less_than_a_day_left">剩余时间不足 1 天</string>
+ <string name="less_than_a_minute_ago">不到 1 分钟前</string>
+ <string name="local_network_sharing">本地网络共享</string>
+ <string name="local_network_sharing_additional_info">此功能通过允许隧道以外到本地组播和广播范围以及与以下私有 IP 范围的网络通信来实现访问。</string>
+ <string name="local_network_sharing_info">此功能允许访问本地网络中的其他设备,以实现共享、打印、流式传输等</string>
+ <string name="log_out">退出</string>
+ <string name="logged_in_description">有效帐号</string>
+ <string name="logged_in_title">已登录</string>
+ <string name="logging_in_description">正在检查帐号</string>
+ <string name="logging_in_title">登录中…</string>
+ <string name="login_description">输入您的帐号</string>
+ <string name="login_fail_description">帐号无效</string>
+ <string name="login_fail_title">登录失败</string>
+ <string name="login_title">登录</string>
+ <string name="malware_info">警告:恶意软件阻止程序不是防病毒软件,也不应被视为防病毒软件,这只是提供了一层额外的保护。</string>
+ <string name="max_devices_confirm_removal_description">确定要退出&lt;b&gt;%1$s&lt;/b&gt;吗?</string>
+ <string name="max_devices_resolved_description">您现在可以继续在此设备上登录。</string>
+ <string name="max_devices_resolved_title">太棒了!</string>
+ <string name="max_devices_warning_description">请通过从以下列表中移除的方式退出至少一个帐户。您可以在设备的帐户设置下找到相应设备名称。</string>
+ <string name="max_devices_warning_title">设备过多</string>
+ <string name="mullvad_account_number">Mullvad 帐号</string>
+ <string name="no_matching_relay">没有与您的设置匹配的服务器,请尝试更改服务器或其他设置。</string>
+ <string name="no_wireguard_key">缺少有效的 WireGuard 密钥。在“高级”设置下管理密钥。</string>
+ <string name="not_blocking_internet">您的网络流量可能在泄露</string>
+ <string name="obfuscation_info">混淆将 WireGuard 流量隐藏在另一个协议中。它可用于帮助规避审查和其他类型的过滤,在这些过滤中,普通的 WireGuard 连接将被阻止。</string>
+ <string name="obfuscation_on_udp_over_tcp">开 (UDP-over-TCP)</string>
+ <string name="off">关</string>
+ <string name="on">开</string>
+ <string name="out_address">外部</string>
+ <string name="out_of_time">已没有时间</string>
+ <string name="paid_until">到期时间</string>
+ <string name="pay_to_start_using">要开始使用本应用,您首先需要向帐户中充入时间。</string>
+ <string name="port">端口</string>
+ <string name="port_removal_notice">这将删除所有转发的端口。将保存本地设置。</string>
+ <string name="privacy_disclaimer_title">隐私</string>
+ <string name="privacy_policy_label">隐私政策</string>
+ <string name="problem_report_description">为了更有效地帮助您,您应用的日志文件将被附加到此消息。您的数据将保持安全和私密,因为所有数据在发送之前都将通过加密通道进行匿名处理。</string>
+ <string name="quantum_creating_secure_connection">正在创建量子安全连接</string>
+ <string name="quantum_resistant_info_first_paragaph">借助此功能,WireGuard 隧道能够抵抗可能通过量子计算机发起的攻击。</string>
+ <string name="quantum_resistant_info_second_paragaph">实现方法是使用量子安全算法执行额外的密钥交换,并将结果混合到 WireGuard 的常规加密中。每次建立新隧道时,这一额外步骤都会使用约 500 kiB 的流量。</string>
+ <string name="quantum_resistant_title">抗量子隧道</string>
+ <string name="quantum_secure_connection">量子安全连接</string>
+ <string name="reconnecting">正在重新连接</string>
+ <string name="redeem">兑换</string>
+ <string name="redeem_voucher">兑换优惠券</string>
+ <string name="remove_button">移除</string>
+ <string name="report_a_problem">报告问题</string>
+ <string name="reset_to_default_button">重置为默认值</string>
+ <string name="search_placeholder">搜索…</string>
+ <string name="secure_connection">安全连接</string>
+ <string name="secured">已受保护</string>
+ <string name="select_location">选择位置</string>
+ <string name="select_location_description">连接时,将使用所选区域中一个私密且安全的位置隐藏您的真实位置。</string>
+ <string name="select_location_empty_text_first_row">没有关于&lt;b&gt;%1$s&lt;/b&gt;的结果。</string>
+ <string name="select_location_empty_text_second_row">尝试其他搜索词。</string>
+ <string name="send">发送</string>
+ <string name="send_anyway">仍然发送</string>
+ <string name="sending">正在发送…</string>
+ <string name="sent">已发送</string>
+ <string name="sent_contact">如果需要,我们将通过 %1$s 与您联系</string>
+ <string name="sent_thanks">谢谢!</string>
+ <string name="set_dns_error">无法设置系统 DNS 服务器。请发送问题报告。</string>
+ <string name="set_firewall_policy_error">无法应用防火墙规则。请排查问题或发送问题报告。</string>
+ <string name="settings">设置</string>
+ <string name="settings_account">帐户</string>
+ <string name="settings_preferences">偏好设置</string>
+ <string name="settings_vpn">VPN 设置</string>
+ <string name="show_account_number">显示帐号</string>
+ <string name="show_system_apps">显示系统应用</string>
+ <string name="split_tunneling_description">利用拆分隧道,您可以选择哪些应用程序不应通过 VPN 隧道进行路由。</string>
+ <string name="start_tunnel_error">无法启动隧道连接。请发送问题报告。</string>
+ <string name="submit_button">提交</string>
+ <string name="switch_location">切换位置</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">切换 VPN</string>
+ <string name="try_again">重试</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">UDP-over-TCP 混淆协议应连接到 VPN 服务器上的哪个 TCP 端口。</string>
+ <string name="unsecured">未受保护</string>
+ <string name="unsecured_connection">未受保护的连接</string>
+ <string name="unsupported_version">不受支持的版本</string>
+ <string name="unsupported_version_description">此应用版本不受支持,因此您的隐私可能存在风险。请立即更新。</string>
+ <string name="unsupported_version_without_upgrade">您正在运行不受支持的应用版本。</string>
+ <string name="update_available">有可用更新</string>
+ <string name="update_available_description">安装 Mullvad VPN (%1$s) 以保持最新状态</string>
+ <string name="update_available_footer">有可用更新,请下载以保持安全。</string>
+ <string name="update_dns_server_dialog_title">更新 DNS 服务器</string>
+ <string name="user_email_hint">您的电子邮件(可选)</string>
+ <string name="user_message_hint">为了更好地帮助您,请用英语或瑞典语书写,并包含您连接时所在的国家/地区。</string>
+ <string name="view_logs">查看应用日志</string>
+ <string name="virtual_adapter_problem">虚拟适配器错误</string>
+ <string name="voucher_already_used">该优惠券码已被使用。</string>
+ <string name="vpn_permission_denied_error">创建隧道时,VPN 权限被拒绝。请尝试重新连接。</string>
+ <string name="vpn_permission_error_notification_message">可能为另一个应用启用了“始终启用 VPN”</string>
+ <string name="vpn_permission_error_notification_title">VPN 权限错误</string>
+ <string name="we_will_look_into_this">我们将对此进行调查。</string>
+ <string name="wireguard_custon_port_title">自定义</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">设置 WireGuard MTU 值。有效范围:%1$d - %2$d。</string>
+ <string name="wireguard_port_info_description">自动设置将从下方显示的有效端口范围中随机选择。</string>
+ <string name="wireguard_port_info_port_range">自定义端口可以是有效范围内的任何值:%1$s。</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-zh-rTW/plurals.xml b/android/lib/resource/src/main/res/values-zh-rTW/plurals.xml
new file mode 100644
index 0000000000..5658c7b022
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-zh-rTW/plurals.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <plurals name="days_left">
+ <item quantity="other">剩餘 %1$d 天</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="other">剩餘 %1$d 個月</item>
+ </plurals>
+ <plurals name="years_left">
+ <item quantity="other">剩餘 %1$d 年</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="other">%1$d 天前</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="other">%1$d 分鐘前</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="other">%1$d 個月前</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="other">%1$d 年前</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="other">%1$d 小時前</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="other">帳戶點數將在 %1$d 天後到期</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="other">帳戶點數將在 %1$d 小時後到期</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values-zh-rTW/strings.xml b/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
new file mode 100644
index 0000000000..7b3b65a5fd
--- /dev/null
+++ b/android/lib/resource/src/main/res/values-zh-rTW/strings.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <string name="account_created">已建立帳戶</string>
+ <string name="account_credit_expires_in_a_few_minutes">帳戶點數將在數分鐘後到期</string>
+ <string name="account_credit_expires_soon">帳戶點數即將到期</string>
+ <string name="account_credit_has_expired">您這個帳戶已經沒有剩餘的 VPN 時間了。</string>
+ <string name="account_number">帳戶編號</string>
+ <string name="account_time_notification_channel_description">在帳戶時間即將到期時顯示提醒</string>
+ <string name="account_time_notification_channel_name">帳戶時間提醒</string>
+ <string name="add_a_server">新增伺服器</string>
+ <string name="add_dns_server_dialog_title">新增 DNS 伺服器</string>
+ <string name="add_time_to_account">在我們網站上購買點數或兌換憑證。</string>
+ <string name="agree_and_continue">同意並繼續</string>
+ <string name="all_applications">所有應用程式</string>
+ <string name="allow_lan_footer">允許存取同一網路上的其他裝置,以進行分享、列印等。</string>
+ <string name="always_on_vpn_error_notification_content">無法啟動通道連線。在使用 Mullvad VPN 之前,請先為 &lt;b&gt;%1$s&lt;/b&gt; 停用「始終啟用 VPN」。</string>
+ <string name="always_on_vpn_error_notification_title">「始終啟用 VPN」已指派給其他應用程式</string>
+ <string name="app_version">應用程式版本</string>
+ <string name="auth_failed">無法驗證帳戶。請傳送問題回報。</string>
+ <string name="auto_connect">自動連線</string>
+ <string name="auto_connect_footer">啟動應用程式時,自動連線伺服器。</string>
+ <string name="automatic">自動</string>
+ <string name="back">返回</string>
+ <string name="block_ads_title">廣告</string>
+ <string name="block_adult_content_title">成人內容</string>
+ <string name="block_gambling_title">賭博</string>
+ <string name="block_malware_title">惡意軟體</string>
+ <string name="block_trackers_title">追蹤程式</string>
+ <string name="blocked_connection">被封鎖的連線</string>
+ <string name="blocking_internet">正在封鎖網路</string>
+ <string name="blocking_internet_device_offline">封鎖網際網路 (裝置離線)</string>
+ <string name="buy_credit">購買點數</string>
+ <string name="buy_more_credit">購買更多點數</string>
+ <string name="cancel">取消</string>
+ <string name="changes_dialog_dismiss_button">知道了!</string>
+ <string name="changes_dialog_subtitle">此版本中的變更:</string>
+ <string name="confirm_local_dns">若要使本機 DNS 伺服器運作,需先在「偏好設定」下啟用「本機網路共用」。</string>
+ <string name="confirm_no_email">您即將傳送的問題報告未包含回覆方式資訊。如果想收到您這份報告的回覆,請輸入您的電子郵件位址。</string>
+ <string name="confirm_removal">是,將裝置登出</string>
+ <string name="congrats">恭喜!</string>
+ <string name="connect">保護我的連線</string>
+ <string name="connecting">正在連線</string>
+ <string name="connecting_to_daemon">連線 Mullvad 系統服務中...</string>
+ <string name="continue_login">繼續登入</string>
+ <string name="copied_mullvad_account_number">已將 Mullvad 帳號複製到剪貼簿</string>
+ <string name="copied_to_clipboard">已複製到剪貼簿</string>
+ <string name="copy_account_number">複製帳號</string>
+ <string name="create_account">建立帳戶</string>
+ <string name="creating_new_account">正在建立帳戶…</string>
+ <string name="creating_secure_connection">建立安全連線</string>
+ <string name="critical_error">嚴重錯誤 (需注意)</string>
+ <string name="custom_dns_footer">啟用以新增至少一個 DNS 伺服器。</string>
+ <string name="custom_dns_hint">輸入 IP</string>
+ <string name="custom_tunnel_host_resolution_error">無法解析自訂通道的主機。請嘗試變更您的設定。</string>
+ <string name="device_inactive_description">您已移除此裝置。若要重新連線,您需要重新登入。</string>
+ <string name="device_inactive_title">裝置處於非活動狀態</string>
+ <string name="device_inactive_unblock_warning">若前往登入,則會在此裝置上解除對網際網路的封鎖。</string>
+ <string name="device_name">裝置名稱</string>
+ <string name="disconnect">中斷連線</string>
+ <string name="disconnecting">正在中斷連線</string>
+ <string name="dismiss">取消</string>
+ <string name="dns_content_blockers_info">此功能啟用後,便會禁止裝置聯繫某些已知會傳播廣告、惡意軟體、追蹤程式等內容的網域或網站。</string>
+ <string name="dns_content_blockers_subtitle">停用下方的 &lt;b&gt;%1$s&lt;/b&gt; 以啟動這些設定。</string>
+ <string name="dns_content_blockers_title">DNS 內容封鎖程式</string>
+ <string name="dont_have_an_account">沒有帳號?</string>
+ <string name="duplicate_address_warning">此地址已輸入過。</string>
+ <string name="edit_message">編輯訊息</string>
+ <string name="enable">啟用</string>
+ <string name="enable_custom_dns">使用自訂 DNS 伺服器</string>
+ <string name="enter_value_placeholder">輸入 MTU</string>
+ <string name="enter_voucher_code">輸入優惠券兌換碼</string>
+ <string name="error_occurred">發生錯誤了。</string>
+ <string name="error_state">保護連線失敗</string>
+ <string name="exclude_applications">已排除的應用程式</string>
+ <string name="failed_to_block_internet">無法封鎖所有網路流量。請排除故障或傳送問題回報。</string>
+ <string name="failed_to_create_account">無法建立帳戶</string>
+ <string name="failed_to_fetch_devices">無法取得裝置清單</string>
+ <string name="failed_to_remove_device">無法移除裝置</string>
+ <string name="failed_to_send">無法傳送</string>
+ <string name="failed_to_send_details">如果您關閉表格後再重新嘗試,所輸入的資訊仍會出現在這裡。</string>
+ <string name="faqs_and_guides">常見問題集與指南</string>
+ <string name="foreground_notification_channel_description">顯示目前的 VPN 通道狀態</string>
+ <string name="foreground_notification_channel_name">VPN 通道狀態</string>
+ <string name="go_to_login">前往登入</string>
+ <string name="here_is_your_account_number">以下是您的帳號。請妥善保管!</string>
+ <string name="hide_account_number">隱藏帳號</string>
+ <string name="hint_default">預設</string>
+ <string name="in_address">入境</string>
+ <string name="invalid_dns_servers">自訂 DNS 伺服器位址 %1$s 無效</string>
+ <string name="invalid_voucher">憑證兌換碼無效。</string>
+ <string name="ipv6_unavailable">無法配置 IPv6。請在應用程式中將其停用,或是在您的裝置上啟用它。</string>
+ <string name="is_offline">您的裝置已離線。在您的裝置重新上線後,通道將自動連線。</string>
+ <string name="less_than_a_day_left">剩餘時間不足 1 天</string>
+ <string name="less_than_a_minute_ago">不到 1 分鐘前</string>
+ <string name="local_network_sharing">本機網路分享</string>
+ <string name="local_network_sharing_additional_info">其原理是允許通道外的網路與本機網路進行通訊,包括以下私人 IP 範圍內的多點傳送和廣播:</string>
+ <string name="local_network_sharing_info">此功能可允許存取本機網路上的其他裝置,以便用於分享、列印、串流等。</string>
+ <string name="log_out">登出</string>
+ <string name="logged_in_description">有效帳號</string>
+ <string name="logged_in_title">已登入</string>
+ <string name="logging_in_description">檢查帳號中</string>
+ <string name="logging_in_title">登入中...</string>
+ <string name="login_description">輸入您的帳號</string>
+ <string name="login_fail_description">帳號無效</string>
+ <string name="login_fail_title">登入失敗</string>
+ <string name="login_title">登入</string>
+ <string name="malware_info">警告:惡意軟體封鎖程式並非防毒軟體,只是提供了一層額外保護,不應將其視為防毒軟體。</string>
+ <string name="max_devices_confirm_removal_description">確定要將 &lt;b&gt;%1$s&lt;/b&gt; 登出嗎?</string>
+ <string name="max_devices_resolved_description">現在,您可以繼續在此裝置上登入。</string>
+ <string name="max_devices_resolved_title">太好了!</string>
+ <string name="max_devices_warning_description">請從底下清單至少移除一個裝置來將其登出。您可以在裝置的「帳戶」設定下找到相應裝置名稱。</string>
+ <string name="max_devices_warning_title">裝置過多</string>
+ <string name="mullvad_account_number">Mullvad 帳號</string>
+ <string name="no_matching_relay">沒有與您的設定相符的伺服器,請嘗試變更伺服器或其他設定。</string>
+ <string name="no_wireguard_key">缺少有效的 WireGuard 金鑰。在「進階」設定下管理金鑰。</string>
+ <string name="not_blocking_internet">您的網路流量可能正在洩露</string>
+ <string name="obfuscation_info">藉由混淆,WireGuard 的流量能隱藏在另一個通訊協定中。這有助於規避審查或其他類型的篩選。在這類篩選中,普通 WireGuard 連線將遭到封鎖。</string>
+ <string name="obfuscation_on_udp_over_tcp">開 (UDP-over-TCP)</string>
+ <string name="off">關閉</string>
+ <string name="on">開啟</string>
+ <string name="out_address">出境</string>
+ <string name="out_of_time">逾時</string>
+ <string name="paid_until">支付至</string>
+ <string name="pay_to_start_using">需先在帳戶中加時,才能開始使用本應用程式。</string>
+ <string name="port">連接埠</string>
+ <string name="port_removal_notice">這將刪除所有轉送的連接埠。將儲存本機設定。</string>
+ <string name="privacy_disclaimer_title">隱私權</string>
+ <string name="privacy_policy_label">隱私權政策</string>
+ <string name="problem_report_description">為了更有效協助您,會將應用程式的日誌檔將附加到此郵件。您的資料會保持安全和私密性,因為這些資料會先經過匿名處理,再透過加密通道傳送。</string>
+ <string name="quantum_creating_secure_connection">正在建立量子安全連線</string>
+ <string name="quantum_resistant_info_first_paragaph">借助此功能,WireGuard 通道便能夠抵抗可能從量子電腦發起的攻擊。</string>
+ <string name="quantum_resistant_info_second_paragaph">實現方法是使用量子安全演算法執行額外的金鑰交換,並將結果混合至 WireGuard 的常規加密。每次建立新通道時,這一額外步驟都會使用約 500 kiB 流量。</string>
+ <string name="quantum_resistant_title">抗量子通道</string>
+ <string name="quantum_secure_connection">量子安全連線</string>
+ <string name="reconnecting">正在重新連線</string>
+ <string name="redeem">兌換</string>
+ <string name="redeem_voucher">兌換憑證</string>
+ <string name="remove_button">移除</string>
+ <string name="report_a_problem">回報問題</string>
+ <string name="reset_to_default_button">重設為預設值</string>
+ <string name="search_placeholder">搜尋…</string>
+ <string name="secure_connection">安全連線</string>
+ <string name="secured">安全</string>
+ <string name="select_location">選擇位置</string>
+ <string name="select_location_description">連線時,會使用所選區域的一個私密安全位置,將您的真實位置遮住。</string>
+ <string name="select_location_empty_text_first_row">&lt;b&gt;%1$s&lt;/b&gt; 沒有任何結果。</string>
+ <string name="select_location_empty_text_second_row">請嘗試使用其他關鍵字。</string>
+ <string name="send">傳送</string>
+ <string name="send_anyway">仍要傳送</string>
+ <string name="sending">傳送中...</string>
+ <string name="sent">已傳送</string>
+ <string name="sent_contact">如有需要,我們將透過 %1$s 與您聯絡</string>
+ <string name="sent_thanks">謝謝!</string>
+ <string name="set_dns_error">無法設定系統 DNS 伺服器。請傳送問題回報。</string>
+ <string name="set_firewall_policy_error">無法套用防火牆規則。請排除故障或傳送問題回報。</string>
+ <string name="settings">設定</string>
+ <string name="settings_account">帳戶</string>
+ <string name="settings_preferences">喜好設定</string>
+ <string name="settings_vpn">VPN 設定</string>
+ <string name="show_account_number">顯示帳號</string>
+ <string name="show_system_apps">顯示系統應用程式</string>
+ <string name="split_tunneling_description">利用拆分通道,您可以選擇哪些應用程式不應透過 VPN 通道進行路由。</string>
+ <string name="start_tunnel_error">無法啟動通道連線。請傳送問題回報。</string>
+ <string name="submit_button">提交</string>
+ <string name="switch_location">切換位置</string>
+ <string name="tcp">TCP</string>
+ <string name="toggle_vpn">切換 VPN</string>
+ <string name="try_again">再試一次</string>
+ <string name="udp">UDP</string>
+ <string name="udp_over_tcp_port_info">UDP-over-TCP 混淆通訊協定應連線到 VPN 伺服器上的哪個 TCP 連接埠。</string>
+ <string name="unsecured">不安全</string>
+ <string name="unsecured_connection">不安全的連線</string>
+ <string name="unsupported_version">不支援的版本</string>
+ <string name="unsupported_version_description">此應用程式版本不受支援,因此您的隱私可能存在風險。請立即更新。</string>
+ <string name="unsupported_version_without_upgrade">您所執行的應用程式版本不受支援。</string>
+ <string name="update_available">可用的更新</string>
+ <string name="update_available_description">安裝 Mullvad VPN (%1$s) 以維持最新狀態</string>
+ <string name="update_available_footer">更新可用,請下載以維持安全。</string>
+ <string name="update_dns_server_dialog_title">更新 DNS 伺服器</string>
+ <string name="user_email_hint">您的電子郵件 (選填)</string>
+ <string name="user_message_hint">為了給您提供更完善的協助,請您使用英語或瑞典語書寫,並註明您是從哪個國家/地區進行連線。</string>
+ <string name="view_logs">檢視應用程式日誌</string>
+ <string name="virtual_adapter_problem">虛擬配接器錯誤</string>
+ <string name="voucher_already_used">此憑證兌換碼已有人用過。</string>
+ <string name="vpn_permission_denied_error">建立通道時,VPN 權限被拒絕。請嘗試重新連線。</string>
+ <string name="vpn_permission_error_notification_message">可能已為另一個應用程式啟用了「始終啟用 VPN」</string>
+ <string name="vpn_permission_error_notification_title">VPN 權限錯誤</string>
+ <string name="we_will_look_into_this">我們會對此進行調查。</string>
+ <string name="wireguard_custon_port_title">自訂</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">設定 WireGuard MTU 值。有效範圍:%1$d - %2$d。</string>
+ <string name="wireguard_port_info_description">自動設定將會隨機從下方顯示的有效連接埠範圍中進行選擇。</string>
+ <string name="wireguard_port_info_port_range">自訂連接埠可以是有效範圍內的任何值:%1$s。</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/attrs.xml b/android/lib/resource/src/main/res/values/attrs.xml
new file mode 100644
index 0000000000..c7e29bd8b6
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/attrs.xml
@@ -0,0 +1,40 @@
+<resources>
+ <declare-styleable name="Button">
+ <attr name="buttonColor" format="enum">
+ <enum name="blue" value="0" />
+ <enum name="green" value="1" />
+ <enum name="red" value="2" />
+ </attr>
+ <attr name="detailImage" format="reference" />
+ <attr name="showSpinner" format="boolean" />
+ </declare-styleable>
+ <declare-styleable name="Cell">
+ <attr name="footer" format="reference|string" />
+ </declare-styleable>
+ <declare-styleable name="CopyableInformationView">
+ <attr name="clipboardLabel" format="reference|string" />
+ <attr name="copiedToast" format="reference|string" />
+ </declare-styleable>
+ <declare-styleable name="InformationView">
+ <attr name="description" format="reference|string" />
+ <attr name="errorColor" format="reference|color" />
+ <attr name="informationColor" format="reference|color" />
+ <attr name="maxLength" format="integer" />
+ <attr name="whenMissing" format="enum">
+ <enum name="nothing" value="0" />
+ <enum name="hide" value="1" />
+ <enum name="showSpinner" value="2" />
+ </attr>
+ </declare-styleable>
+ <declare-styleable name="TextAttribute">
+ <attr name="text" format="reference|string" />
+ </declare-styleable>
+ <declare-styleable name="Url">
+ <attr name="url" format="reference|string" />
+ </declare-styleable>
+ <declare-styleable name="UrlButton">
+ <attr name="withToken" format="boolean" />
+ </declare-styleable>
+ <attr name="actionListItemViewStyle" type="reference" />
+ <attr name="applicationListItemViewStyle" type="reference" />
+</resources>
diff --git a/android/lib/resource/src/main/res/values/colors.xml b/android/lib/resource/src/main/res/values/colors.xml
new file mode 100644
index 0000000000..1bcfd3d010
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/colors.xml
@@ -0,0 +1,30 @@
+<resources>
+ <color name="colorPrimary">#294D73</color>
+ <color name="blue">#294D73</color>
+ <color name="blue80">#CC294D73</color>
+ <color name="blue60">#99294D73</color>
+ <color name="blue40">#66294D73</color>
+ <color name="blue20">#33294D73</color>
+ <color name="darkBlue">#192E45</color>
+ <color name="white">#FFFFFF</color>
+ <color name="white80">#CCFFFFFF</color>
+ <color name="white60">#99FFFFFF</color>
+ <color name="white40">#66FFFFFF</color>
+ <color name="white20">#33FFFFFF</color>
+ <color name="green">#44AD4D</color>
+ <color name="green90">#E644AD4D</color>
+ <color name="green80">#CC44AD4D</color>
+ <color name="red">#FFE34039</color>
+ <color name="red95">#F2E34039</color>
+ <color name="red80">#CCE34039</color>
+ <color name="red60">#99E34039</color>
+ <color name="yellow">#FFD323</color>
+ <color name="icon_background">@color/darkBlue</color>
+ <!-- Switch Colors -->
+ <color name="switch_thumb_fill_checked">@color/green</color>
+ <color name="switch_thumb_fill_unchecked">@color/red</color>
+ <color name="switch_thumb_fill">@color/switch_thumb_fill_selector</color>
+ <color name="switch_thumb_border">@android:color/transparent</color>
+ <color name="switch_track_fill">@android:color/transparent</color>
+ <color name="switch_track_border">@color/white80</color>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/dimensions.xml b/android/lib/resource/src/main/res/values/dimensions.xml
new file mode 100644
index 0000000000..b4e09ab70a
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/dimensions.xml
@@ -0,0 +1,51 @@
+<resources>
+ <dimen name="dialog_margin">14dp</dimen>
+ <dimen name="account_login_input_height">48dp</dimen>
+ <dimen name="account_login_corner_radius">4dp</dimen>
+ <dimen name="account_login_border_width">2dp</dimen>
+ <dimen name="account_history_divider">1dp</dimen>
+ <dimen name="account_history_entry_height">48dp</dimen>
+ <dimen name="edit_text_corner_radius">4dp</dimen>
+ <dimen name="button_height">44dp</dimen>
+ <dimen name="cell_height">52dp</dimen>
+ <dimen name="cell_switch_border_radius">16dp</dimen>
+ <dimen name="cell_switch_width">48dp</dimen>
+ <dimen name="cell_switch_height">30dp</dimen>
+ <dimen name="cell_switch_knob_margin">4dp</dimen>
+ <dimen name="cell_switch_knob_max_translation">18dp</dimen>
+ <dimen name="cell_switch_knob_size">22dp</dimen>
+ <dimen name="settings_back_button_padding">12dp</dimen>
+ <dimen name="cell_left_padding">@dimen/side_margin</dimen>
+ <dimen name="cell_right_padding">16dp</dimen>
+ <dimen name="cell_inner_spacing">8dp</dimen>
+ <dimen name="cell_label_vertical_padding">14dp</dimen>
+ <dimen name="cell_footer_top_padding">6dp</dimen>
+ <dimen name="cell_footer_horizontal_padding">@dimen/side_margin</dimen>
+ <dimen name="text_small">13sp</dimen>
+ <dimen name="text_medium">16sp</dimen>
+ <dimen name="text_medium_plus">18sp</dimen>
+ <dimen name="text_big">24sp</dimen>
+ <dimen name="text_huge">30sp</dimen>
+ <dimen name="side_margin">22dp</dimen>
+ <dimen name="vertical_space">20dp</dimen>
+ <dimen name="half_vertical_space">10dp</dimen>
+ <dimen name="button_separation">18dp</dimen>
+ <dimen name="screen_vertical_margin">22dp</dimen>
+ <dimen name="progress_size">60dp</dimen>
+ <dimen name="icon_size">24dp</dimen>
+ <dimen name="widget_padding">16dp</dimen>
+ <dimen name="expanded_toolbar_height">104dp</dimen>
+ <dimen name="information_icon_size">28dp</dimen>
+ <dimen name="information_action_margin">20dp</dimen>
+ <dimen name="medium_padding">16dp</dimen>
+ <dimen name="small_padding">8dp</dimen>
+ <dimen name="zero_size">0px</dimen>
+ <!-- Switch Dimens-->
+ <dimen name="switch_width">46dp</dimen>
+ <dimen name="switch_height">30dp</dimen>
+ <dimen name="switch_thumb_size">30dp</dimen>
+ <dimen name="switch_thumb_padding">8dp</dimen>
+ <dimen name="switch_track_radius">16dp</dimen>
+ <dimen name="switch_track_stroke">2dp</dimen>
+ <dimen name="top_bar_height">64dp</dimen>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/integers.xml b/android/lib/resource/src/main/res/values/integers.xml
new file mode 100644
index 0000000000..3089382d18
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/integers.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8"?>
+<resources>
+ <integer name="transition_animation_duration">@android:integer/config_mediumAnimTime</integer>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/plurals.xml b/android/lib/resource/src/main/res/values/plurals.xml
new file mode 100644
index 0000000000..b9aa90441e
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/plurals.xml
@@ -0,0 +1,43 @@
+<resources>
+ <plurals name="years_left">
+ <item quantity="one">1 year left</item>
+ <item quantity="other">%d years left</item>
+ </plurals>
+ <plurals name="months_left">
+ <item quantity="one">1 month left</item>
+ <item quantity="other">%d months left</item>
+ </plurals>
+ <plurals name="days_left">
+ <item quantity="one">1 day left</item>
+ <item quantity="other">%d days left</item>
+ </plurals>
+ <plurals name="minutes_ago">
+ <item quantity="zero">less than a minute ago</item>
+ <item quantity="one">a minute ago</item>
+ <item quantity="other">%d minutes ago</item>
+ </plurals>
+ <plurals name="hours_ago">
+ <item quantity="one">an hour ago</item>
+ <item quantity="other">%d hours ago</item>
+ </plurals>
+ <plurals name="days_ago">
+ <item quantity="one">a day ago</item>
+ <item quantity="other">%d days ago</item>
+ </plurals>
+ <plurals name="months_ago">
+ <item quantity="one">a month ago</item>
+ <item quantity="other">%d months ago</item>
+ </plurals>
+ <plurals name="years_ago">
+ <item quantity="one">a year ago</item>
+ <item quantity="other">%d years ago</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_days">
+ <item quantity="one">Account credit expires in a day</item>
+ <item quantity="other">Account credit expires in %d days</item>
+ </plurals>
+ <plurals name="account_credit_expires_in_hours">
+ <item quantity="one">Account credit expires in an hour</item>
+ <item quantity="other">Account credit expires in %d hours</item>
+ </plurals>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/strings.xml b/android/lib/resource/src/main/res/values/strings.xml
new file mode 100644
index 0000000000..05e516c362
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/strings.xml
@@ -0,0 +1,220 @@
+<resources>
+ <string name="connecting">Connecting</string>
+ <string name="reconnecting">Reconnecting</string>
+ <string name="disconnecting">Disconnecting</string>
+ <string name="secured">Secured</string>
+ <string name="unsecured">Unsecured</string>
+ <string name="critical_error">Critical error (your attention is required)</string>
+ <string name="foreground_notification_channel_name">VPN tunnel status</string>
+ <string name="foreground_notification_channel_description">Shows current VPN tunnel status</string>
+ <string name="account_time_notification_channel_name">Account time reminders</string>
+ <string name="account_time_notification_channel_description">Shows reminders when the account time is about to expire</string>
+ <string name="connecting_to_daemon">Connecting to Mullvad system service...</string>
+ <string name="login_title">Login</string>
+ <string name="login_description">Enter your account number</string>
+ <string name="logging_in_title">Logging in...</string>
+ <string name="logging_in_description">Checking account number</string>
+ <string name="logged_in_title">Logged in</string>
+ <string name="logged_in_description">Valid account number</string>
+ <string name="login_fail_title">Login failed</string>
+ <string name="login_fail_description">Invalid account number</string>
+ <string name="dont_have_an_account">Don’t have an account number?</string>
+ <string name="create_account">Create account</string>
+ <string name="creating_new_account">Creating account...</string>
+ <string name="failed_to_create_account">Failed to create account</string>
+ <string name="account_created">Account created</string>
+ <string name="congrats">Congrats!</string>
+ <string name="here_is_your_account_number">Here’s your account number. Save it!</string>
+ <string name="pay_to_start_using">To start using the app, you first need to add time to your account.</string>
+ <string name="buy_credit">Buy credit</string>
+ <string name="buy_more_credit">Buy more credit</string>
+ <string name="redeem_voucher">Redeem voucher</string>
+ <string name="enter_voucher_code">Enter voucher code</string>
+ <string name="redeem">Redeem</string>
+ <string name="invalid_voucher">Voucher code is invalid.</string>
+ <string name="voucher_already_used">Voucher code has already been used.</string>
+ <string name="error_occurred">An error occurred.</string>
+ <string name="settings">Settings</string>
+ <string name="settings_account">Account</string>
+ <string name="less_than_a_day_left">less than a day left</string>
+ <string name="less_than_a_minute_ago">less than a minute ago</string>
+ <string name="account_credit_expires_in_a_few_minutes">Account credit expires in a few minutes</string>
+ <string name="account_credit_has_expired">You have no more VPN time left on this account.</string>
+ <string name="out_of_time">Out of time</string>
+ <string name="add_time_to_account">Either buy credit on our website or redeem a voucher.</string>
+ <string name="settings_preferences">Preferences</string>
+ <string name="settings_vpn">VPN settings</string>
+ <string name="app_version">App version</string>
+ <string name="update_available_footer">Update available, download to remain safe.</string>
+ <string name="report_a_problem">Report a problem</string>
+ <string name="faqs_and_guides">FAQs &amp; Guides</string>
+ <string name="privacy_policy_label">Privacy policy</string>
+ <string name="account_number">Account number</string>
+ <string name="device_name">Device name</string>
+ <string name="mullvad_account_number">Mullvad account number</string>
+ <string name="copied_mullvad_account_number">Copied Mullvad account number to clipboard</string>
+ <string name="paid_until">Paid until</string>
+ <string name="log_out">Log out</string>
+ <string name="local_network_sharing">Local network sharing</string>
+ <string name="allow_lan_footer">Allows access to other devices on the same network for sharing, printing etc.</string>
+ <string name="auto_connect">Auto-connect</string>
+ <string name="auto_connect_footer">Automatically connect to a server when the app launches.</string>
+ <string name="wireguard_mtu">WireGuard MTU</string>
+ <string name="wireguard_mtu_footer">Set WireGuard MTU value. Valid range: %1$d - %2$d.</string>
+ <string name="hint_default">Default</string>
+ <string name="problem_report_description">To help you more effectively, your app’s log file will be attached to this message. Your data will remain secure and private, as it is anonymised before being sent over an encrypted channel.</string>
+ <string name="user_email_hint">Your email (optional)</string>
+ <string name="user_message_hint">To assist you better, please write in English or Swedish and include which country you are connecting from.</string>
+ <string name="view_logs">View app logs</string>
+ <string name="send">Send</string>
+ <string name="sending">Sending...</string>
+ <string name="sent">Sent</string>
+ <string name="failed_to_send">Failed to send</string>
+ <string name="confirm_no_email">You are about to send the problem report without a way for us to get back to you. If you want an answer to your report you will have to enter an email address.</string>
+ <string name="send_anyway">Send anyway</string>
+ <string name="back">Back</string>
+ <string name="sent_thanks">Thanks!</string>
+ <string name="we_will_look_into_this">We will look into this.</string>
+ <string name="sent_contact">If needed we will contact you at %1$s</string>
+ <string name="failed_to_send_details">If you exit the form and try again later, the information you already entered will still be here.</string>
+ <string name="edit_message">Edit message</string>
+ <string name="try_again">Try again</string>
+ <string name="unsecured_connection">UNSECURED CONNECTION</string>
+ <string name="creating_secure_connection">CREATING SECURE CONNECTION</string>
+ <string name="secure_connection">SECURE CONNECTION</string>
+ <string name="blocked_connection">BLOCKED CONNECTION</string>
+ <string name="error_state">FAILED TO SECURE CONNECTION</string>
+ <string name="connect">Secure my connection</string>
+ <string name="cancel">Cancel</string>
+ <string name="disconnect">Disconnect</string>
+ <string name="dismiss">Dismiss</string>
+ <string name="switch_location">Switch location</string>
+ <string name="tcp">TCP</string>
+ <string name="udp">UDP</string>
+ <string name="in_address">In</string>
+ <string name="out_address">Out</string>
+ <string name="blocking_internet">Blocking internet</string>
+ <string name="blocking_internet_device_offline">Blocking internet (device offline)</string>
+ <string name="not_blocking_internet">YOU MIGHT BE LEAKING NETWORK TRAFFIC</string>
+ <string name="invalid_dns_servers">Custom DNS server addresses %1$s are invalid</string>
+ <string name="failed_to_block_internet">Unable to block all network traffic. Please troubleshoot or send a problem report.</string>
+ <string name="auth_failed">Unable to authenticate account. Please send a problem report.</string>
+ <string name="ipv6_unavailable">Could not configure IPv6. Disable it in the app or enable it on your device.</string>
+ <string name="set_firewall_policy_error">Unable to apply firewall rules. Please troubleshoot or send a problem report.</string>
+ <string name="set_dns_error">Unable to set system DNS server. Please send a problem report.</string>
+ <string name="start_tunnel_error">Unable to start tunnel connection. Please send a problem report.</string>
+ <string name="vpn_permission_denied_error">VPN permission was denied when creating the tunnel. Please try connecting again.</string>
+ <string name="no_matching_relay">No servers match your settings, try changing server or other settings.</string>
+ <string name="no_wireguard_key">Valid WireGuard key is missing. Manage keys under Advanced settings.</string>
+ <string name="custom_dns_hint">Enter IP</string>
+ <string name="custom_tunnel_host_resolution_error">Unable to resolve host of custom tunnel. Try changing your settings.</string>
+ <string name="is_offline">Your device is offline. The tunnel will automatically connect once your device is back online.</string>
+ <string name="virtual_adapter_problem">Virtual adapter error</string>
+ <string name="update_available">UPDATE AVAILABLE</string>
+ <string name="update_available_description">Install Mullvad VPN (%1$s) to stay up to date</string>
+ <string name="unsupported_version">UNSUPPORTED VERSION</string>
+ <string name="unsupported_version_description">Your privacy might be at risk with this unsupported app version. Please update now.</string>
+ <string name="unsupported_version_without_upgrade">You are running an unsupported app version.</string>
+ <string name="account_credit_expires_soon">Account credit expires soon</string>
+ <string name="select_location">Select location</string>
+ <string name="select_location_description">While connected, your real location is masked with a private and secure location in the selected region.</string>
+ <string name="split_tunneling_description">Split tunneling makes it possible to select which applications should not be routed through the VPN tunnel.</string>
+ <string name="enable">Enable</string>
+ <string name="enable_custom_dns">Use custom DNS server</string>
+ <string name="add_a_server">Add a server</string>
+ <string name="custom_dns_footer">Enable to add at least one DNS server.</string>
+ <string name="confirm_local_dns">The local DNS server will not work unless you enable \"Local Network Sharing\" under Preferences.</string>
+ <string name="exclude_applications">Excluded applications</string>
+ <string name="all_applications">All applications</string>
+ <string name="copied_to_clipboard">Copied to clipboard</string>
+ <string name="show_system_apps">Show system apps</string>
+ <string name="toggle_vpn">Toggle VPN</string>
+ <string name="go_to_login">Go to login</string>
+ <string name="device_inactive_title">Device is inactive</string>
+ <string name="device_inactive_description">You have removed this device. To connect again, you will need to log back in.</string>
+ <string name="device_inactive_unblock_warning">Going to login will unblock the internet on this device.</string>
+ <string name="max_devices_warning_title">Too many devices</string>
+ <string name="max_devices_resolved_title">Super!</string>
+ <string name="max_devices_warning_description">Please log out of at least one by removing it from the list below. You can find the corresponding device name under the device’s Account settings.</string>
+ <string name="max_devices_resolved_description">You can now continue logging in on this device.</string>
+ <string name="max_devices_confirm_removal_description">
+ <![CDATA[Are you sure you want to log <b>%s</b> out?]]>
+ </string>
+ <string name="confirm_removal">Yes, log out device</string>
+ <string name="continue_login">Continue with login</string>
+ <string name="failed_to_fetch_devices">Failed to fetch list of devices</string>
+ <string name="port_removal_notice">This will delete all forwarded ports. Local settings will be saved.</string>
+ <string name="copy_account_number">Copy account number</string>
+ <string name="hide_account_number">Hide account number</string>
+ <string name="show_account_number">Show account number</string>
+ <string name="failed_to_remove_device">Failed to remove device</string>
+ <string name="changes_dialog_subtitle">Changes in this version:</string>
+ <string name="changes_dialog_dismiss_button">Got it!</string>
+ <string name="always_on_vpn_error_notification_title">Always-on VPN assigned to other app</string>
+ <string name="always_on_vpn_error_notification_content">
+ <![CDATA[Unable to start tunnel connection. Please disable Always-on VPN for <b>%s</b> before using Mullvad VPN.]]>
+ </string>
+ <string name="vpn_permission_error_notification_title">VPN permission error</string>
+ <string name="vpn_permission_error_notification_message">Always-on VPN might be enabled for another app</string>
+ <string name="agree_and_continue">Agree and continue</string>
+ <string name="privacy_disclaimer_title">Privacy</string>
+ <string name="privacy_disclaimer_body">To make sure that you have the most secure version and to inform you of any issues with the current version that is running, the app performs version checks automatically. This sends the app version and Android system version to Mullvad servers. Mullvad keeps counters on number of used app versions and Android versions. The data is never stored or used in any way that can identify you.\n\nIf the split tunneling feature is used, then the app queries your system for a list of all installed applications. This list is only retrieved in the split tunneling view. The list of installed applications is never sent from the device.</string>
+ <string name="submit_button">Submit</string>
+ <string name="remove_button">Remove</string>
+ <string name="enter_value_placeholder">Enter MTU</string>
+ <string name="reset_to_default_button">Reset to default</string>
+ <string name="add_dns_server_dialog_title">Add DNS server</string>
+ <string name="update_dns_server_dialog_title">Update DNS server</string>
+ <string name="duplicate_address_warning">This address has already been entered.</string>
+ <string name="dns_content_blockers_title">DNS content blockers</string>
+ <string name="dns_content_blockers_info">When this feature is enabled it stops the device from contacting certain domains or websites known for distributing ads, malware, trackers and more.</string>
+ <string name="dns_content_blockers_warning">This might cause issues on certain websites, services, and apps.</string>
+ <string name="dns_content_blockers_custom_dns_warning">
+ <![CDATA[Attention: this setting cannot be used in combination with <b>Use custom DNS server</b>.]]>
+ </string>
+ <string name="block_ads_title">Ads</string>
+ <string name="block_trackers_title">Trackers</string>
+ <string name="block_malware_title">Malware</string>
+ <string name="malware_info">Warning: The malware blocker is not an anti-virus and should not be treated as such, this is just an extra layer of protection.</string>
+ <string name="block_gambling_title">Gambling</string>
+ <string name="block_adult_content_title">Adult content</string>
+ <string name="dns_content_blockers_subtitle">
+ <![CDATA[Disable <b>%s</b> below to activate these settings.]]>
+ </string>
+ <string name="custom_dns_disable_mode_subtitle">
+ <![CDATA[Disable all <b>%s</b> above to activate this setting.]]>
+ </string>
+ <string name="settings_changes_effect_warning_short">DNS settings might not go into effect immediately</string>
+ <string name="settings_changes_effect_warning_content_blocker">Changes to DNS related settings might not go into effect immediately due to cached results.</string>
+ <string name="manage_account">Manage account</string>
+ <string name="obfuscation_title">WireGuard obfuscation</string>
+ <string name="obfuscation_info">Obfuscation hides the WireGuard traffic inside another protocol. It can be used to help circumvent censorship and other types of filtering, where a plain WireGuard connect would be blocked.</string>
+ <string name="obfuscation_on_udp_over_tcp">On (UDP-over-TCP)</string>
+ <string name="automatic">Automatic</string>
+ <string name="off">Off</string>
+ <string name="udp_over_tcp_port_info">Which TCP port the UDP-over-TCP obfuscation protocol should connect to on the VPN server.</string>
+ <string name="created_x">Created: %s</string>
+ <string name="local_network_sharing_info">This feature allows access to other devices on the local network, such as for sharing, printing, streaming, etc.</string>
+ <string name="local_network_sharing_additional_info">It does this by allowing network communication outside the tunnel to local multicast and broadcast ranges as well as to and from these private IP ranges:</string>
+ <string name="quantum_resistant_title">Quantum-resistant tunnel</string>
+ <string name="quantum_resistant_info_first_paragaph">This feature makes the WireGuard tunnel resistant to potential attacks from quantum computers.</string>
+ <string name="quantum_resistant_info_second_paragaph">It does this by performing an extra key exchange using a quantum safe algorithm and mixing the result into WireGuard’s regular encryption. This extra step uses approximately 500 kiB of traffic every time a new tunnel is established.</string>
+ <string name="on">On</string>
+ <string name="quantum_creating_secure_connection">CREATING QUANTUM SECURE CONNECTION</string>
+ <string name="quantum_secure_connection">QUANTUM SECURE CONNECTION</string>
+ <string name="wireguard_port_title">WireGuard Port</string>
+ <string name="wireguard_port_info_description">The automatic setting will randomly choose from the valid port ranges shown below.</string>
+ <string name="search_placeholder">Search for...</string>
+ <string name="select_location_empty_text_first_row">
+ <![CDATA[No result for <b>%s</b>.]]>
+ </string>
+ <string name="select_location_empty_text_second_row">Try a different search.</string>
+ <string name="wireguard_port_info_port_range">The custom port can be any value inside the valid ranges: %s.</string>
+ <string name="wireguard_custon_port_title">Custom</string>
+ <string name="port">Port</string>
+ <string name="custom_port_dialog_title">WireGuard custom port</string>
+ <string name="custom_port_dialog_submit">Set port</string>
+ <string name="custom_port_dialog_remove">Remove custom port</string>
+ <string name="custom_port_dialog_valid_ranges">Valid ranges: %s</string>
+ <string name="custom_port_dialog_placeholder">Enter port</string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/strings_non_translatable.xml b/android/lib/resource/src/main/res/values/strings_non_translatable.xml
new file mode 100644
index 0000000000..1e11bda6db
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/strings_non_translatable.xml
@@ -0,0 +1,14 @@
+<resources>
+ <string name="app_name" translatable="false">Mullvad VPN</string>
+ <string name="login_hint" translatable="false">0000 0000 0000 0000</string>
+ <string name="voucher_hint" translatable="false">XXXX-XXXX-XXXX-XXXX</string>
+ <string name="account_url" translatable="false">https://mullvad.net/account</string>
+ <string name="download_url" translatable="false">https://mullvad.net/download</string>
+ <string name="faqs_and_guides_url" translatable="false">https://mullvad.net/help/tag/mullvad-app/</string>
+ <string name="privacy_policy_url" translatable="false">https://mullvad.net/help/privacy-policy/</string>
+ <string name="split_tunneling" translatable="false">Split tunneling</string>
+ <string name="wireguard" translatable="false">WireGuard</string>
+ <string name="local_network_sharing_ip_ranges">
+ <![CDATA[<ul><li>10.0.0.0/8</li><li>172.16.0.0/12</li><li>192.168.0.0/16</li><li>169.254.0.0/16</li><li>0xfe80::/10</li><li>0xfc00::/7</li></ul>]]>
+ </string>
+</resources>
diff --git a/android/lib/resource/src/main/res/values/styles.xml b/android/lib/resource/src/main/res/values/styles.xml
new file mode 100644
index 0000000000..e03dd86700
--- /dev/null
+++ b/android/lib/resource/src/main/res/values/styles.xml
@@ -0,0 +1,95 @@
+<resources>
+ <style name="AppTheme" parent="Theme.AppCompat.NoActionBar">
+ <item name="colorPrimary">@color/colorPrimary</item>
+ <item name="android:navigationBarColor">@color/blue</item>
+ <item name="android:statusBarColor">@color/blue</item>
+ <item name="android:windowBackground">@color/blue</item>
+ <item name="switchStyle">@style/AppTheme.Switch</item>
+ <item name="actionListItemViewStyle">@style/ListItem.Action</item>
+ <item name="applicationListItemViewStyle">@style/ListItem.Action.Application</item>
+ <item name="android:spotShadowAlpha">0</item>
+ <item name="actionBarSize">48dp</item>
+ </style>
+ <style name="InputText" parent="Widget.AppCompat.EditText">
+ <item name="android:padding">14dp</item>
+ <item name="android:background">@drawable/input_text_background</item>
+ <item name="android:textCursorDrawable">@drawable/text_input_cursor</item>
+ <item name="android:textColorHint">@color/blue40</item>
+ <item name="android:textColor">@color/blue</item>
+ <item name="android:textSize">@dimen/text_small</item>
+ </style>
+ <style name="Button" parent="Widget.AppCompat.Button.Borderless">
+ <item name="android:layout_height">wrap_content</item>
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:minHeight">@dimen/button_height</item>
+ <item name="android:paddingTop">0dp</item>
+ <item name="android:paddingBottom">0dp</item>
+ <item name="android:textAllCaps">false</item>
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textSize">@dimen/text_medium_plus</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+ <style name="GreenButton" parent="Button">
+ <item name="android:background">@drawable/green_button_background</item>
+ </style>
+ <style name="RedButton" parent="Button">
+ <item name="android:background">@drawable/red_button_background</item>
+ </style>
+ <style name="BlueButton" parent="Button">
+ <item name="android:background">@drawable/blue_button_background</item>
+ </style>
+ <style name="SettingsHeader">
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textStyle">bold</item>
+ </style>
+ <style name="SettingsExpandedHeader" parent="SettingsHeader">
+ <item name="android:textSize">@dimen/text_huge</item>
+ </style>
+ <style name="SettingsCollapsedHeader" parent="SettingsHeader">
+ <item name="android:textSize">@dimen/text_medium</item>
+ </style>
+ <style name="TextAppearance.Mullvad" parent="TextAppearance.AppCompat" />
+ <style name="TextAppearance.Mullvad.Title1">
+ <item name="android:textColor">@color/white</item>
+ <item name="android:textSize">@dimen/text_medium_plus</item>
+ </style>
+ <style name="TextAppearance.Mullvad.Small">
+ <item name="android:textColor">@color/white60</item>
+ <item name="android:textSize">@dimen/text_small</item>
+ </style>
+ <style name="ListItem">
+ <item name="android:layout_width">match_parent</item>
+ <item name="android:layout_height">wrap_content</item>
+ </style>
+ <style name="ListItem.DividerGroup">
+ <item name="android:layout_height">@dimen/vertical_space</item>
+ </style>
+ <style name="ListItem.PlainText">
+ <item name="android:focusable">false</item>
+ <item name="android:clickable">false</item>
+ <item name="android:paddingTop">5dp</item>
+ </style>
+ <style name="ListItem.Action">
+ <item name="android:height">@dimen/cell_height</item>
+ <item name="android:layout_height">@dimen/cell_height</item>
+ <item name="android:background">@drawable/cell_button_background</item>
+ <item name="android:clickable">true</item>
+ <item name="android:focusable">true</item>
+ </style>
+ <style name="ListItem.Action.Application">
+ <item name="android:background">@drawable/app_list_item_background</item>
+ </style>
+ <style name="ListItem.Action.Double">
+ <item name="android:clickable">false</item>
+ <item name="android:focusable">false</item>
+ </style>
+ <!-- Switch Style -->
+ <style name="AppTheme.Switch">
+ <item name="android:layout_width">@dimen/switch_width</item>
+ <item name="android:layout_height">@dimen/switch_height</item>
+ <item name="track">@drawable/switch_track</item>
+ <item name="android:thumb">@drawable/switch_thumb</item>
+ <item name="switchMinWidth">@dimen/switch_width</item>
+ <item name="showText">false</item>
+ </style>
+</resources>