Browse Source

Improving the way search engine preferences are handled

master
anthony restaino 7 years ago
parent
commit
cf94963255
  1. 3
      app/src/main/java/acr/browser/lightning/app/AppComponent.java
  2. 96
      app/src/main/java/acr/browser/lightning/fragment/GeneralSettingsFragment.java
  3. 48
      app/src/main/java/acr/browser/lightning/search/SearchEngineProvider.java
  4. 3
      app/src/main/java/acr/browser/lightning/search/engine/AskSearch.java
  5. 3
      app/src/main/java/acr/browser/lightning/search/engine/BaiduSearch.java
  6. 20
      app/src/main/java/acr/browser/lightning/search/engine/BaseSearchEngine.java
  7. 4
      app/src/main/java/acr/browser/lightning/search/engine/BingSearch.java
  8. 4
      app/src/main/java/acr/browser/lightning/search/engine/CustomSearch.java
  9. 3
      app/src/main/java/acr/browser/lightning/search/engine/DuckLiteSearch.java
  10. 3
      app/src/main/java/acr/browser/lightning/search/engine/DuckSearch.java
  11. 3
      app/src/main/java/acr/browser/lightning/search/engine/GoogleSearch.java
  12. 3
      app/src/main/java/acr/browser/lightning/search/engine/StartPageMobileSearch.java
  13. 3
      app/src/main/java/acr/browser/lightning/search/engine/StartPageSearch.java
  14. 3
      app/src/main/java/acr/browser/lightning/search/engine/YahooSearch.java
  15. 3
      app/src/main/java/acr/browser/lightning/search/engine/YandexSearch.java
  16. 2
      app/src/main/res/values-de/strings.xml
  17. 2
      app/src/main/res/values-el/strings.xml
  18. 2
      app/src/main/res/values-es/strings.xml
  19. 2
      app/src/main/res/values-fr/strings.xml
  20. 2
      app/src/main/res/values-hu/strings.xml
  21. 2
      app/src/main/res/values-it/strings.xml
  22. 2
      app/src/main/res/values-ja/strings.xml
  23. 2
      app/src/main/res/values-ko/strings.xml
  24. 2
      app/src/main/res/values-nl/strings.xml
  25. 2
      app/src/main/res/values-pl/strings.xml
  26. 2
      app/src/main/res/values-pt-rBR/strings.xml
  27. 2
      app/src/main/res/values-pt/strings.xml
  28. 2
      app/src/main/res/values-ru/strings.xml
  29. 2
      app/src/main/res/values-sr/strings.xml
  30. 2
      app/src/main/res/values-tr/strings.xml
  31. 2
      app/src/main/res/values-zh-rCN/strings.xml
  32. 2
      app/src/main/res/values-zh-rTW/strings.xml
  33. 14
      app/src/main/res/values/strings.xml

3
app/src/main/java/acr/browser/lightning/app/AppComponent.java

@ -19,6 +19,7 @@ import acr.browser.lightning.download.LightningDownloadListener;
import acr.browser.lightning.fragment.BookmarkSettingsFragment; import acr.browser.lightning.fragment.BookmarkSettingsFragment;
import acr.browser.lightning.fragment.BookmarksFragment; import acr.browser.lightning.fragment.BookmarksFragment;
import acr.browser.lightning.fragment.DebugSettingsFragment; import acr.browser.lightning.fragment.DebugSettingsFragment;
import acr.browser.lightning.fragment.GeneralSettingsFragment;
import acr.browser.lightning.fragment.LightningPreferenceFragment; import acr.browser.lightning.fragment.LightningPreferenceFragment;
import acr.browser.lightning.fragment.PrivacySettingsFragment; import acr.browser.lightning.fragment.PrivacySettingsFragment;
import acr.browser.lightning.fragment.TabsFragment; import acr.browser.lightning.fragment.TabsFragment;
@ -88,4 +89,6 @@ public interface AppComponent {
void inject(SearchEngineProvider searchEngineProvider); void inject(SearchEngineProvider searchEngineProvider);
void inject(GeneralSettingsFragment generalSettingsFragment);
} }

96
app/src/main/java/acr/browser/lightning/fragment/GeneralSettingsFragment.java

