aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-11-12 04:03:41 -0500
committerGitHub <noreply@github.com>2017-11-12 04:03:41 -0500
commit4aed05a8923a7f76799bbaa254f407f7e11fef0b (patch)
treebadd20ad111989ce7bbeed3f7e9ed8df47b94331
parent2b51bc4bfa86863ed14b550fe3281840587ab038 (diff)
downloadfrost-4aed05a8923a7f76799bbaa254f407f7e11fef0b.tar.gz
frost-4aed05a8923a7f76799bbaa254f407f7e11fef0b.tar.bz2
frost-4aed05a8923a7f76799bbaa254f407f7e11fef0b.zip
Translations (#482)
* Update translators * Remove translation for some other texts * Update kau * Fix build and optimize * Add translations * Update readme and changelog * Clean unnecessary strings * Fix translations * Add korean translations for kau
-rw-r--r--README.md4
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt3
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt11
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt49
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt5
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewHolder.kt (renamed from app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt)2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt3
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt3
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt12
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt4
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/AdBlocker.kt1
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt8
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt7
-rw-r--r--app/src/main/res/values-de/strings_pref_debug.xml1
-rw-r--r--app/src/main/res/values-de/strings_web_context.xml3
-rw-r--r--app/src/main/res/values-es/strings_pref_debug.xml1
-rw-r--r--app/src/main/res/values-es/strings_web_context.xml3
-rw-r--r--app/src/main/res/values-fr/strings_pref_debug.xml1
-rw-r--r--app/src/main/res/values-fr/strings_web_context.xml3
-rw-r--r--app/src/main/res/values-it/strings.xml47
-rw-r--r--app/src/main/res/values-it/strings_download.xml14
-rw-r--r--app/src/main/res/values-it/strings_errors.xml8
-rw-r--r--app/src/main/res/values-it/strings_intro.xml16
-rw-r--r--app/src/main/res/values-it/strings_play_store.xml17
-rw-r--r--app/src/main/res/values-it/strings_pref_appearance.xml20
-rw-r--r--app/src/main/res/values-it/strings_pref_behaviour.xml23
-rw-r--r--app/src/main/res/values-it/strings_pref_debug.xml9
-rw-r--r--app/src/main/res/values-it/strings_pref_experimental.xml12
-rw-r--r--app/src/main/res/values-it/strings_pref_feed.xml19
-rw-r--r--app/src/main/res/values-it/strings_pref_networks.xml6
-rw-r--r--app/src/main/res/values-it/strings_pref_notifications.xml27
-rw-r--r--app/src/main/res/values-it/strings_preferences.xml24
-rw-r--r--app/src/main/res/values-it/strings_web_context.xml10
-rw-r--r--app/src/main/res/values-ko/strings.xml49
-rw-r--r--app/src/main/res/values-ko/strings_download.xml14
-rw-r--r--app/src/main/res/values-ko/strings_errors.xml8
-rw-r--r--app/src/main/res/values-ko/strings_intro.xml16
-rw-r--r--app/src/main/res/values-ko/strings_play_store.xml17
-rw-r--r--app/src/main/res/values-ko/strings_pref_appearance.xml20
-rw-r--r--app/src/main/res/values-ko/strings_pref_behaviour.xml22
-rw-r--r--app/src/main/res/values-ko/strings_pref_debug.xml7
-rw-r--r--app/src/main/res/values-ko/strings_pref_experimental.xml12
-rw-r--r--app/src/main/res/values-ko/strings_pref_feed.xml19
-rw-r--r--app/src/main/res/values-ko/strings_pref_networks.xml6
-rw-r--r--app/src/main/res/values-ko/strings_pref_notifications.xml27
-rw-r--r--app/src/main/res/values-ko/strings_preferences.xml25
-rw-r--r--app/src/main/res/values-ko/strings_web_context.xml10
-rw-r--r--app/src/main/res/values-vi/strings.xml47
-rw-r--r--app/src/main/res/values-vi/strings_download.xml14
-rw-r--r--app/src/main/res/values-vi/strings_errors.xml8
-rw-r--r--app/src/main/res/values-vi/strings_intro.xml16
-rw-r--r--app/src/main/res/values-vi/strings_play_store.xml18
-rw-r--r--app/src/main/res/values-vi/strings_pref_appearance.xml20
-rw-r--r--app/src/main/res/values-vi/strings_pref_behaviour.xml22
-rw-r--r--app/src/main/res/values-vi/strings_pref_debug.xml8
-rw-r--r--app/src/main/res/values-vi/strings_pref_experimental.xml12
-rw-r--r--app/src/main/res/values-vi/strings_pref_feed.xml19
-rw-r--r--app/src/main/res/values-vi/strings_pref_networks.xml6
-rw-r--r--app/src/main/res/values-vi/strings_pref_notifications.xml27
-rw-r--r--app/src/main/res/values-vi/strings_preferences.xml24
-rw-r--r--app/src/main/res/values-vi/strings_web_context.xml10
-rw-r--r--app/src/main/res/values/strings_pref_debug.xml2
-rw-r--r--app/src/main/res/values/strings_web_context.xml6
-rw-r--r--app/src/main/res/xml/frost_changelog.xml6
-rw-r--r--docs/Changelog.md3
-rw-r--r--gradle.properties2
67 files changed, 822 insertions, 78 deletions
diff --git a/README.md b/README.md
index 427c661c..46d7b1e0 100644
--- a/README.md
+++ b/README.md
@@ -50,7 +50,9 @@ Special thanks to the following awesome people for translating significant porti
|----------|--------------|
| French | [Vincent Kulak](https://github.com/VonOx) &bull; [Jean-Philippe Gravel](https://crowdin.com/profile/wokija) |
| German | [Bushido1992](https://forum.xda-developers.com/member.php?u=5179246) &bull; [Marcel Soehnchen](https://crowdin.com/profile/msoehnchen) &bull; [3LD0mi HA](https://forum.xda-developers.com/member.php?u=5860523) |
+| Italian | [Bonnee](https://github.com/Bonnee) |
+| Korean | [잇스테이크](https://crowdin.com/profile/bexco2010) |
| Spanish | [Jahir Fiquitiva](https://jahirfiquitiva.me/) &bull; [Nefi Salazar](https://plus.google.com/u/0/105547968033551087431)|
-
+| Vietnamese | [Alienz](https://crowdin.com/profile/alienyd) |
The full activity stream for the translations can be found [here](https://crowdin.com/project/frost-for-facebook/activity_stream) \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
index 5de07b7a..8c70f5f2 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/StartActivity.kt
@@ -19,8 +19,7 @@ class StartActivity : KauBaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
FbCookie.switchBackUser {
- loadFbCookiesAsync {
- cookies ->
+ loadFbCookiesAsync { cookies ->
L.d("Cookies loaded at time ${System.currentTimeMillis()}", cookies.toString())
if (cookies.isNotEmpty())
launchNewTask(if (Prefs.userId != -1L) MainActivity::class.java else SelectorActivity::class.java, ArrayList(cookies))
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
index ab08981f..803a9690 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/BaseActivity.kt
@@ -3,10 +3,11 @@ package com.pitchedapps.frost.activities
import android.content.res.Configuration
import android.os.Bundle
import ca.allanwang.kau.internal.KauBaseActivity
+import ca.allanwang.kau.searchview.SearchViewHolder
import com.github.pwittchen.reactivenetwork.library.rx2.Connectivity
import com.github.pwittchen.reactivenetwork.library.rx2.ReactiveNetwork
import com.pitchedapps.frost.R
-import com.pitchedapps.frost.contracts.VideoViewerContract
+import com.pitchedapps.frost.contracts.VideoViewHolder
import com.pitchedapps.frost.utils.L
import com.pitchedapps.frost.utils.Prefs
import com.pitchedapps.frost.utils.materialDialogThemed
@@ -20,8 +21,8 @@ import io.reactivex.schedulers.Schedulers
*/
abstract class BaseActivity : KauBaseActivity() {
override fun onBackPressed() {
- if (this is MainActivity && searchView?.onBackPressed() == true) return
- if (this is VideoViewerContract && videoOnBackPress()) return
+ if (this is SearchViewHolder && searchViewOnBackPress()) return
+ if (this is VideoViewHolder && videoOnBackPress()) return
if (this is MainActivity && currentFragment.onBackPressed()) return
if (this !is WebOverlayActivityBase && isTaskRoot && Prefs.exitConfirmation) {
materialDialogThemed {
@@ -81,12 +82,12 @@ abstract class BaseActivity : KauBaseActivity() {
override fun onStop() {
- if (this is VideoViewerContract) videoOnStop()
+ if (this is VideoViewHolder) videoOnStop()
super.onStop()
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
- if (this is VideoViewerContract) videoViewer?.updateLocation()
+ if (this is VideoViewHolder) videoViewer?.updateLocation()
}
} \ No newline at end of file
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
index d4c30547..442d98d8 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/MainActivity.kt
@@ -27,6 +27,7 @@ import android.webkit.WebChromeClient
import android.widget.FrameLayout
import ca.allanwang.kau.searchview.SearchItem
import ca.allanwang.kau.searchview.SearchView
+import ca.allanwang.kau.searchview.SearchViewHolder
import ca.allanwang.kau.searchview.bindSearchView
import ca.allanwang.kau.utils.*
import co.zsmb.materialdrawerkt.builders.Builder
@@ -47,7 +48,7 @@ import com.pitchedapps.frost.R
import com.pitchedapps.frost.contracts.ActivityWebContract
import com.pitchedapps.frost.contracts.FileChooserContract
import com.pitchedapps.frost.contracts.FileChooserDelegate
-import com.pitchedapps.frost.contracts.VideoViewerContract
+import com.pitchedapps.frost.contracts.VideoViewHolder
import com.pitchedapps.frost.dbflow.loadFbCookie
import com.pitchedapps.frost.dbflow.loadFbTabs
import com.pitchedapps.frost.enums.MainActivityLayout
@@ -76,7 +77,7 @@ import java.util.concurrent.TimeUnit
class MainActivity : BaseActivity(),
ActivityWebContract, FileChooserContract by FileChooserDelegate(),
- VideoViewerContract,
+ VideoViewHolder, SearchViewHolder,
FrostBilling by IabMain() {
lateinit var adapter: SectionsPagerAdapter
@@ -99,7 +100,7 @@ class MainActivity : BaseActivity(),
L.i("First fragment load has finished")
field = value
}
- var searchView: SearchView? = null
+ override var searchView: SearchView? = null
private val searchViewCache = mutableMapOf<String, List<SearchItem>>()
companion object {
@@ -340,27 +341,29 @@ class MainActivity : BaseActivity(),
setMenuIcons(menu, Prefs.iconColor,
R.id.action_settings to GoogleMaterial.Icon.gmd_settings,
R.id.action_search to GoogleMaterial.Icon.gmd_search)
- if (searchView == null) searchView = bindSearchView(menu, R.id.action_search, Prefs.iconColor) {
- textCallback = { query, _ ->
- val results = searchViewCache[query]
- if (results != null)
- runOnUiThread { searchView?.results = results }
- else
- doAsync {
- val data = SearchParser.query(query) ?: return@doAsync
- val items = data.map { SearchItem(it.href, it.title, it.description) }.toMutableList()
- if (items.isNotEmpty())
- items.add(SearchItem("${FbItem._SEARCH.url}?q=$query", string(R.string.show_all_results), iicon = null))
- searchViewCache.put(query, items)
- uiThread { searchView?.results = items }
- }
+ searchViewBindIfNull {
+ bindSearchView(menu, R.id.action_search, Prefs.iconColor) {
+ textCallback = { query, _ ->
+ val results = searchViewCache[query]
+ if (results != null)
+ runOnUiThread { searchView?.results = results }
+ else
+ doAsync {
+ val data = SearchParser.query(query) ?: return@doAsync
+ val items = data.map { SearchItem(it.href, it.title, it.description) }.toMutableList()
+ if (items.isNotEmpty())
+ items.add(SearchItem("${FbItem._SEARCH.url}?q=$query", string(R.string.show_all_results), iicon = null))
+ searchViewCache.put(query, items)
+ uiThread { searchView?.results = items }
+ }
+ }
+ textDebounceInterval = 300
+ searchCallback = { query, _ -> launchWebOverlay("${FbItem._SEARCH.url}/?q=$query"); true }
+ closeListener = { _ -> searchViewCache.clear() }
+ foregroundColor = Prefs.textColor
+ backgroundColor = Prefs.bgColor.withMinAlpha(200)
+ onItemClick = { _, key, _, _ -> launchWebOverlay(key) }
}
- textDebounceInterval = 300
- searchCallback = { query, _ -> launchWebOverlay("${FbItem._SEARCH.url}/?q=$query"); true }
- closeListener = { _ -> searchViewCache.clear() }
- foregroundColor = Prefs.textColor
- backgroundColor = Prefs.bgColor.withMinAlpha(200)
- onItemClick = { _, key, _, _ -> launchWebOverlay(key) }
}
return true
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
index e20cfbf2..ce4bffb5 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/activities/WebOverlayActivity.kt
@@ -12,7 +12,6 @@ import android.view.MenuItem
import android.webkit.ValueCallback
import android.webkit.WebChromeClient
import android.widget.FrameLayout
-import ca.allanwang.kau.internal.KauBaseActivity
import ca.allanwang.kau.swipe.kauSwipeOnCreate
import ca.allanwang.kau.swipe.kauSwipeOnDestroy
import ca.allanwang.kau.utils.*
@@ -22,7 +21,7 @@ import com.pitchedapps.frost.R
import com.pitchedapps.frost.contracts.ActivityWebContract
import com.pitchedapps.frost.contracts.FileChooserContract
import com.pitchedapps.frost.contracts.FileChooserDelegate
-import com.pitchedapps.frost.contracts.VideoViewerContract
+import com.pitchedapps.frost.contracts.VideoViewHolder
import com.pitchedapps.frost.enums.OverlayContext
import com.pitchedapps.frost.facebook.*
import com.pitchedapps.frost.utils.*
@@ -100,7 +99,7 @@ class WebOverlayBasicActivity : WebOverlayActivityBase(true)
class WebOverlayActivity : WebOverlayActivityBase(false)
open class WebOverlayActivityBase(private val forceBasicAgent: Boolean) : BaseActivity(),
- ActivityWebContract, VideoViewerContract, FileChooserContract by FileChooserDelegate() {
+ ActivityWebContract, VideoViewHolder, FileChooserContract by FileChooserDelegate() {
override val frameWrapper: FrameLayout by bindView(R.id.frame_wrapper)
val toolbar: Toolbar by bindView(R.id.overlay_toolbar)
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt b/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewHolder.kt
index 2e6ad04f..6440cbb2 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewerContract.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/contracts/VideoViewHolder.kt
@@ -11,7 +11,7 @@ import com.pitchedapps.frost.views.FrostVideoViewer
/**
* Created by Allan Wang on 2017-11-10.
*/
-interface VideoViewerContract : FrameWrapper, FrostVideoContainerContract {
+interface VideoViewHolder : FrameWrapper, FrostVideoContainerContract {
var videoViewer: FrostVideoViewer?
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt
index c68c9420..7fc56af0 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/dbflow/FbTabsDb.kt
@@ -1,6 +1,5 @@
package com.pitchedapps.frost.dbflow
-import android.content.Context
import com.pitchedapps.frost.facebook.FbItem
import com.pitchedapps.frost.facebook.defaultTabs
import com.pitchedapps.frost.utils.L
@@ -15,7 +14,7 @@ import com.raizlabs.android.dbflow.structure.BaseModel
* Created by Allan Wang on 2017-05-30.
*/
-@Database( version = FbTabsDb.VERSION)
+@Database(version = FbTabsDb.VERSION)
object FbTabsDb {
const val NAME = "FrostTabs"
const val VERSION = 1
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt
index 37f93987..f91d77ea 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/intro/IntroFragmentTheme.kt
@@ -37,8 +37,7 @@ class IntroFragmentTheme : BaseIntroFragment(R.layout.intro_theme) {
}
private fun View.setThemeClick(theme: Theme) {
- setOnClickListener {
- v ->
+ setOnClickListener { v ->
Prefs.theme = theme.ordinal
(activity as IntroActivity).apply {
ripple.ripple(Prefs.bgColor, v.x + v.pivotX, v.y + v.pivotY)
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt
index 9a2eddb6..382b2dad 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Appearance.kt
@@ -23,15 +23,13 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
header(R.string.theme_customization)
text(R.string.theme, { Prefs.theme }, { Prefs.theme = it }) {
- onClick = {
- _, _, item ->
+ onClick = { _, _, item ->
materialDialogThemed {
title(R.string.theme)
items(Theme.values()
.map { if (it == Theme.CUSTOM && !IS_FROST_PRO) R.string.custom_pro else it.textRes }
.map { string(it) })
- itemsCallbackSingleChoice(item.pref) {
- _, _, which, _ ->
+ itemsCallbackSingleChoice(item.pref) { _, _, which, _ ->
if (item.pref != which) {
if (which == Theme.CUSTOM.ordinal && !IS_FROST_PRO) {
purchasePro()
@@ -121,13 +119,11 @@ fun SettingsActivity.getAppearancePrefs(): KPrefAdapterBuilder.() -> Unit = {
text(R.string.main_activity_layout, { Prefs.mainActivityLayoutType }, { Prefs.mainActivityLayoutType = it }) {
textGetter = { string(Prefs.mainActivityLayout.titleRes) }
- onClick = {
- _, _, item ->
+ onClick = { _, _, item ->
materialDialogThemed {
title(R.string.set_main_activity_layout)
items(MainActivityLayout.values.map { string(it.titleRes) })
- itemsCallbackSingleChoice(item.pref) {
- _, _, which, _ ->
+ itemsCallbackSingleChoice(item.pref) { _, _, which, _ ->
if (item.pref != which) {
item.pref = which
shouldRestartMain()
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt
index a1b459fb..aad2fe9a 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Experimental.kt
@@ -25,7 +25,6 @@ fun SettingsActivity.getExperimentalPrefs(): KPrefAdapterBuilder.() -> Unit = {
// Experimental content starts here ------------------
-
// Experimental content ends here --------------------
checkbox(R.string.verbose_logging, { Prefs.verboseLogging }, {
@@ -40,8 +39,7 @@ fun SettingsActivity.getExperimentalPrefs(): KPrefAdapterBuilder.() -> Unit = {
plainText(R.string.restart_frost) {
descRes = R.string.restart_frost_desc
- onClick = {
- _, _, _ ->
+ onClick = { _, _, _ ->
setFrostResult(MainActivity.REQUEST_RESTART_APPLICATION)
finish()
true
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/AdBlocker.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/AdBlocker.kt
index c814ad4d..6f137519 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/AdBlocker.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/AdBlocker.kt
@@ -10,6 +10,7 @@ import org.jetbrains.anko.doAsync
* Created by Allan Wang on 2017-09-24.
*/
object FrostAdBlock : AdBlocker("adblock.txt")
+
object FrostPglAdBlock : AdBlocker("pgl.yoyo.org.txt")
/**
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt
index a3812337..cafba223 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Showcase.kt
@@ -18,7 +18,7 @@ object Showcase : KPref() {
//not a showcase but cannot be in the same file as Prefs
var experimentalDefault: Boolean by kpref("experimental_by_default", false)
-
+
override fun deleteKeys() = arrayOf("shown_release")
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt
index 71ceb4ca..9941c90c 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostJSI.kt
@@ -4,7 +4,7 @@ import android.content.Context
import android.support.v4.widget.SwipeRefreshLayout
import android.webkit.JavascriptInterface
import com.pitchedapps.frost.activities.MainActivity
-import com.pitchedapps.frost.contracts.VideoViewerContract
+import com.pitchedapps.frost.contracts.VideoViewHolder
import com.pitchedapps.frost.dbflow.CookieModel
import com.pitchedapps.frost.facebook.FbCookie
import com.pitchedapps.frost.utils.*
@@ -39,8 +39,10 @@ class FrostJSI(val webView: FrostWebViewCore) {
@JavascriptInterface
fun loadVideo(url: String?, isGif: Boolean) {
if (url != null)
- webView.post { (context as? VideoViewerContract)?.showVideo(url, isGif)
- ?: L.d("Could not load video; contract not implemented") }
+ webView.post {
+ (context as? VideoViewHolder)?.showVideo(url, isGif)
+ ?: L.d("Could not load video; contract not implemented")
+ }
}
@JavascriptInterface
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt
index 334ef51b..ca88a23e 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt
@@ -3,8 +3,7 @@ package com.pitchedapps.frost.web
import com.pitchedapps.frost.activities.WebOverlayActivity
import com.pitchedapps.frost.activities.WebOverlayActivityBase
import com.pitchedapps.frost.activities.WebOverlayBasicActivity
-import com.pitchedapps.frost.contracts.VideoViewerContract
-import com.pitchedapps.frost.facebook.FB_URL_BASE
+import com.pitchedapps.frost.contracts.VideoViewHolder
import com.pitchedapps.frost.facebook.FbItem
import com.pitchedapps.frost.facebook.USER_AGENT_BASIC
import com.pitchedapps.frost.facebook.formattedFbUrl
@@ -25,9 +24,9 @@ import com.pitchedapps.frost.utils.*
*/
fun FrostWebViewCore.requestWebOverlay(url: String): Boolean {
if (url == "#") return false
- if (url.isVideoUrl && context is VideoViewerContract) {
+ if (url.isVideoUrl && context is VideoViewHolder) {
L.i("Found video", url)
- (context as VideoViewerContract).showVideo(url)
+ (context as VideoViewHolder).showVideo(url)
return true
}
if (!Prefs.overlayEnabled) return false
diff --git a/app/src/main/res/values-de/strings_pref_debug.xml b/app/src/main/res/values-de/strings_pref_debug.xml
index 5989e81a..f8ca9f82 100644
--- a/app/src/main/res/values-de/strings_pref_debug.xml
+++ b/app/src/main/res/values-de/strings_pref_debug.xml
@@ -4,5 +4,4 @@
<string name="debug_toast_enabled">Debugging ist aktiviert! Geh zurück zu den Einstellungen.</string>
<string name="debug_disclaimer_info">Obwohl die meisten privaten Inhalte automatisch in dem Bericht entfernt werden, können einige sensible Informationen noch immer enthalten sein. Bitte schaue dir vor dem senden den debug Bericht an. Klicke eine der folgenden Optionen, dann wird eine e-Mail mit deinen Daten erstellt. </string>
<string name="debug_incomplete">Unvollständiger Bericht</string>
- <string name="debug_report_email_title">Frost für Facebook: Debug Bericht</string>
</resources>
diff --git a/app/src/main/res/values-de/strings_web_context.xml b/app/src/main/res/values-de/strings_web_context.xml
index d4346ec8..d5201101 100644
--- a/app/src/main/res/values-de/strings_web_context.xml
+++ b/app/src/main/res/values-de/strings_web_context.xml
@@ -3,11 +3,8 @@
<resources>
<string name="share_link">Link teilen</string>
<string name="debug_link">Link zu debuggen</string>
- <string name="debug_link_subject">Frost für Facebook: Debug Link</string>
- <string name="debug_link_content">Schreiben Sie hier. Bitte beachten Sie, dass Ihr Link private Informationen enthalten kann, aber ich werde nicht in der Lage sein sie zu sehen, so lange er nicht öffentlich ist. Der Url wird mir beim Debuggen helfen.</string>
<string name="debug_link_desc">Wenn der Link nicht sofort lädt können sie auch eine E-Mail an mich senden um mir beim debuggen zu helfen. Beim Klick auf Okay wir die E-Mail App geöffnet</string>
<string name="open_link">Öffne Link</string>
<string name="copy_link">Link kopieren</string>
<string name="copy_text">Kopiere Text</string>
- <string name="debug_image_link_subject">Frost für Facebook: Bild Debugging Link</string>
</resources>
diff --git a/app/src/main/res/values-es/strings_pref_debug.xml b/app/src/main/res/values-es/strings_pref_debug.xml
index 03ae4d1a..177853d1 100644
--- a/app/src/main/res/values-es/strings_pref_debug.xml
+++ b/app/src/main/res/values-es/strings_pref_debug.xml
@@ -4,5 +4,4 @@
<string name="debug_toast_enabled">Sección de Depuración habilitada! Vuelve al menú de configuración.</string>
<string name="debug_disclaimer_info">Aunque la mayor parte del contenido privado se elimina en el reporte, algunos datos sencibles pueden seguir siendo visibles.\nPor favor, echa un vistazo al informe de errores antes de enviarlo.\n\nAl hacer clic en una de las siguientes opciones, se preparará una respuesta por correo electrónico con los datos de la página web. </string>
<string name="debug_incomplete">Reporte incompleto</string>
- <string name="debug_report_email_title">Frost for Facebook: Debug report</string>
</resources>
diff --git a/app/src/main/res/values-es/strings_web_context.xml b/app/src/main/res/values-es/strings_web_context.xml
index debd2f80..3e61b2b9 100644
--- a/app/src/main/res/values-es/strings_web_context.xml
+++ b/app/src/main/res/values-es/strings_web_context.xml
@@ -3,11 +3,8 @@
<resources>
<string name="share_link">Compartir enlace</string>
<string name="debug_link">Depurar enlace</string>
- <string name="debug_link_subject">Frost for Facebook: Link Debug</string>
- <string name="debug_link_content">Escribe aquí. Ten en cuenta que el enlace puede contener información privada, pero no podré verla puesto que la publicación no es pública. Sin embargo, la url aún podrá ser depurada.</string>
<string name="debug_link_desc">Si un enlace no carga correctamente, puedes enviarme un correo electrónico para brindarte ayuda. Presiona okay para abrir una solicitud de correo electrónico</string>
<string name="open_link">Abrir enlace</string>
<string name="copy_link">Copiar enlace</string>
<string name="copy_text">Copiar texto</string>
- <string name="debug_image_link_subject">Frost for Facebook: Image Link Debug</string>
</resources>
diff --git a/app/src/main/res/values-fr/strings_pref_debug.xml b/app/src/main/res/values-fr/strings_pref_debug.xml
index 88af282e..542c2ebe 100644
--- a/app/src/main/res/values-fr/strings_pref_debug.xml
+++ b/app/src/main/res/values-fr/strings_pref_debug.xml
@@ -4,5 +4,4 @@
<string name="debug_toast_enabled">Section de débogage est activé ! Revenir aux réglages.</string>
<string name="debug_disclaimer_info">Bien que le contenu privé est automatiquement supprimé dans le rapport, certaines informations sensibles peuvent être encore visibles. \nVeuillez donc vérifier le rapport de débogage avant de l’envoyer. \n\nChoisir une des options ci-dessous vous préparera un courriel avec les données de la page web. </string>
<string name="debug_incomplete">Rapport incomplet</string>
- <string name="debug_report_email_title">Frost pour Facebook : Rapport de Débogage</string>
</resources>
diff --git a/app/src/main/res/values-fr/strings_web_context.xml b/app/src/main/res/values-fr/strings_web_context.xml
index ddfdcb22..cb075069 100644
--- a/app/src/main/res/values-fr/strings_web_context.xml
+++ b/app/src/main/res/values-fr/strings_web_context.xml
@@ -3,11 +3,8 @@
<resources>
<string name="share_link">Partager un lien</string>
<string name="debug_link">Déboguer le lien</string>
- <string name="debug_link_subject">Frost pour Facebook: Déboguage de lien</string>
- <string name="debug_link_content">Écrivez ici. Notez que votre lien peut contenir de l\'information privé, mais je ne pourrai pas le voir étant donné que la publication n\'est pas publique. Le url aidera tout de même au débogage.</string>
<string name="debug_link_desc">Si un lien ne charge pas correctement, vous pouvez m\'envoyer un courriel pour que je puisse aider à le déboguer. Cliquer sur okay ouvrira une demande de courriel</string>
<string name="open_link">Ouvrir un lien</string>
<string name="copy_link">Copier le lien</string>
<string name="copy_text">Copier le texte</string>
- <string name="debug_image_link_subject">Frost pour Facebook: Déboguage de lien d\'image</string>
</resources>
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
new file mode 100644
index 00000000..6e604e04
--- /dev/null
+++ b/app/src/main/res/values-it/strings.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <!--Tabs-->
+ <string name="feed">Notizie</string>
+ <string name="most_recent">Più recenti</string>
+ <string name="top_stories">Migliori Storie</string>
+ <string name="profile">Profilo</string>
+ <string name="bookmarks">Segnalibri</string>
+ <string name="events">Eventi</string>
+ <string name="friends">Amici</string>
+ <string name="messages">Messaggi</string>
+ <string name="notifications">Notifiche</string>
+ <string name="activity_log">Registro Attività</string>
+ <string name="pages">Pagine</string>
+ <string name="groups">Gruppi</string>
+ <string name="saved">Salvati</string>
+ <string name="birthdays">Compleanni</string>
+ <string name="chat">Chat</string>
+ <string name="photos">Foto</string>
+ <string name="notes">Note</string>
+ <string name="on_this_day">Accadde Oggi</string>
+ <!--Login-->
+ <string name="loading_account">Preparando l\'occorrente…</string>
+ <string name="welcome">Benvenuto %s</string>
+ <string name="select_facebook_account">Scegli l\'Account Facebook</string>
+ <string name="account_not_found">L\'account non è presente nel database</string>
+ <string name="frost_notifications">Notifiche di Frost</string>
+ <string name="requires_custom_theme">Richiede un tema personalizzato</string>
+ <string name="subject">Soggetto</string>
+ <string name="share">Condividi</string>
+ <string name="web_overlay_swipe_hint">Scorri a destra per tornare alla schermata precedente.</string>
+ <string name="profile_picture">Immagine Profilo</string>
+ <string name="new_message">Nuovo Messaggio</string>
+ <string name="no_text">Nessun testo</string>
+ <string name="show_all_results">Mostra tutti i risultati</string>
+ <!--About-->
+ <string name="frost_description">Frost è un\'alternativa completamente personalizzabile e completamente funzionante all\'app ufficiale di Facebook; Scritta da zero e fieramente open source.</string>
+ <string name="faq_title">Frost FAQ</string>
+ <!--HTML Extractor-->
+ <string name="html_extraction_error">Sì è verificato un errore nell\'estrazione del codice html.</string>
+ <string name="html_extraction_cancelled">La richiesta è stata cancellata.</string>
+ <string name="html_extraction_timeout">La richiesta è scaduta.</string>
+ <string name="file_chooser_not_found">Gestore file non trovato</string>
+ <string name="top_bar">Barra in Superiore</string>
+ <string name="bottom_bar">Barra Inferiore</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_download.xml b/app/src/main/res/values-it/strings_download.xml
new file mode 100644
index 00000000..5c23fc78
--- /dev/null
+++ b/app/src/main/res/values-it/strings_download.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="pick_image">Scegli Immagine</string>
+ <string name="download">Download</string>
+ <string name="downloading">Download in corso…</string>
+ <string name="image_download_success">Immagine scaricata</string>
+ <string name="image_download_fail">Download immagine fallito</string>
+ <string name="image_share_failed">Condivisione immagine fallita</string>
+ <string name="downloading_video">Video in Download</string>
+ <string name="downloaded_video">Video Scaricato</string>
+ <string name="downloading_file">Download in corso</string>
+ <string name="downloaded_file">File scaricato</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_errors.xml b/app/src/main/res/values-it/strings_errors.xml
new file mode 100644
index 00000000..3dccb761
--- /dev/null
+++ b/app/src/main/res/values-it/strings_errors.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="null_url_overlay">Ricevuto url vuoto; uscita</string>
+ <string name="bad_image_overlay">Impossibile caricare l\'url correttamente. Vuoi segnalarlo?</string>
+ <string name="invalid_share_url">Url per la condivisione non valido</string>
+ <string name="invalid_share_url_desc">Hai selezionato un blocco di testo che non è un url. Il testo è stato copiato negli appunti in modo da poterlo condividere manualmente.</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_intro.xml b/app/src/main/res/values-it/strings_intro.xml
new file mode 100644
index 00000000..4fab37a9
--- /dev/null
+++ b/app/src/main/res/values-it/strings_intro.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="skip">Salta</string>
+ <string name="intro_welcome_to_frost">Benvenuto in Frost</string>
+ <string name="intro_slide_to_continue">Scorri per continuare</string>
+ <string name="intro_select_theme">Seleziona un tema</string>
+ <string name="intro_multiple_accounts">Account multipli</string>
+ <string name="intro_multiple_accounts_desc">Aggiungi e cambia account direttamente dalla barra di navigazione.\nPremi sull\'avatar per andare sul tuo profilo.</string>
+ <string name="intro_easy_navigation">Navigazione Facile</string>
+ <string name="intro_easy_navigation_desc">Scorri attraverso le visualizzazioni, e tocca l\'icona della scheda per tornare in cima.\nTocca l\'icona di nuovo per ricaricare la pagina.</string>
+ <string name="intro_context_aware">Consapevole del Contenuto</string>
+ <string name="intro_context_aware_desc">Premi a lungo sui link per copiarli e condividerli.\nPremi a lungo sulle immagini per ingrandirle e scaricarle.\nPremi a lungo sulle schede per lo scroll orizzontale.</string>
+ <string name="intro_end">Iniziamo!</string>
+ <string name="intro_tap_to_exit">Tocca ovunque per continuare</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_play_store.xml b/app/src/main/res/values-it/strings_play_store.xml
new file mode 100644
index 00000000..4ac14487
--- /dev/null
+++ b/app/src/main/res/values-it/strings_play_store.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="found_pro">Frost Pro Trovato!</string>
+ <string name="found_pro_desc">Sembra che tu abbia Frost Pro! Ricaricheremo l\'app così che possa sfruttare fantastiche funzioni!</string>
+ <string name="play_purchased_pro">Grazie per il tuo supporto! Goditi tutte le funzioni di Frost.\n\nSe ti piace l\'app, per favore vota e supporta questo progetto open source.\n\nSe hai qualche commento, non esitare e contattami!</string>
+ <string name="play_store_not_pro">Sembra che tu sia un utente Pro, ma non siamo riusciti a trovare le tue informazioni sull\'acquisto. Se l\'errore persiste per favore prova a pulire la cache del Play Store e reinstallare l\'app.</string>
+ <string name="play_store_unsupported">Sembra che questa versione dell\'app non sia in grado di completare l\'acquisto. Reinstalla l\'app dal Play Store se l\'errore persiste.\nSe vorresti donare senza ricevere funzionalità aggiuntive, puoi farlo tramite PayPal.</string>
+ <string name="play_thank_you">Grazie!</string>
+ <string name="purchases_restored">Acquisto Ripristinato</string>
+ <string name="purchases_restored_with_pro">Frost Pro è stato ripristinato. Goditi le funzioni!</string>
+ <string name="purchases_restored_without_pro">Sembra che tu non abbia la versione pro. Se pensi che sia un errore, contattami ed allega la tua ricevuta di pagamento.</string>
+ <string name="restoring_purchases">Ripristino acquisti…</string>
+ <string name="custom_pro">Personalizzato [Pro]</string>
+ <string name="uh_oh">Uh Oh</string>
+ <string name="reload">Ricarica</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_appearance.xml b/app/src/main/res/values-it/strings_pref_appearance.xml
new file mode 100644
index 00000000..e86fd73a
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_appearance.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="theme_customization">Personalizzazione del Tema</string>
+ <string name="theme">Tema</string>
+ <string name="text_color">Colore del testo</string>
+ <string name="accent_color">Colore Secondario</string>
+ <string name="background_color">Colore di Sfondo</string>
+ <string name="header_color">Colore intestazione</string>
+ <string name="icon_color">Colore dell\'Icona</string>
+ <string name="global_customization">Personalizzazione Globale</string>
+ <string name="main_activity_layout">Layout Pagina Principale</string>
+ <string name="set_main_activity_layout">Imposta Layout</string>
+ <string name="rounded_icons">Icone Arrotondate</string>
+ <string name="rounded_icons_desc">Le immagini profilo e le conversazioni di gruppo saranno arrotondate</string>
+ <string name="tint_nav">Barra di Navigazione in tinta</string>
+ <string name="tint_nav_desc">La barra di navigazione sarà dello stesso colore dell\'intestazione</string>
+ <string name="web_text_scaling">Scala del Testo</string>
+ <string name="web_text_scaling_desc">Testo di Esempio; Tieni premuta la percentuale per reimpostare.</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_behaviour.xml b/app/src/main/res/values-it/strings_pref_behaviour.xml
new file mode 100644
index 00000000..90e32d29
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_behaviour.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="fancy_animations">Animazioni Avanzate</string>
+ <string name="fancy_animations_desc">Mostra le pagine web usando modulazioni e transizioni animate</string>
+ <string name="overlay_swipe">Abilita Sovrapposizioni</string>
+ <string name="overlay_swipe_desc">La maggior parte dei link si aprirà in sovrapposizione così potrai tornare facilmente alla schermata di partenza.
+Si noti che potrebbe causare un caricamento leggermente più lungo dovuto al fatto che l\'intera pagina deve essere ricaricata.</string>
+ <string name="overlay_full_screen_swipe">Sovrapposizione a Tutto Schermo Scorri per Annullare</string>
+ <string name="overlay_full_screen_swipe_desc">Scorri a destra da qualsiasi punto di una pagina web in sovrapposizione per chiudere il browser. Se disabilitato, funzionerà solo scorrendo dal bordo sinistro.</string>
+ <string name="open_links_in_default">Apri i Link nell\'Applicazione di Default</string>
+ <string name="open_links_in_default_desc">Quando Possibile, apri i link nell\'applicazione di default piuttosto che attraverso le sovrapposizioni di Frost</string>
+ <string name="viewpager_swipe">Scorri tra Viewpager</string>
+ <string name="viewpager_swipe_desc">Permette di scorrere sulle pagine delle schermate principali per cambiare sezione.</string>
+ <string name="search_bar">Barra di Ricerca</string>
+ <string name="search_bar_desc">Abilita la barra di ricerca al posto di un pannello ricerca sovrapposto</string>
+ <string name="force_message_bottom">Salta all\'ultimo messaggio</string>
+ <string name="force_message_bottom_desc">Quando carichi una conversazione, si attiva uno scorrimento fino al fondo della pagina piuttosto che caricarla com\'è.</string>
+ <string name="exit_confirmation">Conferma Uscita</string>
+ <string name="exit_confirmation_desc">Mostra un avviso prima di uscire dall\'applicazione</string>
+ <string name="analytics">Statistiche</string>
+ <string name="analytics_desc">Abilita le statistiche anonime per migliorare l\'applicazione. Nessun informazione personale sarà mai pubblicata.</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_debug.xml b/app/src/main/res/values-it/strings_pref_debug.xml
new file mode 100644
index 00000000..7b1e1371
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_debug.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="debug_toast_enabled">La sezione debugging è attiva! Torna indietro alle impostazioni.</string>
+ <string name="debug_disclaimer_info">Nonostante la maggior parte del contenuto privato sia stato rimosso automaticamente dal bug report, alcune informazioni personali potrebbero essere ancora visibili.
+ \nPer favore dai un\'occhiata al report prima di inviarlo.
+ \nCliccando su una delle opzioni sottostanti preparerà un\'email con i dati della schermata.</string>
+ <string name="debug_incomplete">Report incompleto</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_experimental.xml b/app/src/main/res/values-it/strings_pref_experimental.xml
new file mode 100644
index 00000000..884a67f9
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_experimental.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="experimental_disclaimer">Disclaimer</string>
+ <string name="experimental_disclaimer_info">Le funzioni sperimentali potrebbero essere instabili e potrebbero non giungere mai al rilascio. Usale a tuo rischio, manda il tuo feedback e sentiti libero di disabilitarle se non funzionano bene.</string>
+ <string name="experimental_by_default">Experimental di Default</string>
+ <string name="experimental_by_default_desc">Ti senti temerario o vuoi solo aiutarci con il debugging? Attivandolo abiliterai le funzioni sperimentali di default.</string>
+ <string name="verbose_logging">Log Dettagliato</string>
+ <string name="verbose_logging_desc">Abilita log dettagliati per aiutare con il report dei crash. Il log verrà mandato solamente quando verrà riscontrato un errore, quindi ricrea la situazione per evidenziare la dev. Verrà automaticamente disattivato se si riavvia l\'applicazione.</string>
+ <string name="restart_frost">Riavvia Frost</string>
+ <string name="restart_frost_desc">L\'analisi dei crash sarà inviata solamente quando avviene un crash oppure se l\'errore provoca il riavvio dell\'applicazione. Cliccando qui l\'applicazione sarà riavvia e verrà rimosso ogni problema riscontrato finora.</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_feed.xml b/app/src/main/res/values-it/strings_pref_feed.xml
new file mode 100644
index 00000000..0a7c992e
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_feed.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="newsfeed_sort">Ordine della Sezione Notizie</string>
+ <string name="newsfeed_sort_desc">Definisce l\'ordine in cui sono mostrati i post</string>
+ <string name="aggressive_recents">Recenti Aggressivi</string>
+ <string name="aggressive_recents_desc">Filtra ulteriori post vecchi dalla sezione originale più recenti di Facebook. Disabilita se il tuo feed è vuoto.</string>
+ <string name="autoplay_settings">Impostazioni Video Autoplay</string>
+ <string name="autoplay_settings_desc">Abilita/disabilita l\'autoplay dei video per un periodo o sempre.\nQueste impostazioni sono indipendenti da quelle per desktop.</string>
+ <string name="composer">Compositore di Stato</string>
+ <string name="composer_desc">Mostra la casella per comporre uno stato nelle Notizie</string>
+ <string name="pro_features">Funzionalità Pro</string>
+ <string name="suggested_friends">Amici Suggeriti</string>
+ <string name="suggested_friends_desc">Mostra \"Persone Che Potresti Conoscere\" nel feed</string>
+ <string name="suggested_groups">Gruppi Suggeriti</string>
+ <string name="suggested_groups_desc">Mostra \"Gruppi Suggeriti\" nel feed</string>
+ <string name="facebook_ads">Pubblicità Facebook</string>
+ <string name="facebook_ads_desc">Mostra le pubblicità native di Facebook</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_networks.xml b/app/src/main/res/values-it/strings_pref_networks.xml
new file mode 100644
index 00000000..cf37a64c
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_networks.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="network_media_on_metered">Disabilita le immagini su reti a consumo.</string>
+ <string name="network_media_on_metered_desc">Se rilevata una connessione a consumo, Frost non caricherà nessun immagine o video.</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_pref_notifications.xml b/app/src/main/res/values-it/strings_pref_notifications.xml
new file mode 100644
index 00000000..80ef2b5b
--- /dev/null
+++ b/app/src/main/res/values-it/strings_pref_notifications.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="notification_frequency">Frequenza Notifiche</string>
+ <string name="no_notifications">Nessuna Notifica</string>
+ <string name="notification_keywords">Parole Chiave</string>
+ <string name="notification_keywords_desc">Non mostrare notifiche contenenti una qualunque di queste parole chiave.</string>
+ <string name="add_keyword">Aggiungi parola chiave</string>
+ <string name="hint_keyword">Inserisci parola chiave e premi +</string>
+ <string name="empty_keyword">Parola Chiave Vuota</string>
+ <string name="notification_all_accounts">Notifica da tutti gli account</string>
+ <string name="notification_all_accounts_desc">Ricevi notifiche per ogni account registrato. Disattivando questa opzione riceverai notifiche solo dall\'account selezionato.</string>
+ <string name="notification_messages">Attiva notifiche tramite messaggio</string>
+ <string name="notification_messages_desc">Ricevi notifiche istantanee di messaggi per il tuo account.</string>
+ <string name="notification_messages_all_accounts">Notifica messaggi da tutti gli account</string>
+ <string name="notification_messages_all_accounts_desc">Ricevi notifiche di messaggio immediate da tutti gli account</string>
+ <string name="notification_fetch_now">Recupera le notifiche ora</string>
+ <string name="notification_fetch_now_desc">Innesca il recupero delle notifiche una volta sola. Nota che il recupero di messaggi istantanei richiede tempo.</string>
+ <string name="notification_fetch_success">Recupero le notifiche…</string>
+ <string name="notification_fetch_fail">Impossibile recuperare le notifiche</string>
+ <string name="notification_sound">Suono di notifica</string>
+ <string name="notification_ringtone">Suoneria della Notifica</string>
+ <string name="message_ringtone">Suoneria dei Messaggi</string>
+ <string name="select_ringtone">Seleziona Suoneria</string>
+ <string name="notification_vibrate">Vibrazione Notifiche</string>
+ <string name="notification_lights">Luce di Notifica</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_preferences.xml b/app/src/main/res/values-it/strings_preferences.xml
new file mode 100644
index 00000000..98d8e133
--- /dev/null
+++ b/app/src/main/res/values-it/strings_preferences.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="appearance">Apparenza</string>
+ <string name="appearance_desc">Temi, oggetti da mostrare, etc</string>
+ <string name="notifications_desc">Frequenza, filtri, suonerie, etc</string>
+ <string name="newsfeed">News Feed</string>
+ <string name="newsfeed_desc">Stabilisci quali item appaiono nelle News Feed</string>
+ <string name="behaviour">Comportamento</string>
+ <string name="behaviour_desc">Stabilisci come l\'applicazione agisce in certe impostazioni</string>
+ <string name="network">Rete</string>
+ <string name="network_desc">Definisci le opzioni che influiscono sulle reti a consumo</string>
+ <string name="experimental">Sperimentali</string>
+ <string name="experimental_desc">Abilita accesso a delle funzionalità potenzialmente pericolose</string>
+ <string name="get_pro">Acquista Frost Pro</string>
+ <string name="get_pro_desc">Acquista o ripristina versione pro e sblocca tutte le funzionalità di Frost incluso rimozione annunci, temi personalizzati, configurazioni complete e molto altro ancora!</string>
+ <string name="about_frost">Riguardo Frost per Facebook</string>
+ <string name="about_frost_desc">Versione, Credite e FAQ</string>
+ <string name="help_translate">Aiuta a Tradurre</string>
+ <string name="help_translate_desc">Frost è tradotto attraverso la crowdin. Contribuisci, se lo vuoi nella tua lingua!</string>
+ <string name="debug_frost">Frost debugger</string>
+ <string name="debug_frost_desc">Invia dati html per aiutare con il debug.</string>
+ <string name="replay_intro">Riesegui introduzione</string>
+</resources>
diff --git a/app/src/main/res/values-it/strings_web_context.xml b/app/src/main/res/values-it/strings_web_context.xml
new file mode 100644
index 00000000..1925016e
--- /dev/null
+++ b/app/src/main/res/values-it/strings_web_context.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="share_link">Condividi link</string>
+ <string name="debug_link">Link debug</string>
+ <string name="debug_link_desc">Se un collegamento non è caricato correttamente, puoi inviarmi una e-mail affinché possa aiutarmi a eseguire il debug. Facendo clic su Ok apri una richiesta di posta elettronica</string>
+ <string name="open_link">Apri link</string>
+ <string name="copy_link">Copia link</string>
+ <string name="copy_text">Copia testo</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
new file mode 100644
index 00000000..cdcc759a
--- /dev/null
+++ b/app/src/main/res/values-ko/strings.xml
@@ -0,0 +1,49 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <!--Tabs-->
+ <string name="feed">피드</string>
+ <string name="most_recent">최신글</string>
+ <string name="top_stories">인기 소식</string>
+ <string name="profile">프로필</string>
+ <string name="bookmarks">즐겨찾기</string>
+ <string name="events">이벤트</string>
+ <string name="friends">친구</string>
+ <string name="messages">메시지</string>
+ <string name="notifications">알림</string>
+ <string name="activity_log">활동 로그</string>
+ <string name="pages">페이지</string>
+ <string name="groups">그룹</string>
+ <string name="saved">저장됨</string>
+ <string name="birthdays">생일</string>
+ <string name="chat">채팅</string>
+ <string name="photos">사진</string>
+ <string name="notes">노트</string>
+ <string name="on_this_day">과거의 오늘</string>
+ <!--Login-->
+ <string name="loading_account">모든 것을 준비 중입니다…</string>
+ <string name="welcome">환영합니다 %s님</string>
+ <string name="select_facebook_account">페이스북 계정 선택</string>
+ <string name="account_not_found">현재 계정은 데이터베이스에 없습니다.</string>
+ <string name="frost_notifications">Frost 알림</string>
+ <string name="requires_custom_theme">커스텀 테마 필요</string>
+ <string name="subject">항목</string>
+ <string name="share">공유</string>
+ <string name="web_overlay_swipe_hint">이전 화면으로 돌아가려면 오른쪽으로 쓸어 넘기세요.</string>
+ <string name="profile_picture">프로필 사진</string>
+ <string name="new_message">새 메시지</string>
+ <string name="no_text">내용 없음</string>
+ <string name="show_all_results">모든 결과 보기</string>
+ <!--About-->
+ <string name="frost_description">Frost 는 자유로운 테마와
+ 모든 기능이 있는 페이스북 앱의 대체 앱입니다.
+오픈 소스로 만들어 졌습니다.</string>
+ <string name="faq_title">Frost FAQ</string>
+ <!--HTML Extractor-->
+ <string name="html_extraction_error">HTML 추출에 오류가 발생했습니다.</string>
+ <string name="html_extraction_cancelled">요청이 취소되었습니다.</string>
+ <string name="html_extraction_timeout">요청 시간이 만료되었습니다.</string>
+ <string name="file_chooser_not_found">파일 선택기를 찾을 수 없습니다.</string>
+ <string name="top_bar">상단 바</string>
+ <string name="bottom_bar">하단 바</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_download.xml b/app/src/main/res/values-ko/strings_download.xml
new file mode 100644
index 00000000..3f75dffe
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_download.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="pick_image">이미지 선택</string>
+ <string name="download">다운로드</string>
+ <string name="downloading">다운로드 중…</string>
+ <string name="image_download_success">이미지 다운로드됨</string>
+ <string name="image_download_fail">이미지 다운로드 실패</string>
+ <string name="image_share_failed">이미지 공유 실패</string>
+ <string name="downloading_video">동영상 다운로드 중</string>
+ <string name="downloaded_video">동영상 다운로드됨</string>
+ <string name="downloading_file">파일 다운로드 중</string>
+ <string name="downloaded_file">파일 다운로드됨</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_errors.xml b/app/src/main/res/values-ko/strings_errors.xml
new file mode 100644
index 00000000..9327208c
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_errors.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="null_url_overlay">오버레이에 URL이 없어 종료합니다.</string>
+ <string name="bad_image_overlay">URL 이 제대로 로드되지 않았습니다. 디버그를 위해 보내시겠습니까?</string>
+ <string name="invalid_share_url">올바르지 않은 공유 URL</string>
+ <string name="invalid_share_url_desc">URL 이 아닌 텍스트를 공유했습니다. 텍스트는 클립보드로 복사되어 직접 공유하셔야 합니다.</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_intro.xml b/app/src/main/res/values-ko/strings_intro.xml
new file mode 100644
index 00000000..63ed0088
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_intro.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="skip">건너뛰기</string>
+ <string name="intro_welcome_to_frost">Frost 사용을 환영합니다</string>
+ <string name="intro_slide_to_continue">쓸어넘겨 계속</string>
+ <string name="intro_select_theme">테마 선택</string>
+ <string name="intro_multiple_accounts">다중 계정</string>
+ <string name="intro_multiple_accounts_desc">탐색 바에서 계정을 추가하고 전환하세요.\n현재 계정의 프로필 사진을 클릭하여 프로필로 이동합니다.</string>
+ <string name="intro_easy_navigation">쉬운 탐색</string>
+ <string name="intro_easy_navigation_desc">쓸어넘기는 동작으로 탭을 전환하고, 탭의 아이콘을 클릭하여 최상단으로 이동하세요.\n아이콘을 다시 누르면 페이지를 새로 고칩니다.</string>
+ <string name="intro_context_aware">맥락 인식</string>
+ <string name="intro_context_aware_desc">링크를 길게 눌러 공유하세요.\n이미지를 길게 눌러 크게 보거나 다운로드 하세요.\n카드를 길게 눌러 가로로 스크롤하세요.</string>
+ <string name="intro_end">시작합시다!</string>
+ <string name="intro_tap_to_exit">아무 곳이나 눌러 나가기</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_play_store.xml b/app/src/main/res/values-ko/strings_play_store.xml
new file mode 100644
index 00000000..5c4dc036
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_play_store.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="found_pro">Frost Pro 발견!</string>
+ <string name="found_pro_desc">Frost Pro 를 소유하고 계신 것 같습니다! 앱이 다시 로드되면 놀라운 기능들을 사용하실 수 있습니다!</string>
+ <string name="play_purchased_pro">지원에 감사드립니다! Frost 의 모든 기능을 이용하세요.\n\n만약 이 앱이 유용하다면, 평점을 매기고 오픈 소스 프로젝트를 지원해 주세요.\n\n의견이 있다면, 연락을 주저하지 마세요!</string>
+ <string name="play_store_not_pro">Pro 사용자이지만 구매 정보를 찾을 수 없습니다. 이 오류가 지속된다면 플레이 스토어의 캐시를 지우고 앱을 재설치 해 보세요.</string>
+ <string name="play_store_unsupported">이 앱 버전에서는 프로 버전을 구매할 수 없습니다. 문제가 지속된다면 플레이 스토어에서 재설치 해 보세요. \n추가 기능 없이 기부하고 싶으시다면 PayPal 을 이용하시면 됩니다.</string>
+ <string name="play_thank_you">감사합니다!</string>
+ <string name="purchases_restored">구매 내역 복원됨</string>
+ <string name="purchases_restored_with_pro">Frost Pro 가 복원되었습니다. 기능을 즐기세요!</string>
+ <string name="purchases_restored_without_pro">Pro 버전이 없으신 것 같습니다. 문제가 지속된다면 개발자에게 영수증과 함께 연락해 주세요.</string>
+ <string name="restoring_purchases">구매 내역 복원 중…</string>
+ <string name="custom_pro">사용자 지정 [Pro]</string>
+ <string name="uh_oh">이런</string>
+ <string name="reload">새로 고침</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_appearance.xml b/app/src/main/res/values-ko/strings_pref_appearance.xml
new file mode 100644
index 00000000..dbb3ada7
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_appearance.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="theme_customization">사용자 지정 테마</string>
+ <string name="theme">테마</string>
+ <string name="text_color">텍스트 색상</string>
+ <string name="accent_color">액센트 색상</string>
+ <string name="background_color">배경 색상</string>
+ <string name="header_color">헤더 색상</string>
+ <string name="icon_color">아이콘 색상</string>
+ <string name="global_customization">전역 사용자 지정</string>
+ <string name="main_activity_layout">주 액티비티 구성</string>
+ <string name="set_main_activity_layout">주 액티비티 구성으로 설정</string>
+ <string name="rounded_icons">원형 아이콘</string>
+ <string name="rounded_icons_desc">프로필 사진과 그룹 대화 아이콘이 둥글어 집니다.</string>
+ <string name="tint_nav">내비게이션 바 색상</string>
+ <string name="tint_nav_desc">내비게이션 바가 헤더와 동일한 색상이 됩니다.</string>
+ <string name="web_text_scaling">웹 텍스트 크기</string>
+ <string name="web_text_scaling_desc">텍스트 크기 예제; 퍼센트 텍스트를 길게 눌러 초기화합니다.</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_behaviour.xml b/app/src/main/res/values-ko/strings_pref_behaviour.xml
new file mode 100644
index 00000000..1a7fdf17
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_behaviour.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="fancy_animations">화려한 애니메이션</string>
+ <string name="fancy_animations_desc">물결 효과와 이동 애니메이션을 웹 뷰에 사용하니다.</string>
+ <string name="overlay_swipe">오버레이 사용</string>
+ <string name="overlay_swipe_desc">대부분의 링크를 클릭하면 새로운 오버레이가 실행되고 이 때문에 쉽게 쓸어넘겨 원래 페이지로 돌아올 수 있습니다. 하지만 이는 페이지를 완전시 다시 로드하기 때문에 약간 더 긴 로딩 시간이 필요합니다.</string>
+ <string name="overlay_full_screen_swipe">전체 화면 쓸어넘기기로 오버레이 무시</string>
+ <string name="overlay_full_screen_swipe_desc">오버레이 웹을 어디서든 쓸어넘겨 닫습니다. 만약 이 옵션이 꺼져 있다면 왼쪽 가장자리에서 쓸어넘기는 동작만이 작동합니다.</string>
+ <string name="open_links_in_default">기본 앱으로 링크 열기</string>
+ <string name="open_links_in_default_desc">가능하면 Frost 웹 오버레이 대신 기본 앱으로 링크를 엽니다.</string>
+ <string name="viewpager_swipe">Viewpager 쓸어넘기기</string>
+ <string name="viewpager_swipe_desc">메인화면에서 탭 전환에 쓸어넘기는 동작을 사용할 수 있게 합니다. 기본적으로, 버튼처럼 요소를 길게 누르면 쓸어넘기는 동작이 중단됩니다. 이를 비활성화하면 쓸어넘길 때 페이지가 함께 넘어가지 않습니다.</string>
+ <string name="search_bar">검색 바</string>
+ <string name="search_bar_desc">검색 오버레이 대신 검색 바를 사용합니다.</string>
+ <string name="force_message_bottom">강제 메시지 버튼</string>
+ <string name="force_message_bottom_desc">메시지 목록을 로드 중에 가장 아래로 스크롤 해 줍니다.</string>
+ <string name="exit_confirmation">종료 전에 물어보기</string>
+ <string name="exit_confirmation_desc">앱을 종료하기 전에 확인 창을 띄웁니다.</string>
+ <string name="analytics">통계</string>
+ <string name="analytics_desc">앱을 개선하기 위한 통계 자료를 수집합니다. 개인 정보는 포함되지 않습니다.</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_debug.xml b/app/src/main/res/values-ko/strings_pref_debug.xml
new file mode 100644
index 00000000..4d7870f1
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_debug.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="debug_toast_enabled">디버그 항목이 활성화 되었습니다! 설정으로 돌아갑니다.</string>
+ <string name="debug_disclaimer_info">대부분의 개인 정보는 자동으로 보고서에서 제거 됩니다, 하지만 일부 민감한 정보가 남아 있을 수 있습니다. \n디버그 보고서를 보내기 전에 다시 한번 확인하세요. \n\n아래의 옵션 중 하나를 누르면 웹 페이지 데이터를 포함한 이메일을 준비합니다. </string>
+ <string name="debug_incomplete">미완성 보고서</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_experimental.xml b/app/src/main/res/values-ko/strings_pref_experimental.xml
new file mode 100644
index 00000000..383371c9
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_experimental.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="experimental_disclaimer">경고</string>
+ <string name="experimental_disclaimer_info">실험적 기능은 불안정하거나 출시로 이어지지 않을 수 있습니다. 이를 사용함으로써 발생하는 일의 책임은 당신에게 있으며, 피드백을 보내시거나 제대로 작동하지 않으면 비활성화 하시기 바랍니다.</string>
+ <string name="experimental_by_default">실험적 기능 항상 사용</string>
+ <string name="experimental_by_default_desc">위험을 감수하거나 디버그에 도움을 주고 싶나요? 이를 활성화하면 앞으로도 기본적으로 실험적 기능이 활성화 됩니다.</string>
+ <string name="verbose_logging">자세한 로그</string>
+ <string name="verbose_logging_desc">충돌 보고서에 도움을 주기 위해 자세한 로그를 켭니다. 로그는 에러가 발생했을 때 한번만 보내지며, 문제를 개발자에게 알리려면 문제를 재현하세요. 앱이 재시작되면 이 옵션은 자동으로 꺼집니다.</string>
+ <string name="restart_frost">Frost 재시작</string>
+ <string name="restart_frost_desc">Crashlytics 는 충돌이 발생하거나 오류가 발생하여 앱이 재시작 되었을 때만 로그를 보냅니다. 여기를 눌러 앱을 재시작하고 지금까지 찾은 문제들을 정리하세요.</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_feed.xml b/app/src/main/res/values-ko/strings_pref_feed.xml
new file mode 100644
index 00000000..31bc548a
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_feed.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="newsfeed_sort">뉴스 피드 순서</string>
+ <string name="newsfeed_sort_desc">게시물이 보여지는 순서를 지정합니다.</string>
+ <string name="aggressive_recents">적극적인 최신글</string>
+ <string name="aggressive_recents_desc">페이스북의 원 최신 글 피드에서 조금 오래된 글을 제외합니다. 피드가 비었다면 비활성화 하세요.</string>
+ <string name="autoplay_settings">동영상 자동재생 설정</string>
+ <string name="autoplay_settings_desc">데이터 환경이나 항상 동영상 자동 재생을 끄거나 켤지 설정합니다.\n이 설정은 데스크톱의 설정과는 무관합니다.</string>
+ <string name="composer">상태 도우미</string>
+ <string name="composer_desc">상태 도우미를 피드에 표시할지 결정합니다.</string>
+ <string name="pro_features">Pro 기능</string>
+ <string name="suggested_friends">추천 친구</string>
+ <string name="suggested_friends_desc">\"당신을 알 수도 있는 사람\" 피드를 보여줍니다.</string>
+ <string name="suggested_groups">추천 그룹</string>
+ <string name="suggested_groups_desc">\"추천 그룹\"을 피드에 보여줍니다.</string>
+ <string name="facebook_ads">페이스북 광고</string>
+ <string name="facebook_ads_desc">페이스북 광고를 보여줍니다.</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_networks.xml b/app/src/main/res/values-ko/strings_pref_networks.xml
new file mode 100644
index 00000000..cdec1f57
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_networks.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="network_media_on_metered">네트워크 문제 발생시 이미지 비활성화</string>
+ <string name="network_media_on_metered_desc">네트워크 문제가 감지되면 Frost 는 모든 이미지와 동영상을 로드하지 않습니다.</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_pref_notifications.xml b/app/src/main/res/values-ko/strings_pref_notifications.xml
new file mode 100644
index 00000000..2c039eb7
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_pref_notifications.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="notification_frequency">알림 주기</string>
+ <string name="no_notifications">알림 비활성화</string>
+ <string name="notification_keywords">키워드</string>
+ <string name="notification_keywords_desc">키워드를 포함하는 알림은 알리지 않습니다.</string>
+ <string name="add_keyword">키워드 추가</string>
+ <string name="hint_keyword">키워드를 작성하고 + 를 누르세요.</string>
+ <string name="empty_keyword">키워드 비어있음</string>
+ <string name="notification_all_accounts">모든 계정에서 알림</string>
+ <string name="notification_all_accounts_desc">로그인 되어 있는 모든 계정에서 알림을 받습니다. 이 옵션을 해제하면 현재 로그인된 계정의 알림만 받게 됩니다.</string>
+ <string name="notification_messages">메시지 알림 활성화</string>
+ <string name="notification_messages_desc">현재 계정의 메시지 알림을 받습니다.</string>
+ <string name="notification_messages_all_accounts">모든 계정의 메시지 받기</string>
+ <string name="notification_messages_all_accounts_desc">모든 계정으로부터 메시지를 받습니다.</string>
+ <string name="notification_fetch_now">지금 알림 확인하기</string>
+ <string name="notification_fetch_now_desc">한번 알림을 확인합니다. 메시지를 확인하는 데에는 시간이 걸립니다.</string>
+ <string name="notification_fetch_success">알림 확인 중…</string>
+ <string name="notification_fetch_fail">알림 확인 실패</string>
+ <string name="notification_sound">알림 소리</string>
+ <string name="notification_ringtone">알림 벨소리</string>
+ <string name="message_ringtone">메시지 벨소리</string>
+ <string name="select_ringtone">벨소리 선택</string>
+ <string name="notification_vibrate">알림 진동</string>
+ <string name="notification_lights">알림 LED</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_preferences.xml b/app/src/main/res/values-ko/strings_preferences.xml
new file mode 100644
index 00000000..f7fe488e
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_preferences.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="appearance">외양</string>
+ <string name="appearance_desc">테마, 보여줄 항목 등</string>
+ <string name="notifications_desc">주기, 필터, 벨소리 등</string>
+ <string name="newsfeed">뉴스 피드</string>
+ <string name="newsfeed_desc">뉴스 피드에 무엇이 보일지 설정</string>
+ <string name="behaviour">동작</string>
+ <string name="behaviour_desc">특정 설정에 앱이 어떻게 동작할지 설정</string>
+ <string name="network">네트워크</string>
+ <string name="network_desc">네트워크 문제에 관한 옵션 설정</string>
+ <string name="experimental">실험적 기능</string>
+ <string name="experimental_desc">불안정할 수 있는 기능들을 미리 활성화</string>
+ <string name="get_pro">Frost Pro 구매</string>
+ <string name="get_pro_desc">Pro 버전을 구매하거나 복원하여 Frost 의 모든 잠재력을 끌어내세요!
+광고 제거, 사용자 지정 테마, 완전한 설정 등등이 있습니다!</string>
+ <string name="about_frost">Facebook 을 위한 Frost 정보</string>
+ <string name="about_frost_desc">버전, 제작자, FAQ</string>
+ <string name="help_translate">번역 돕기</string>
+ <string name="help_translate_desc">Frost 는 crowdin 을 통해 번역할 수 있습니다. 여러분의 언어로 사용하고 싶으시다면 기여해 주세요!</string>
+ <string name="debug_frost">Frost 디버거</string>
+ <string name="debug_frost_desc">디버그를 도와줄 HTML 데이터 전송</string>
+ <string name="replay_intro">소개 다시 보기</string>
+</resources>
diff --git a/app/src/main/res/values-ko/strings_web_context.xml b/app/src/main/res/values-ko/strings_web_context.xml
new file mode 100644
index 00000000..4e64eac4
--- /dev/null
+++ b/app/src/main/res/values-ko/strings_web_context.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="share_link">링크 공유</string>
+ <string name="debug_link">링크 디버그</string>
+ <string name="debug_link_desc">링크가 제대로 로드되지 않는다면, 이메일을 보내 디버그를 도울 수 있습니다. 확인 버튼을 눌러 이메일 요청을 여세요.</string>
+ <string name="open_link">링크 열기</string>
+ <string name="copy_link">링크 복사</string>
+ <string name="copy_text">텍스트 복사</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings.xml b/app/src/main/res/values-vi/strings.xml
new file mode 100644
index 00000000..1a088be7
--- /dev/null
+++ b/app/src/main/res/values-vi/strings.xml
@@ -0,0 +1,47 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <!--Tabs-->
+ <string name="feed">Bảng tin</string>
+ <string name="most_recent">Gần đây nhất</string>
+ <string name="top_stories">Bài đang nổi</string>
+ <string name="profile">Hồ sơ cá nhân</string>
+ <string name="bookmarks">Đánh dấu</string>
+ <string name="events">Sự kiện</string>
+ <string name="friends">Bạn bè</string>
+ <string name="messages">Tin nhắn</string>
+ <string name="notifications">Thông báo</string>
+ <string name="activity_log">Nhật ký hoạt động</string>
+ <string name="pages">Trang</string>
+ <string name="groups">Nhóm</string>
+ <string name="saved">Đã lưu</string>
+ <string name="birthdays">Sinh nhật</string>
+ <string name="chat">Trò chuyện</string>
+ <string name="photos">Ảnh</string>
+ <string name="notes">Ghi chú</string>
+ <string name="on_this_day">Vào ngày này</string>
+ <!--Login-->
+ <string name="loading_account">Đang chuẩn bị…</string>
+ <string name="welcome">Chào mừng %s</string>
+ <string name="select_facebook_account">Chọn tài khoản Facebook</string>
+ <string name="account_not_found">Tài khoản không có trong dữ liệu</string>
+ <string name="frost_notifications">Thông báo từ Frost</string>
+ <string name="requires_custom_theme">Yêu cầu gói giao diện riêng</string>
+ <string name="subject">Chủ đề</string>
+ <string name="share">Chia sẻ</string>
+ <string name="web_overlay_swipe_hint">Vuốt sang phải để trở lại cửa sổ trước đó.</string>
+ <string name="profile_picture">Ảnh Đại diện</string>
+ <string name="new_message">Tin nhắn mới</string>
+ <string name="no_text">Nội dung trống</string>
+ <string name="show_all_results">Hiện tất cả kết quả</string>
+ <!--About-->
+ <string name="frost_description">Frost là một ứng dụng thay thế đầy đủ cho Facebook với giao diện có thể tùy chỉnh toàn diện, được lập trình từ đầu từ mã nguồn mở.</string>
+ <string name="faq_title">Hỏi đáp về Frost</string>
+ <!--HTML Extractor-->
+ <string name="html_extraction_error">Lỗi khi trích suất html.</string>
+ <string name="html_extraction_cancelled">Đã huỷ yêu cầu.</string>
+ <string name="html_extraction_timeout">Yêu cầu hết thời hạn.</string>
+ <string name="file_chooser_not_found">Không thể chọn tập tin</string>
+ <string name="top_bar">Thanh phía trên</string>
+ <string name="bottom_bar">Thanh phía dưới</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_download.xml b/app/src/main/res/values-vi/strings_download.xml
new file mode 100644
index 00000000..608570b7
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_download.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="pick_image">Chọn ảnh</string>
+ <string name="download">Tải về</string>
+ <string name="downloading">Đang tải…</string>
+ <string name="image_download_success">Ảnh đã được tải</string>
+ <string name="image_download_fail">Không tải được ảnh</string>
+ <string name="image_share_failed">Không chia sẻ được ảnh</string>
+ <string name="downloading_video">Đang tải video</string>
+ <string name="downloaded_video">Đã tải Video</string>
+ <string name="downloading_file">Đang tải tập tin</string>
+ <string name="downloaded_file">Đã tải tập tin</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_errors.xml b/app/src/main/res/values-vi/strings_errors.xml
new file mode 100644
index 00000000..b780b7dc
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_errors.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="null_url_overlay">Đường dẫn trống; đang thoát</string>
+ <string name="bad_image_overlay">Không thể tải đường dẫn. Bạn có muốn gửi để sửa lỗi không?</string>
+ <string name="invalid_share_url">Đường dẫn chia sẻ không hợp lệ</string>
+ <string name="invalid_share_url_desc">Bạn đã chia sẻ một đoạn văn bản không chứa đường dẫn. Phần văn bản này đã được lưu vào bộ nhớ tạm, bạn có thể tự chia sẻ.</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_intro.xml b/app/src/main/res/values-vi/strings_intro.xml
new file mode 100644
index 00000000..16762dd6
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_intro.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="skip">Bỏ qua</string>
+ <string name="intro_welcome_to_frost">Chào mừng đến với Frost</string>
+ <string name="intro_slide_to_continue">Vuốt để tiếp tục</string>
+ <string name="intro_select_theme">Chọn một giao diện</string>
+ <string name="intro_multiple_accounts">Nhiều tài khoản</string>
+ <string name="intro_multiple_accounts_desc">Thêm và chuyển tài khoản trực tiếp từ thanh điều hướng.\nBấm vào ảnh đại diện của bạn để tiến hành chuyển.</string>
+ <string name="intro_easy_navigation">Điều hướng dễ dàng</string>
+ <string name="intro_easy_navigation_desc">Vuốt để chuyển giữa các màn hình, bấm biểu tượng thẻ để về đầu trang.\nBấm lần nữa để tải lại trang.</string>
+ <string name="intro_context_aware">Thao tác theo đối tượng</string>
+ <string name="intro_context_aware_desc">Bấm giữ đường link để chép và chia sẻ.\nBấm giữ ảnh để phóng to và tải về.\nBấm giữ thẻ để cuộn ngang.</string>
+ <string name="intro_end">Bắt đầu thôi!</string>
+ <string name="intro_tap_to_exit">Bấm chỗ bất kỳ để thoát</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_play_store.xml b/app/src/main/res/values-vi/strings_play_store.xml
new file mode 100644
index 00000000..3122937d
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_play_store.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="no"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="found_pro">Tìm thấy bản Pro!</string>
+ <string name="found_pro_desc">Có vẻ bạn có bản pro! Chúng tôi sẽ tải lại ứng dụng để bạn có thể thưởng thức các tính năng tuyệt vời!</string>
+ <string name="play_purchased_pro">Cảm ơn bạn đã hỗ trợ! Hãy tận hưởng các tính năng của Frost.\n\nNếu bạn thích ứng dụng này, hãy bình chọn và hỗ trợ dự án mã mở này.\n\nNếu bạn muốn cho ý kiến, hãy liên lạc ngay với tôi!</string>
+ <string name="play_store_not_pro">Có vẻ bạn là người dùng trả phí, nhưng chung tôi không tìm thấy thông tin mua hàng của bạn. Nếu lỗi này lặp lại, hãy thử xoá bộ nhớ đệm của Ch Play và cài lại ứng dụng.</string>
+ <string name="play_store_unsupported">Có vẻ như phiên bản này của ứng dụng không thể mua bản pro. Hãy cài lại từ Ch Play nếu lỗi tiếp tục lặp lại.
+ \nNếu bạn chỉ muốn đóng góp mà không cần các tính năng thêm, bạn có thể làm qua PayPal.</string>
+ <string name="play_thank_you">Cảm ơn bạn!</string>
+ <string name="purchases_restored">Đã khôi phục mua hàng</string>
+ <string name="purchases_restored_with_pro">Frost Pro đã được khôi phục. Hãy thưởng thức các tính năng!</string>
+ <string name="purchases_restored_without_pro">Có vẻ như bạn không có bản pro. Nếu lỗi tiếp tục lặp lại, hãy liên hệ với tôi và gửi kèm hoá đơn mua hàng.</string>
+ <string name="restoring_purchases">Đang khôi phục mua hàng…</string>
+ <string name="custom_pro">Tự chọn [Pro]</string>
+ <string name="uh_oh">Ồ…</string>
+ <string name="reload">Tải lại</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_appearance.xml b/app/src/main/res/values-vi/strings_pref_appearance.xml
new file mode 100644
index 00000000..d479a0dc
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_appearance.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="theme_customization">Tuỳ chỉnh kiểu giao diện</string>
+ <string name="theme">Kiểu giao diện</string>
+ <string name="text_color">Màu chữ</string>
+ <string name="accent_color">Màu điểm nhấn</string>
+ <string name="background_color">Màu nền</string>
+ <string name="header_color">Màu tiêu đề</string>
+ <string name="icon_color">Màu biểu tượng</string>
+ <string name="global_customization">Tuỳ chỉnh chung</string>
+ <string name="main_activity_layout">Giao diện màn hình chính</string>
+ <string name="set_main_activity_layout">Đặt giao diện màn hình chính</string>
+ <string name="rounded_icons">Làm tròn biểu tượng</string>
+ <string name="rounded_icons_desc">Ảnh đại diện và biểu tượng hội thoại nhóm sẽ được làm tròn</string>
+ <string name="tint_nav">Đổi màu thanh điều hướng</string>
+ <string name="tint_nav_desc">Thanh điều hướng sẽ có màu như thanh tiêu đề</string>
+ <string name="web_text_scaling">Cỡ chữ web</string>
+ <string name="web_text_scaling_desc">Ví dụ cỡ chữ: Bấm giữ số phần trăm để đặt lại.</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_behaviour.xml b/app/src/main/res/values-vi/strings_pref_behaviour.xml
new file mode 100644
index 00000000..79eb9317
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_behaviour.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="fancy_animations">Hiệu ứng động</string>
+ <string name="fancy_animations_desc">Hiện trang web với sóng và hiệu ứng động</string>
+ <string name="overlay_swipe">Bật lớp phủ</string>
+ <string name="overlay_swipe_desc">Bấm vào link sẽ mở một lớp phủ, bạn có thể dễ dàng vuốt về trang cũ. Việc này sẽ làm trang web tải chậm hơn đôi chút do phải tải lại toàn bộ trang.</string>
+ <string name="overlay_full_screen_swipe">Vuốt để đóng lớp phủ toàn màn hình</string>
+ <string name="overlay_full_screen_swipe_desc">Vuốt từ bất kỳ đâu sang phải ở lớp phủ web để đóng trình duyệt. Khi tắt, chỉ vuốt từ cạnh trái mới di chuyển nó.</string>
+ <string name="open_links_in_default">Mở đường link bằng ứng dụng mặc định</string>
+ <string name="open_links_in_default_desc">Nếu được, mở đường link bằng ứng dụng mặc định thay vì dùng lớp phủ web của Frost</string>
+ <string name="viewpager_swipe">Vuốt màn hình chính</string>
+ <string name="viewpager_swipe_desc">Cho phép vuốt giữa các trang trên màn hình chính để chuyển thẻ. Theo mặc định, việc vuốt tự động ngừng khi bạn giữ lâu một đối tượng, ví dụ như nút like. Tắt tính năng này sẽ ngăn hoàn toàn việc vuốt giữa các trang.</string>
+ <string name="search_bar">Thanh tìm kiếm</string>
+ <string name="search_bar_desc">Dùng thanh tìm kiếm thay cho lớp phủ tìm kiếm</string>
+ <string name="force_message_bottom">Luôn xuống cuối hội thoại</string>
+ <string name="force_message_bottom_desc">Khi hiện hội thoại, di chuyển xuống dưới cùng trang thay vì chỉ hiện trang.</string>
+ <string name="exit_confirmation">Xác nhận thoát</string>
+ <string name="exit_confirmation_desc">Hiện hộp thoại xác nhận khi thoát ứng dụng</string>
+ <string name="analytics">Phân tích</string>
+ <string name="analytics_desc">Cho phép gửi phân tích để giúp cải thiện ứng dụng. Các thông tin cá nhân sẽ không bị lộ.</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_debug.xml b/app/src/main/res/values-vi/strings_pref_debug.xml
new file mode 100644
index 00000000..8f527913
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_debug.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="debug_toast_enabled">Soát lỗi đang bật. Hãy quay về cài đặt.</string>
+ <string name="debug_disclaimer_info">Dù hầu hết các thông tin cá nhân đều tự động bị xoá khỏi báo cáo, một số thông tin nhạy cảm có thể vẫn xuất hiện. \nHãy xem lại báo cáo lỗi trước khi gửi đi. \n\nBấm một trong các tuỳ chọn dưới đây để soạn email chứa dữ liệu trang web.
+ </string>
+ <string name="debug_incomplete">Báo cáo không đầy đủ</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_experimental.xml b/app/src/main/res/values-vi/strings_pref_experimental.xml
new file mode 100644
index 00000000..4ce9d826
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_experimental.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="experimental_disclaimer">Chối bỏ trách nhiệm</string>
+ <string name="experimental_disclaimer_info">Các tính năng thử nghiệm có thể không ổn định và có thể không bao giờ thành hiện thực. Bạn chấp nhận rủi ro khi dùng, hãy tắt nó đi nếu bạn thấy không hoạt động tốt.</string>
+ <string name="experimental_by_default">Thử nghiệm theo mặc định</string>
+ <string name="experimental_by_default_desc">Muốn thử hay chỉ đơn giản muốn giúp soát lỗi? Đánh dấu ở đây sẽ bật các tính năng thử nghiệm tương lai theo mặc định.</string>
+ <string name="verbose_logging">Nhật ký chi tiết</string>
+ <string name="verbose_logging_desc">Bật nhật ký chi tiết để giúp báo cáo lỗi. Các ghi chép sẽ chỉ được gửi khi phát sinh lỗi, nên hãy lặc lại lỗi để báo cho tác giả. Tính năng này sẽ tự động tắt khi khởi động lại ứng dụng.</string>
+ <string name="restart_frost">Khởi động lại Frost</string>
+ <string name="restart_frost_desc">Phân tích lỗi sẽ chỉ gửi báo cáo khi gặp lỗi hoặc tìm thấy lỗi và ứng dụng khởi động lại. Bấm vào đây để khởi động lại ứng dụng và xử lý các ván đề đang gặp phải.</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_feed.xml b/app/src/main/res/values-vi/strings_pref_feed.xml
new file mode 100644
index 00000000..be0c4ab0
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_feed.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="newsfeed_sort">Sắp xếp bảng tin</string>
+ <string name="newsfeed_sort_desc">Quy định thứ tự sắp xếp cái bài đăng</string>
+ <string name="aggressive_recents">Tin gần đây chọn lọc</string>
+ <string name="aggressive_recents_desc">Lọc bớt những bài đăng cũ trên bảng tin gần đây của Facebook. Tắt nếu bạn thấy bảng tin trống.</string>
+ <string name="autoplay_settings">Cài đặt video tự động</string>
+ <string name="autoplay_settings_desc">Bật/Tắt tính năng tự chạy video khi dùng mạng di động.\nTính năng này không liên quan đến cài đặt của bạn trên máy tính.</string>
+ <string name="composer">Soạn trạng thái</string>
+ <string name="composer_desc">Hiện mục soạn trạng thái trên bảng tin</string>
+ <string name="pro_features">Tính năng Pro</string>
+ <string name="suggested_friends">Gợi ý bạn</string>
+ <string name="suggested_friends_desc">Hiện \'Gợi ý nhóm\' trên bảng tin</string>
+ <string name="suggested_groups">Gợi ý nhóm</string>
+ <string name="suggested_groups_desc">Hiện \'Gợi ý nhóm\' trên bảng tin</string>
+ <string name="facebook_ads">Quảng cáo Facebook</string>
+ <string name="facebook_ads_desc">Hiện quảng cáo của Facebook</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_networks.xml b/app/src/main/res/values-vi/strings_pref_networks.xml
new file mode 100644
index 00000000..28649977
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_networks.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="network_media_on_metered">Không hiện ảnh khi dùng mạng di động.</string>
+ <string name="network_media_on_metered_desc">Khi phát hiện dùng mạng di động, Frost sẽ tự động ngừng tải ảnh và video.</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_pref_notifications.xml b/app/src/main/res/values-vi/strings_pref_notifications.xml
new file mode 100644
index 00000000..92889571
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_pref_notifications.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="notification_frequency">Tần suất thông báo</string>
+ <string name="no_notifications">Không thông báo</string>
+ <string name="notification_keywords">Từ khoá</string>
+ <string name="notification_keywords_desc">Không thông báo khi nội dung chứa những từ này.</string>
+ <string name="add_keyword">Thêm từ khoá</string>
+ <string name="hint_keyword">Nhập từ khoá rồi bấm +</string>
+ <string name="empty_keyword">Từ khoá trống</string>
+ <string name="notification_all_accounts">Thông báo từ tất cả các tài khoản</string>
+ <string name="notification_all_accounts_desc">Hiện thông báo từ tất cả các tài khoản đăng đăng nhập. Khi tắt, sẽ chỉ hiện thông báo từ tài khoản hiện tại.</string>
+ <string name="notification_messages">Bật thông báo tin nhắn</string>
+ <string name="notification_messages_desc">Nhận thông báo tin nhắn cho tài khoản hiện tại.</string>
+ <string name="notification_messages_all_accounts">Thông báo tin nhắn từ tất cả các tài khoản</string>
+ <string name="notification_messages_all_accounts_desc">Nhận thông báo tin nhắn từ tất cả các tài khoản</string>
+ <string name="notification_fetch_now">Lấy thông báo ngay</string>
+ <string name="notification_fetch_now_desc">Tiến hành lấy thông báo ngay. Lưu ý rằng lấy thông báo cho tin nhắn cần nhiều thời gian.</string>
+ <string name="notification_fetch_success">Đang lấy thông báo…</string>
+ <string name="notification_fetch_fail">Không thể lấy thông báo</string>
+ <string name="notification_sound">Âm báo</string>
+ <string name="notification_ringtone">Chuông báo</string>
+ <string name="message_ringtone">Nhạc chuông tin nhắn</string>
+ <string name="select_ringtone">Chọn nhạc chuông</string>
+ <string name="notification_vibrate">Rung báo</string>
+ <string name="notification_lights">Đèn báo</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_preferences.xml b/app/src/main/res/values-vi/strings_preferences.xml
new file mode 100644
index 00000000..ced0fd6b
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_preferences.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="appearance">Giao diện</string>
+ <string name="appearance_desc">Kiểu giao diện, các mục hiện, vv</string>
+ <string name="notifications_desc">Tần suất, bộ lọc, nhạc chuông, vv</string>
+ <string name="newsfeed">Bảng tin</string>
+ <string name="newsfeed_desc">Chọn mục xuất hiện trong bảng tin</string>
+ <string name="behaviour">Hành động</string>
+ <string name="behaviour_desc">Chọn cách ứng dụng phản ứng trong một số cài đặt nhất định</string>
+ <string name="network">Mạng</string>
+ <string name="network_desc">Chọn các tuỳ chọn đối với mạng di động</string>
+ <string name="experimental">Thử nghiệm</string>
+ <string name="experimental_desc">Bật các tính năng chưa hoàn thiện</string>
+ <string name="get_pro">Mua Frost Pro</string>
+ <string name="get_pro_desc">Mua hoặc khôi phục bản pro và mở khoá đầy đủ các tính năng của Frost, bao gồm cả chặn quảng cáo, tuỳ chọn kiểu giao diện, tuỳ chỉnh và còn hơn thế nữa!</string>
+ <string name="about_frost">Giới thiệu về Frost for Facebook</string>
+ <string name="about_frost_desc">Phiên bản, tác giả, và câu hỏi thường gặp</string>
+ <string name="help_translate">Tham gia dịch</string>
+ <string name="help_translate_desc">Frost được dịch thông qua crowdin. Hãy đóng góp bản dịch để có ứng dụng theo ngôn ngữ của bạn!</string>
+ <string name="debug_frost">Soát lỗi Frost</string>
+ <string name="debug_frost_desc">Gửi dữ liệu html để giúp soát lỗi.</string>
+ <string name="replay_intro">Xem lại phần giới thiệu</string>
+</resources>
diff --git a/app/src/main/res/values-vi/strings_web_context.xml b/app/src/main/res/values-vi/strings_web_context.xml
new file mode 100644
index 00000000..91ff3bd3
--- /dev/null
+++ b/app/src/main/res/values-vi/strings_web_context.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--Generated by crowdin.com-->
+<resources>
+ <string name="share_link">Liên kết chia sẻ</string>
+ <string name="debug_link">Soát lỗi liên kết</string>
+ <string name="debug_link_desc">Nếu một liên kết không tải thảnh công, bạn có thể gửi email cho tôi để giúp soát lỗi nó. Bấm đồng ý để gửi email</string>
+ <string name="open_link">Mở liên kết</string>
+ <string name="copy_link">Chép liên kết</string>
+ <string name="copy_text">Chép nội dung</string>
+</resources>
diff --git a/app/src/main/res/values/strings_pref_debug.xml b/app/src/main/res/values/strings_pref_debug.xml
index d65adf29..975c626d 100644
--- a/app/src/main/res/values/strings_pref_debug.xml
+++ b/app/src/main/res/values/strings_pref_debug.xml
@@ -10,5 +10,5 @@
<string name="debug_incomplete">Incomplete report</string>
- <string name="debug_report_email_title">Frost for Facebook: Debug Report</string>
+ <string name="debug_report_email_title" translatable="false">Frost for Facebook: Debug Report</string>
</resources> \ No newline at end of file
diff --git a/app/src/main/res/values/strings_web_context.xml b/app/src/main/res/values/strings_web_context.xml
index 3b93a202..7c8a9196 100644
--- a/app/src/main/res/values/strings_web_context.xml
+++ b/app/src/main/res/values/strings_web_context.xml
@@ -3,11 +3,11 @@
<string name="share_link">Share Link</string>
<string name="debug_link">Debug Link</string>
- <string name="debug_link_subject">Frost for Facebook: Link Debug</string>
- <string name="debug_link_content">Write here. Note that your link may contain private information, but I won\'t be able to see it as the post isn\'t public. The url will still help with debugging though.</string>
+ <string name="debug_link_subject" translatable="false">Frost for Facebook: Link Debug</string>
+ <string name="debug_link_content" translatable="false">Write here. Note that your link may contain private information, but I won\'t be able to see it as the post isn\'t public. The url will still help with debugging though.</string>
<string name="debug_link_desc">If a link isn\'t loading properly, you can email me so I can help debug it. Clicking okay will open an email request</string>
<string name="open_link">Open Link</string>
<string name="copy_link">Copy Link</string>
<string name="copy_text">Copy Text</string>
- <string name="debug_image_link_subject">Frost for Facebook: Image Link Debug</string>
+ <string name="debug_image_link_subject" translatable="false">Frost for Facebook: Image Link Debug</string>
</resources> \ No newline at end of file
diff --git a/app/src/main/res/xml/frost_changelog.xml b/app/src/main/res/xml/frost_changelog.xml
index 6f1dc7a3..c9c30dbb 100644
--- a/app/src/main/res/xml/frost_changelog.xml
+++ b/app/src/main/res/xml/frost_changelog.xml
@@ -10,9 +10,9 @@
<item text="Allow for truly full screen videos" />
<item text="Support pip video everywhere" />
<item text="Support gifs" />
- <item text="" />
- <item text="" />
- <item text="" />
+ <item text="Add Italian translations" />
+ <item text="Add Korean translations" />
+ <item text="Add Vietnamese translations" />
<version title="v1.6.2" />
<item text="Fix search update from Facebook" />
diff --git a/docs/Changelog.md b/docs/Changelog.md
index fc1b3a55..60add8be 100644
--- a/docs/Changelog.md
+++ b/docs/Changelog.md
@@ -4,6 +4,9 @@
* Allow for truly full screen videos
* Support pip video everywhere
* Support gifs
+* Add Italian translations
+* Add Korean translations
+* Add Vietnamese translations
## v1.6.2
* Fix search update from Facebook
diff --git a/gradle.properties b/gradle.properties
index 7b9041e4..03b000af 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -17,7 +17,7 @@ MIN_SDK=21
TARGET_SDK=26
BUILD_TOOLS=26.0.2
-KAU=4e52d2d
+KAU=1b7368f
KOTLIN=1.1.51
COMMONS_TEXT=1.1