@ -22,10 +22,18 @@ import android.view.View;
import android.webkit.URLUtil; import android.webkit.URLUtil;
import android.widget.EditText; import android.widget.EditText;
import java.util.List;
import javax.inject.Inject;
import acr.browser.lightning.BuildConfig; import acr.browser.lightning.BuildConfig;
import acr.browser.lightning.R; import acr.browser.lightning.R;
import acr.browser.lightning.app.BrowserApp;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
import acr.browser.lightning.dialog.BrowserDialog; import acr.browser.lightning.dialog.BrowserDialog;
import acr.browser.lightning.search.SearchEngineProvider;
import acr.browser.lightning.search.engine.BaseSearchEngine;
import acr.browser.lightning.search.engine.CustomSearch;
import acr.browser.lightning.utils.FileUtils; import acr.browser.lightning.utils.FileUtils;
import acr.browser.lightning.utils.ProxyUtils; import acr.browser.lightning.utils.ProxyUtils;
import acr.browser.lightning.utils.ThemeUtils; import acr.browser.lightning.utils.ThemeUtils;
@ -54,12 +62,16 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
private int mAgentChoice; private int mAgentChoice;
private String mHomepage; private String mHomepage;
@Inject SearchEngineProvider mSearchEngineProvider;
@Override @Override
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
// Load the preferences from an XML resource // Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preference_general); addPreferencesFromResource(R.xml.preference_general);
BrowserApp.getAppComponent().inject(this);
mActivity = getActivity(); mActivity = getActivity();
initPrefs(); initPrefs();
@ -107,7 +119,8 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
mPreferenceManager.setFlashSupport(0); mPreferenceManager.setFlashSupport(0);
} }
setSearchEngineSummary(mPreferenceManager.getSearchChoice()); BaseSearchEngine currentSearchEngine = mSearchEngineProvider.getCurrentSearchEngine();
setSearchEngineSummary(currentSearchEngine);
downloadloc.setSummary(mDownloadLocation); downloadloc.setSummary(mDownloadLocation);
@ -175,18 +188,18 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
cbColorMode.setChecked(mPreferenceManager.getColorModeEnabled()); cbColorMode.setChecked(mPreferenceManager.getColorModeEnabled());
} }
private void searchUrlPicker() { private void showUrlPicker(@NonNull final CustomSearch customSearch) {
BrowserDialog.showEditText(mActivity, BrowserDialog.showEditText(mActivity,
R.string.custom_url, R.string.search_engine_custom,
R.string.custom_url, R.string.search_engine_custom,
mPreferenceManager.getSearchUrl(), mPreferenceManager.getSearchUrl(),
R.string.action_ok, R.string.action_ok,
new BrowserDialog.EditorListener() { new BrowserDialog.EditorListener() {
@Override @Override
public void onClick(String text) { public void onClick(String text) {
mPreferenceManager.setSearchUrl(text); mPreferenceManager.setSearchUrl(text);
searchengine.setSummary(mActivity.getString(R.string.custom_url) + ": " + text); setSearchEngineSummary(customSearch);
} }
}); });
@ -299,13 +312,24 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
BrowserDialog.setDialogSize(mActivity, dialog); BrowserDialog.setDialogSize(mActivity, dialog);
} }
@NonNull
private CharSequence[] convertSearchEngineToString(@NonNull List<BaseSearchEngine> searchEngines) {
CharSequence[] titles = new CharSequence[searchEngines.size()];
for (int n = 0; n < searchEngines.size(); n++) {
titles[n] = getString(searchEngines.get(n).getTitleRes());
}
return titles;
}
private void searchDialog() { private void searchDialog() {
AlertDialog.Builder picker = new AlertDialog.Builder(mActivity); AlertDialog.Builder picker = new AlertDialog.Builder(mActivity);
picker.setTitle(getResources().getString(R.string.title_search_engine)); picker.setTitle(getResources().getString(R.string.title_search_engine));
CharSequence[] chars = {getResources().getString(R.string.custom_url), "Google",
"Ask", "Bing", "Yahoo", "StartPage", "StartPage (Mobile)", final List<BaseSearchEngine> searchEngineList = mSearchEngineProvider.getAllSearchEngines();
"DuckDuckGo (Privacy)", "DuckDuckGo Lite (Privacy)", "Baidu (Chinese)",
"Yandex (Russian)"}; CharSequence[] chars = convertSearchEngineToString(searchEngineList);
int n = mPreferenceManager.getSearchChoice(); int n = mPreferenceManager.getSearchChoice();
@ -313,8 +337,19 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
@Override @Override
public void onClick(DialogInterface dialog, int which) { public void onClick(DialogInterface dialog, int which) {
mPreferenceManager.setSearchChoice(which); BaseSearchEngine searchEngine = searchEngineList.get(which);
setSearchEngineSummary(which);
// Store the search engine preference
int preferencesIndex = mSearchEngineProvider.mapSearchEngineToPreferenceIndex(searchEngine);
mPreferenceManager.setSearchChoice(preferencesIndex);
if (searchEngine instanceof CustomSearch) {
// Show the URL picker
showUrlPicker((CustomSearch) searchEngine);
} else {
// Set the new search engine summary
setSearchEngineSummary(searchEngine);
}
} }
}); });
picker.setPositiveButton(R.string.action_ok, null); picker.setPositiveButton(R.string.action_ok, null);
@ -549,40 +584,11 @@ public class GeneralSettingsFragment extends LightningPreferenceFragment impleme
BrowserDialog.setDialogSize(mActivity, dialog); BrowserDialog.setDialogSize(mActivity, dialog);
} }
private void setSearchEngineSummary(int which) { private void setSearchEngineSummary(BaseSearchEngine baseSearchEngine) {
switch (which) { if (baseSearchEngine instanceof CustomSearch) {
case 0: searchengine.setSummary(mPreferenceManager.getSearchUrl());
searchUrlPicker(); } else {
break; searchengine.setSummary(getString(baseSearchEngine.getTitleRes()));
case 1:
searchengine.setSummary("Google");
break;
case 2:
searchengine.setSummary("Ask");
break;
case 3:
searchengine.setSummary("Bing");
break;
case 4:
searchengine.setSummary("Yahoo");
break;
case 5:
searchengine.setSummary("StartPage");
break;
case 6:
searchengine.setSummary("StartPage (Mobile)");
break;
case 7:
searchengine.setSummary("DuckDuckGo");
break;
case 8:
searchengine.setSummary("DuckDuckGo Lite");
break;
case 9:
searchengine.setSummary("Baidu");
break;
case 10:
searchengine.setSummary("Yandex");
} }
} }

48
app/src/main/java/acr/browser/lightning/search/SearchEngineProvider.java

@ -2,6 +2,9 @@ package acr.browser.lightning.search;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import java.util.ArrayList;
import java.util.List;
import javax.inject.Inject; import javax.inject.Inject;
import acr.browser.lightning.app.BrowserApp; import acr.browser.lightning.app.BrowserApp;
@ -61,4 +64,49 @@ public class SearchEngineProvider {
} }
} }
public int mapSearchEngineToPreferenceIndex(@NonNull BaseSearchEngine searchEngine) {
if (searchEngine instanceof CustomSearch) {
return 0;
} else if (searchEngine instanceof GoogleSearch) {
return 1;
} else if (searchEngine instanceof AskSearch) {
return 2;
} else if (searchEngine instanceof BingSearch) {
return 3;
} else if (searchEngine instanceof YahooSearch) {
return 4;
} else if (searchEngine instanceof StartPageSearch) {
return 5;
} else if (searchEngine instanceof StartPageMobileSearch) {
return 6;
} else if (searchEngine instanceof DuckSearch) {
return 7;
} else if (searchEngine instanceof DuckLiteSearch) {
return 8;
} else if (searchEngine instanceof BaiduSearch) {
return 9;
} else if (searchEngine instanceof YandexSearch) {
return 10;
} else {
throw new UnsupportedOperationException("Unknown search engine provided: " + searchEngine.getClass());
}
}
@NonNull
public List<BaseSearchEngine> getAllSearchEngines() {
return new ArrayList<BaseSearchEngine>(11) {{
add(new CustomSearch(mPreferenceManager.getSearchUrl()));
add(new GoogleSearch());
add(new AskSearch());
add(new BingSearch());
add(new YahooSearch());
add(new StartPageSearch());
add(new StartPageMobileSearch());
add(new DuckSearch());
add(new DuckLiteSearch());
add(new BaiduSearch());
add(new YandexSearch());
}};
}
} }

3
app/src/main/java/acr/browser/lightning/search/engine/AskSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -8,7 +9,7 @@ import acr.browser.lightning.constant.Constants;
public class AskSearch extends BaseSearchEngine { public class AskSearch extends BaseSearchEngine {
public AskSearch() { public AskSearch() {
super("file:///android_asset/ask.png", Constants.ASK_SEARCH); super("file:///android_asset/ask.png", Constants.ASK_SEARCH, R.string.search_engine_ask);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/BaiduSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -10,7 +11,7 @@ import acr.browser.lightning.constant.Constants;
public class BaiduSearch extends BaseSearchEngine { public class BaiduSearch extends BaseSearchEngine {
public BaiduSearch() { public BaiduSearch() {
super("file:///android_asset/baidu.png", Constants.BAIDU_SEARCH); super("file:///android_asset/baidu.png", Constants.BAIDU_SEARCH, R.string.search_engine_baidu);
} }
} }

20
app/src/main/java/acr/browser/lightning/search/engine/BaseSearchEngine.java

@ -1,23 +1,36 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import android.support.annotation.StringRes;
import acr.browser.lightning.utils.Preconditions; import acr.browser.lightning.utils.Preconditions;
/** /**
* A class representative of a search engine. * A class representative of a search engine.
* <p>
* Contains three key pieces of information:
* <ul>
* <li>The icon shown for the search engine, should point to a local assets URL.</li>
* <li>The query URL for the search engine, the query will be appended to the end.</li>
* <li>The title string resource for the search engine.</li>
* </ul>
*/ */
public class BaseSearchEngine { public class BaseSearchEngine {
@NonNull private final String mIconUrl; @NonNull private final String mIconUrl;
@NonNull private final String mQueryUrl; @NonNull private final String mQueryUrl;
@StringRes private final int mTitleRes;
public BaseSearchEngine(@NonNull String iconUrl,
@NonNull String queryUrl,
@StringRes int titleRes) {
public BaseSearchEngine(@NonNull String iconUrl, @NonNull String queryUrl) {
Preconditions.checkNonNull(iconUrl); Preconditions.checkNonNull(iconUrl);
Preconditions.checkNonNull(queryUrl); Preconditions.checkNonNull(queryUrl);
mIconUrl = iconUrl; mIconUrl = iconUrl;
mQueryUrl = queryUrl; mQueryUrl = queryUrl;
mTitleRes = titleRes;
} }
@NonNull @NonNull
@ -30,4 +43,9 @@ public class BaseSearchEngine {
return mQueryUrl; return mQueryUrl;
} }
@StringRes
public final int getTitleRes() {
return mTitleRes;
}
} }

4
app/src/main/java/acr/browser/lightning/search/engine/BingSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -11,8 +12,7 @@ import acr.browser.lightning.constant.Constants;
public class BingSearch extends BaseSearchEngine { public class BingSearch extends BaseSearchEngine {
public BingSearch() { public BingSearch() {
super("file:///android_asset/bing.png", Constants.BING_SEARCH); super("file:///android_asset/bing.png", Constants.BING_SEARCH, R.string.search_engine_bing);
// "http://upload.wikimedia.org/wikipedia/commons/thumb/b/b1/Bing_logo_%282013%29.svg/500px-Bing_logo_%282013%29.svg.png";
} }
} }

4
app/src/main/java/acr/browser/lightning/search/engine/CustomSearch.java

@ -2,13 +2,15 @@ package acr.browser.lightning.search.engine;
import android.support.annotation.NonNull; import android.support.annotation.NonNull;
import acr.browser.lightning.R;
/** /**
* A custom search engine. * A custom search engine.
*/ */
public class CustomSearch extends BaseSearchEngine { public class CustomSearch extends BaseSearchEngine {
public CustomSearch(@NonNull String queryUrl) { public CustomSearch(@NonNull String queryUrl) {
super("file:///android_asset/lightning.png", queryUrl); super("file:///android_asset/lightning.png", queryUrl, R.string.search_engine_custom);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/DuckLiteSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -10,7 +11,7 @@ import acr.browser.lightning.constant.Constants;
public class DuckLiteSearch extends BaseSearchEngine { public class DuckLiteSearch extends BaseSearchEngine {
public DuckLiteSearch() { public DuckLiteSearch() {
super("file:///android_asset/duckduckgo.png", Constants.DUCK_LITE_SEARCH); super("file:///android_asset/duckduckgo.png", Constants.DUCK_LITE_SEARCH, R.string.search_engine_duckduckgo_lite);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/DuckSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -10,7 +11,7 @@ import acr.browser.lightning.constant.Constants;
public class DuckSearch extends BaseSearchEngine { public class DuckSearch extends BaseSearchEngine {
public DuckSearch() { public DuckSearch() {
super("file:///android_asset/duckduckgo.png", Constants.DUCK_SEARCH); super("file:///android_asset/duckduckgo.png", Constants.DUCK_SEARCH, R.string.search_engine_duckduckgo);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/GoogleSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -10,6 +11,6 @@ import acr.browser.lightning.constant.Constants;
public class GoogleSearch extends BaseSearchEngine { public class GoogleSearch extends BaseSearchEngine {
public GoogleSearch() { public GoogleSearch() {
super("file:///android_asset/google.png", Constants.GOOGLE_SEARCH); super("file:///android_asset/google.png", Constants.GOOGLE_SEARCH, R.string.search_engine_google);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/StartPageMobileSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -8,7 +9,7 @@ import acr.browser.lightning.constant.Constants;
public class StartPageMobileSearch extends BaseSearchEngine { public class StartPageMobileSearch extends BaseSearchEngine {
public StartPageMobileSearch() { public StartPageMobileSearch() {
super("file:///android_asset/startpage.png", Constants.STARTPAGE_MOBILE_SEARCH); super("file:///android_asset/startpage.png", Constants.STARTPAGE_MOBILE_SEARCH, R.string.search_engine_startpage_mobile);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/StartPageSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -8,7 +9,7 @@ import acr.browser.lightning.constant.Constants;
public class StartPageSearch extends BaseSearchEngine { public class StartPageSearch extends BaseSearchEngine {
public StartPageSearch() { public StartPageSearch() {
super("file:///android_asset/startpage.png", Constants.STARTPAGE_SEARCH); super("file:///android_asset/startpage.png", Constants.STARTPAGE_SEARCH, R.string.search_engine_startpage);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/YahooSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -11,7 +12,7 @@ import acr.browser.lightning.constant.Constants;
public class YahooSearch extends BaseSearchEngine { public class YahooSearch extends BaseSearchEngine {
public YahooSearch() { public YahooSearch() {
super("file:///android_asset/yahoo.png", Constants.YAHOO_SEARCH); super("file:///android_asset/yahoo.png", Constants.YAHOO_SEARCH, R.string.search_engine_yahoo);
} }
} }

3
app/src/main/java/acr/browser/lightning/search/engine/YandexSearch.java

@ -1,5 +1,6 @@
package acr.browser.lightning.search.engine; package acr.browser.lightning.search.engine;
import acr.browser.lightning.R;
import acr.browser.lightning.constant.Constants; import acr.browser.lightning.constant.Constants;
/** /**
@ -11,7 +12,7 @@ import acr.browser.lightning.constant.Constants;
public class YandexSearch extends BaseSearchEngine { public class YandexSearch extends BaseSearchEngine {
public YandexSearch() { public YandexSearch() {
super("file:///android_asset/yandex.png", Constants.YANDEX_SEARCH); super("file:///android_asset/yandex.png", Constants.YANDEX_SEARCH, R.string.search_engine_yandex);
} }
} }

2
app/src/main/res/values-de/strings.xml

@ -119,7 +119,7 @@
<string name="max_tabs">Maximale Reiteranzahl erreicht!</string> <string name="max_tabs">Maximale Reiteranzahl erreicht!</string>
<string name="message_text_copied">Text in Zwischenablage kopiert</string> <string name="message_text_copied">Text in Zwischenablage kopiert</string>
<string name="message_link_copied">Link in Zwischenablage kopiert</string> <string name="message_link_copied">Link in Zwischenablage kopiert</string>
<string name="custom_url">Benutzerdefinierte URL</string> <string name="search_engine_custom">Benutzerdefinierte URL</string>
<string name="message_blocked_local">Lokale Datei wurde beim Laden blockiert</string> <string name="message_blocked_local">Lokale Datei wurde beim Laden blockiert</string>
<string name="licenses">Open Source-Lizenzen</string> <string name="licenses">Open Source-Lizenzen</string>
<string name="suggestion">Suche nach</string> <string name="suggestion">Suche nach</string>

2
app/src/main/res/values-el/strings.xml

@ -103,7 +103,7 @@
<string name="max_tabs">Μέγιστος αριθμός καρτελών ξεπεράστηκε</string> <string name="max_tabs">Μέγιστος αριθμός καρτελών ξεπεράστηκε</string>
<string name="message_text_copied">Το κείμενο αντιγράφτηκε</string> <string name="message_text_copied">Το κείμενο αντιγράφτηκε</string>
<string name="message_link_copied">Ο σύνδεσμος αντιγράφτηκε</string> <string name="message_link_copied">Ο σύνδεσμος αντιγράφτηκε</string>
<string name="custom_url">Ειδικό URL</string> <string name="search_engine_custom">Ειδικό URL</string>
<string name="message_blocked_local">Τοπικά αρχεία εχουν μπλοκαριστεί απο την φόρτωση</string> <string name="message_blocked_local">Τοπικά αρχεία εχουν μπλοκαριστεί απο την φόρτωση</string>
<string name="licenses">Άδειες ανοιχτού κώδικα</string> <string name="licenses">Άδειες ανοιχτού κώδικα</string>
<string name="suggestion">Αναζήτηση για</string> <string name="suggestion">Αναζήτηση για</string>

2
app/src/main/res/values-es/strings.xml

@ -103,7 +103,7 @@
<string name="max_tabs">Se ha alcanzado el máximo de pestañas</string> <string name="max_tabs">Se ha alcanzado el máximo de pestañas</string>
<string name="message_text_copied">El texto se ha copiado al portapapeles</string> <string name="message_text_copied">El texto se ha copiado al portapapeles</string>
<string name="message_link_copied">El enlace se ha copiado al portapapeles</string> <string name="message_link_copied">El enlace se ha copiado al portapapeles</string>
<string name="custom_url">Dirección personalizada</string> <string name="search_engine_custom">Dirección personalizada</string>
<string name="message_blocked_local">Se ha bloqueado la carga del archivo local</string> <string name="message_blocked_local">Se ha bloqueado la carga del archivo local</string>
<string name="licenses">Licencias de código abierto (open source)</string> <string name="licenses">Licencias de código abierto (open source)</string>
<string name="suggestion">Buscar</string> <string name="suggestion">Buscar</string>

2
app/src/main/res/values-fr/strings.xml

@ -125,7 +125,7 @@
<string name="max_tabs">Onglets maximuns atteint</string> <string name="max_tabs">Onglets maximuns atteint</string>
<string name="message_text_copied">Texte copié dans le presse-papiers</string> <string name="message_text_copied">Texte copié dans le presse-papiers</string>
<string name="message_link_copied">Adresse copiée dans le presse-papiers</string> <string name="message_link_copied">Adresse copiée dans le presse-papiers</string>
<string name="custom_url">Adresse personnalisée</string> <string name="search_engine_custom">Adresse personnalisée</string>
<string name="message_blocked_local">Le fichier local a été bloqué au chargement</string> <string name="message_blocked_local">Le fichier local a été bloqué au chargement</string>
<string name="licenses">Licences open source</string> <string name="licenses">Licences open source</string>
<string name="suggestion">Recherche</string> <string name="suggestion">Recherche</string>

2
app/src/main/res/values-hu/strings.xml

@ -124,7 +124,7 @@
<string name="max_tabs">Maximálisan megnyitható lapok száma elérve</string> <string name="max_tabs">Maximálisan megnyitható lapok száma elérve</string>
<string name="message_text_copied">Szöveg másolva a vágólapra</string> <string name="message_text_copied">Szöveg másolva a vágólapra</string>
<string name="message_link_copied">Link másolva a vágólapra</string> <string name="message_link_copied">Link másolva a vágólapra</string>
<string name="custom_url">Egyéni URL</string> <string name="search_engine_custom">Egyéni URL</string>
<string name="message_blocked_local">Helyi fájl betöltése blokkolva</string> <string name="message_blocked_local">Helyi fájl betöltése blokkolva</string>
<string name="licenses">Nyílt forráskódú licencek</string> <string name="licenses">Nyílt forráskódú licencek</string>
<string name="suggestion">Keresés</string> <string name="suggestion">Keresés</string>

2
app/src/main/res/values-it/strings.xml

@ -124,7 +124,7 @@
<string name="max_tabs">Hai raggiunto il numero massimo di schede apribili</string> <string name="max_tabs">Hai raggiunto il numero massimo di schede apribili</string>
<string name="message_text_copied">Testo copiato negli appunti</string> <string name="message_text_copied">Testo copiato negli appunti</string>
<string name="message_link_copied">Link copiato negli appunti</string> <string name="message_link_copied">Link copiato negli appunti</string>
<string name="custom_url">URL personalizzato</string> <string name="search_engine_custom">URL personalizzato</string>
<string name="message_blocked_local">Caricamento file locale bloccato</string> <string name="message_blocked_local">Caricamento file locale bloccato</string>
<string name="licenses">Licenze Open Source</string> <string name="licenses">Licenze Open Source</string>
<string name="suggestion">Cerca</string> <string name="suggestion">Cerca</string>

2
app/src/main/res/values-ja/strings.xml

@ -110,7 +110,7 @@
<string name="max_tabs">これ以上タブは開けません</string> <string name="max_tabs">これ以上タブは開けません</string>
<string name="message_text_copied">テキストをクリップボードにコピーしました</string> <string name="message_text_copied">テキストをクリップボードにコピーしました</string>
<string name="message_link_copied">リンクをクリップボードにコピーしました</string> <string name="message_link_copied">リンクをクリップボードにコピーしました</string>
<string name="custom_url">カスタム URL</string> <string name="search_engine_custom">カスタム URL</string>
<string name="message_blocked_local">ファイルを読み込めませんでした</string> <string name="message_blocked_local">ファイルを読み込めませんでした</string>
<string name="licenses">オープンソース ライセンス</string> <string name="licenses">オープンソース ライセンス</string>
<string name="suggestion">検索 :</string> <string name="suggestion">検索 :</string>

2
app/src/main/res/values-ko/strings.xml

@ -102,7 +102,7 @@
<string name="max_tabs">최대 탭 수에 도달했습니다</string> <string name="max_tabs">최대 탭 수에 도달했습니다</string>
<string name="message_text_copied">텍스트가 클립보드로 복사되었습니다</string> <string name="message_text_copied">텍스트가 클립보드로 복사되었습니다</string>
<string name="message_link_copied">링크가 클립보드로 복사되었습니다</string> <string name="message_link_copied">링크가 클립보드로 복사되었습니다</string>
<string name="custom_url">임의의 URL</string> <string name="search_engine_custom">임의의 URL</string>
<string name="message_blocked_local">로컬 파일 불러오기가 차단되었습니다</string> <string name="message_blocked_local">로컬 파일 불러오기가 차단되었습니다</string>
<string name="licenses">오픈 소스 라이센스</string> <string name="licenses">오픈 소스 라이센스</string>
<string name="suggestion">다음을 검색</string> <string name="suggestion">다음을 검색</string>

2
app/src/main/res/values-nl/strings.xml

@ -124,7 +124,7 @@
<string name="max_tabs">Maximum aantal tabbladen bereikt</string> <string name="max_tabs">Maximum aantal tabbladen bereikt</string>
<string name="message_text_copied">Tekst gekopieerd naar klembord</string> <string name="message_text_copied">Tekst gekopieerd naar klembord</string>
<string name="message_link_copied">Link gekopieerd naar klembord</string> <string name="message_link_copied">Link gekopieerd naar klembord</string>
<string name="custom_url">Aangepaste URL</string> <string name="search_engine_custom">Aangepaste URL</string>
<string name="message_blocked_local">Lokaal bestand werd geblokkeerd</string> <string name="message_blocked_local">Lokaal bestand werd geblokkeerd</string>
<string name="licenses">Open Source Licenses</string> <string name="licenses">Open Source Licenses</string>
<string name="suggestion">Zoek voor</string> <string name="suggestion">Zoek voor</string>

2
app/src/main/res/values-pl/strings.xml

@ -105,7 +105,7 @@
<string name="max_tabs">Maksymalna liczba otwartych kart osiągnięta</string> <string name="max_tabs">Maksymalna liczba otwartych kart osiągnięta</string>
<string name="message_text_copied">Tekst został skopiowany do schowka</string> <string name="message_text_copied">Tekst został skopiowany do schowka</string>
<string name="message_link_copied">Link został skopiowany do schowka</string> <string name="message_link_copied">Link został skopiowany do schowka</string>
<string name="custom_url">Własny URL</string> <string name="search_engine_custom">Własny URL</string>
<string name="message_blocked_local">Wczytywanie lokalnego pliku zostało zablokowane</string> <string name="message_blocked_local">Wczytywanie lokalnego pliku zostało zablokowane</string>
<string name="licenses">Licencje Open Source</string> <string name="licenses">Licencje Open Source</string>
<string name="suggestion">Wyszukaj</string> <string name="suggestion">Wyszukaj</string>

2
app/src/main/res/values-pt-rBR/strings.xml

@ -118,7 +118,7 @@
<string name="max_tabs">Atingido número máximo de abas</string> <string name="max_tabs">Atingido número máximo de abas</string>
<string name="message_text_copied">Texto copiado para a área de transferência</string> <string name="message_text_copied">Texto copiado para a área de transferência</string>
<string name="message_link_copied">Link copiado para a área de transferência</string> <string name="message_link_copied">Link copiado para a área de transferência</string>
<string name="custom_url">URL personalizado</string> <string name="search_engine_custom">URL personalizado</string>
<string name="message_blocked_local">Bloqueado o carregamento do arquivo local</string> <string name="message_blocked_local">Bloqueado o carregamento do arquivo local</string>
<string name="licenses">Licenças Open Source</string> <string name="licenses">Licenças Open Source</string>
<string name="suggestion">Pesquisar por</string> <string name="suggestion">Pesquisar por</string>

2
app/src/main/res/values-pt/strings.xml

@ -123,7 +123,7 @@
<string name="max_tabs">Atingido o número máximo de separadores</string> <string name="max_tabs">Atingido o número máximo de separadores</string>
<string name="message_text_copied">Texto copiado para a área de transferência</string> <string name="message_text_copied">Texto copiado para a área de transferência</string>
<string name="message_link_copied">Ligação copiada para a área de transferência</string> <string name="message_link_copied">Ligação copiada para a área de transferência</string>
<string name="custom_url">URL personalizado</string> <string name="search_engine_custom">URL personalizado</string>
<string name="message_blocked_local">Bloqueado o carregamento do ficheiro local</string> <string name="message_blocked_local">Bloqueado o carregamento do ficheiro local</string>
<string name="licenses">Licenças Open Source</string> <string name="licenses">Licenças Open Source</string>
<string name="suggestion">Pesquisar por</string> <string name="suggestion">Pesquisar por</string>

2
app/src/main/res/values-ru/strings.xml

@ -107,7 +107,7 @@
<string name="max_tabs">Достигнуто максимальное число вкладок</string> <string name="max_tabs">Достигнуто максимальное число вкладок</string>
<string name="message_text_copied">Текст скопирован в буфер обмена</string> <string name="message_text_copied">Текст скопирован в буфер обмена</string>
<string name="message_link_copied">Ссылка скопирована в буфер обмена</string> <string name="message_link_copied">Ссылка скопирована в буфер обмена</string>
<string name="custom_url">Пользовательский URL</string> <string name="search_engine_custom">Пользовательский URL</string>
<string name="message_blocked_local">Локальный файл недоступен для загрузки</string> <string name="message_blocked_local">Локальный файл недоступен для загрузки</string>
<string name="licenses">Open Source Licenses</string> <string name="licenses">Open Source Licenses</string>
<string name="suggestion">Искать</string> <string name="suggestion">Искать</string>

2
app/src/main/res/values-sr/strings.xml

@ -124,7 +124,7 @@
<string name="max_tabs">Досегнут макс. број језичака</string> <string name="max_tabs">Досегнут макс. број језичака</string>
<string name="message_text_copied">Текст копиран на клипборд</string> <string name="message_text_copied">Текст копиран на клипборд</string>
<string name="message_link_copied">Веза копирана на клипборд</string> <string name="message_link_copied">Веза копирана на клипборд</string>
<string name="custom_url">Посебна адреса</string> <string name="search_engine_custom">Посебна адреса</string>
<string name="message_blocked_local">Учитавање локалног фајла је блокирано</string> <string name="message_blocked_local">Учитавање локалног фајла је блокирано</string>
<string name="licenses">Лиценце отвореног кôда</string> <string name="licenses">Лиценце отвореног кôда</string>
<string name="suggestion">Тражи</string> <string name="suggestion">Тражи</string>

2
app/src/main/res/values-tr/strings.xml

@ -108,7 +108,7 @@
<string name="max_tabs">Maksimum sekme sınırına ulaşıldı</string> <string name="max_tabs">Maksimum sekme sınırına ulaşıldı</string>
<string name="message_text_copied">Yazı panoya kopyalandı</string> <string name="message_text_copied">Yazı panoya kopyalandı</string>
<string name="message_link_copied">Bağlantı panoya kopyalandı</string> <string name="message_link_copied">Bağlantı panoya kopyalandı</string>
<string name="custom_url">Kişisel bağlantı</string> <string name="search_engine_custom">Kişisel bağlantı</string>
<string name="message_blocked_local">Yerel dosyanın yüklenmesi engellendi</string> <string name="message_blocked_local">Yerel dosyanın yüklenmesi engellendi</string>
<string name="licenses">Açık Kaynak Lisansları</string> <string name="licenses">Açık Kaynak Lisansları</string>
<string name="suggestion">Ara</string> <string name="suggestion">Ara</string>

2
app/src/main/res/values-zh-rCN/strings.xml

@ -102,7 +102,7 @@
<string name="max_tabs">达到最大标签数</string> <string name="max_tabs">达到最大标签数</string>
<string name="message_text_copied">文本已复制到剪贴板</string> <string name="message_text_copied">文本已复制到剪贴板</string>
<string name="message_link_copied">链接已复制到剪贴板</string> <string name="message_link_copied">链接已复制到剪贴板</string>
<string name="custom_url">自定义 URL</string> <string name="search_engine_custom">自定义 URL</string>
<string name="message_blocked_local">本地文件已被阻止加载</string> <string name="message_blocked_local">本地文件已被阻止加载</string>
<string name="licenses">开源许可</string> <string name="licenses">开源许可</string>
<string name="suggestion">搜索目标</string> <string name="suggestion">搜索目标</string>

2
app/src/main/res/values-zh-rTW/strings.xml

@ -102,7 +102,7 @@
<string name="max_tabs">達到最大標籤數</string> <string name="max_tabs">達到最大標籤數</string>
<string name="message_text_copied">文本已複製到剪貼板</string> <string name="message_text_copied">文本已複製到剪貼板</string>
<string name="message_link_copied">鏈接已複製到剪貼板</string> <string name="message_link_copied">鏈接已複製到剪貼板</string>
<string name="custom_url">自定義 URL</string> <string name="search_engine_custom">自定義 URL</string>
<string name="message_blocked_local">本地檔已被阻止加載</string> <string name="message_blocked_local">本地檔已被阻止加載</string>
<string name="licenses">開源許可</string> <string name="licenses">開源許可</string>
<string name="suggestion">搜索目標</string> <string name="suggestion">搜索目標</string>

14
app/src/main/res/values/strings.xml

@ -110,7 +110,6 @@
<string name="max_tabs">Max tabs reached</string> <string name="max_tabs">Max tabs reached</string>
<string name="message_text_copied">Text copied to clipboard</string> <string name="message_text_copied">Text copied to clipboard</string>
<string name="message_link_copied">Link copied to clipboard</string> <string name="message_link_copied">Link copied to clipboard</string>
<string name="custom_url">Custom URL</string>
<string name="message_blocked_local">Local file has been blocked from loading</string> <string name="message_blocked_local">Local file has been blocked from loading</string>
<string name="licenses">Open Source Licenses</string> <string name="licenses">Open Source Licenses</string>
<string name="suggestion">Search for</string> <string name="suggestion">Search for</string>
@ -253,4 +252,17 @@
<string name="dialog_title_close_browser">Close browser</string> <string name="dialog_title_close_browser">Close browser</string>
<string name="dialog_delete_download">Delete download</string> <string name="dialog_delete_download">Delete download</string>
<string name="dialog_delete_all_downloads">Delete all downloads</string> <string name="dialog_delete_all_downloads">Delete all downloads</string>
<!-- Search Engines -->
<string name="search_engine_custom">Custom URL</string>
<string name="search_engine_google">Google</string>
<string name="search_engine_ask">Ask</string>
<string name="search_engine_bing">Bing</string>
<string name="search_engine_yahoo">Yahoo</string>
<string name="search_engine_startpage">StartPage</string>
<string name="search_engine_startpage_mobile">StartPage Mobile</string>
<string name="search_engine_duckduckgo">DuckDuckGo</string>
<string name="search_engine_duckduckgo_lite">DuckDuckGo Lite</string>
<string name="search_engine_baidu">Baidu</string>
<string name="search_engine_yandex">Yandex</string>
</resources> </resources>

Loading…
Cancel
Save