diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index b8f47183..261db7d7 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -27,6 +27,7 @@
+ ) getIntent().getSerializableExtra(EXTRA_CLASS)).getConstructor(Activity.class).newInstance(this);
+ } catch (Exception e) {
+ AndroidUtils.assertError("Unable to instantiate the JsonEditorInterface", e);
+ Toast.makeText(this, R.string.invalid, Toast.LENGTH_SHORT).show();
+ finish();
+ return;
+ }
+
+ info = findViewById(R.id.info);
+ this.findViewById(R.id.description).setText(provider.getEditorDescription());
+
+ editor = findViewById(R.id.data);
+ editor.setText(noFailToString(provider.getJson()));
+
+ }
+
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ getMenuInflater().inflate(R.menu.activity_json_editor, menu);
+ AndroidUtils.fixMenuIconColor(menu.findItem(R.id.menu_format), this);
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ // press the 'back' button in the action bar to go back
+ case android.R.id.home -> onBackPressed();
+ // format content
+ case R.id.menu_format -> format();
+ // save
+ case R.id.menu_save -> save();
+ // discard
+ case R.id.menu_discard -> discard();
+ // reset
+ case R.id.menu_reset -> reset();
+ // toggle info visibility
+ case R.id.menu_show_info -> {
+ item.setChecked(!item.isChecked());
+ info.setVisibility(item.isChecked() ? View.VISIBLE : View.GONE);
+ }
+
+ default -> {
+ return super.onOptionsItemSelected(item);
+ }
+ }
+ return true;
+ }
+
+ @Override
+ public void onBackPressed() {
+ // validate
+ JSONObject currentData;
+ try {
+ currentData = new JSONObject(editor.getText().toString());
+ } catch (JSONException e) {
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.invalid)
+ .setMessage(R.string.json_ignore)
+ .setPositiveButton(R.string.json_discard_close, (dialog, which) -> finish())
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
+ return;
+ }
+
+ // check changes, exit if there are none
+ if (Objects.equals(noFailToString(currentData), noFailToString(provider.getJson()))) {
+ finish();
+ return;
+ }
+
+ // ask to save or discard
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.save)
+ .setMessage(R.string.json_save)
+ .setPositiveButton(R.string.save, (dialog, which) -> {
+ var result = provider.saveJson(currentData);
+ if (result == null) {
+ // all ok, exit
+ finish();
+ } else {
+ // error while saving
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.invalid)
+ .setMessage(getString(R.string.json_save_error, result))
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
+ }
+ })
+ .setNeutralButton(R.string.discard, (dialog, which) -> finish())
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
+ }
+
+ /* ------------------- actions ------------------- */
+
+ /** Formats the editor content, shows a dialog if invalid */
+ private void format() {
+ try {
+ editor.setText(new JSONObject(editor.getText().toString()).toString(INDENT_SPACES));
+ } catch (JSONException e) {
+ // invalid json
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.invalid)
+ .setMessage(R.string.json_format_error)
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
+ }
+ }
+
+ /** Discard the editor changes and restore the saved contents */
+ private void discard() {
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.discard)
+ .setMessage(R.string.json_discard)
+ .setPositiveButton(android.R.string.yes, (dialog, which) -> editor.setText(noFailToString(provider.getJson())))
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
+ }
+
+ /** Discard the editor changes and restore the built-in contents */
+ private void reset() {
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.reset)
+ .setMessage(R.string.json_reset)
+ .setPositiveButton(android.R.string.yes, (dialog, which) -> editor.setText(noFailToString(provider.getBuiltInJson())))
+ .setNegativeButton(android.R.string.cancel, null)
+ .show();
+ }
+
+ /** Saved current content. Display a dialog if it's not valid json or the saving failed */
+ private void save() {
+ String result;
+ try {
+ result = provider.saveJson(new JSONObject(editor.getText().toString()));
+ } catch (JSONException e) {
+ // invalid json
+ result = getString(R.string.json_format_error);
+ }
+
+ if (result != null) {
+ // error while saving
+ new AlertDialog.Builder(this)
+ .setTitle(R.string.invalid)
+ .setMessage(getString(R.string.json_save_error, result))
+ .setPositiveButton(android.R.string.ok, null)
+ .show();
+ }
+ }
+
+ /* ------------------- utils ------------------- */
+
+ /** Formats a json into a valid string that doesn't throws a JSON exception */
+ private static String noFailToString(JSONObject content) {
+ try {
+ return content.toString(INDENT_SPACES);
+ } catch (JSONException e) {
+ // panic, don't format then
+ return content.toString();
+ }
+ }
+
+}
diff --git a/app/src/main/java/com/trianguloy/urlchecker/activities/JsonEditorInterface.java b/app/src/main/java/com/trianguloy/urlchecker/activities/JsonEditorInterface.java
new file mode 100644
index 00000000..6ea976a7
--- /dev/null
+++ b/app/src/main/java/com/trianguloy/urlchecker/activities/JsonEditorInterface.java
@@ -0,0 +1,37 @@
+package com.trianguloy.urlchecker.activities;
+
+import static com.trianguloy.urlchecker.activities.JsonEditorActivity.EXTRA_CLASS;
+
+import android.content.Context;
+import android.content.Intent;
+
+import org.json.JSONObject;
+
+/**
+ * If a class implements this, it will be able to show a JSON editor.
+ * IMPORTANT! The class must also have a constructor with a single Activity parameter.
+ */
+public interface JsonEditorInterface {
+
+ /* ------------------------- implementation ------------------------- */
+
+ /** Should return the currently saved json */
+ JSONObject getJson();
+
+ /** Should return the built-in json */
+ JSONObject getBuiltInJson();
+
+ /** Should saves a json. Return null if all ok, a message string to display if not */
+ String saveJson(JSONObject data);
+
+ /** The string id of the description to show in the editor */
+ String getEditorDescription();
+
+ /* ------------------------- usage ------------------------- */
+
+ /** Displays a generic editor for json content. */
+ default void showEditor(Context cntx) {
+ cntx.startActivity(new Intent(cntx, JsonEditorActivity.class)
+ .putExtra(EXTRA_CLASS, this.getClass()));
+ }
+}
diff --git a/app/src/main/java/com/trianguloy/urlchecker/dialogs/JsonEditor.java b/app/src/main/java/com/trianguloy/urlchecker/dialogs/JsonEditor.java
deleted file mode 100644
index 6cdcb16d..00000000
--- a/app/src/main/java/com/trianguloy/urlchecker/dialogs/JsonEditor.java
+++ /dev/null
@@ -1,94 +0,0 @@
-package com.trianguloy.urlchecker.dialogs;
-
-import android.app.Activity;
-import android.app.AlertDialog;
-import android.view.View;
-import android.view.WindowManager;
-import android.widget.EditText;
-import android.widget.TextView;
-import android.widget.Toast;
-
-import com.trianguloy.urlchecker.R;
-
-import org.json.JSONException;
-import org.json.JSONObject;
-
-/**
- * @see this#show
- */
-public class JsonEditor {
-
- public interface Listener {
- /**
- * Current data that the user wants to save.
- * Return true if it is ok and the dialog should be dismissed, false otherwise.
- */
- boolean onSave(JSONObject content);
- }
-
- /**
- * Displays a generic editor for json content.
- */
- public static void show(JSONObject content, JSONObject reset, String description, Activity cntx, Listener onSave) {
-
- // prepare dialog content
- View views = cntx.getLayoutInflater().inflate(R.layout.json_editor, null);
- views.findViewById(R.id.description).setText(description);
-
- // init rules
- EditText data = views.findViewById(R.id.data);
- data.setText(noFailToString(content));
-
- // formatter
- views.findViewById(R.id.format).setOnClickListener(v -> {
- try {
- data.setText(new JSONObject(data.getText().toString()).toString(2));
- } catch (JSONException e) {
- e.printStackTrace();
- Toast.makeText(cntx, R.string.toast_invalid, Toast.LENGTH_SHORT).show();
- }
- });
-
- // prepare dialog
- AlertDialog dialog = new AlertDialog.Builder(cntx)
- .setView(views)
- .setPositiveButton(R.string.save, null) // set below
- .setNegativeButton(android.R.string.cancel, null)
- .setNeutralButton(R.string.reset, null) // set below
- .setCancelable(false)
- .show();
-
- dialog.getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE);
-
- // prepare more dialog
- // these are configured here to disable automatic auto-closing when they are pressed
- dialog.getButton(AlertDialog.BUTTON_POSITIVE).setOnClickListener(v -> {
- try {
- if (onSave.onSave(new JSONObject(data.getText().toString()))) {
- dialog.dismiss();
- }
- } catch (JSONException e) {
- e.printStackTrace();
- Toast.makeText(cntx, R.string.toast_invalid, Toast.LENGTH_SHORT).show();
- }
- });
- dialog.getButton(AlertDialog.BUTTON_NEUTRAL).setOnClickListener(v -> {
- // clear catalog and reload internal
- data.setText(noFailToString(reset));
- });
- }
-
- /**
- * Formats a json into a valid string that doesn't throws a JSON exception
- * (as a function because I needed a final string)
- */
- private static String noFailToString(JSONObject content) {
- try {
- return content.toString(2);
- } catch (JSONException e) {
- // panic, don't format then
- return content.toString();
- }
- }
-
-}
diff --git a/app/src/main/java/com/trianguloy/urlchecker/dialogs/MainDialog.java b/app/src/main/java/com/trianguloy/urlchecker/dialogs/MainDialog.java
index c5e7c1cb..289d03a2 100644
--- a/app/src/main/java/com/trianguloy/urlchecker/dialogs/MainDialog.java
+++ b/app/src/main/java/com/trianguloy/urlchecker/dialogs/MainDialog.java
@@ -233,7 +233,7 @@ protected void onCreate(Bundle savedInstanceState) {
switch (links.size()) {
case 0:
// no links, invalid
- Toast.makeText(this, R.string.toast_invalid, Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, R.string.invalid, Toast.LENGTH_SHORT).show();
finish();
break;
case 1:
diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/companions/ClearUrlCatalog.java b/app/src/main/java/com/trianguloy/urlchecker/modules/companions/ClearUrlCatalog.java
index bc8ae090..eb82ffbf 100644
--- a/app/src/main/java/com/trianguloy/urlchecker/modules/companions/ClearUrlCatalog.java
+++ b/app/src/main/java/com/trianguloy/urlchecker/modules/companions/ClearUrlCatalog.java
@@ -11,7 +11,7 @@
import android.widget.Toast;
import com.trianguloy.urlchecker.R;
-import com.trianguloy.urlchecker.dialogs.JsonEditor;
+import com.trianguloy.urlchecker.activities.JsonEditorInterface;
import com.trianguloy.urlchecker.utilities.generics.GenericPref;
import com.trianguloy.urlchecker.utilities.methods.AndroidUtils;
import com.trianguloy.urlchecker.utilities.methods.HttpUtils;
@@ -31,7 +31,7 @@
/**
* Manages the local catalog with the rules
*/
-public class ClearUrlCatalog {
+public class ClearUrlCatalog implements JsonEditorInterface {
/* ------------------- constants ------------------- */
@@ -182,16 +182,33 @@ public void clear() {
* Show the rules editor dialog
*/
public void showEditor() {
- JsonEditor.show(getCatalog(), getBuiltIn(), cntx.getString(R.string.mClear_editor), cntx, content -> {
- if (setRules(content, false) != Result.ERROR) {
- // saved data, close dialog
- return true;
- } else {
- // invalid data, keep dialog and show why
- Toast.makeText(cntx, R.string.toast_invalid, Toast.LENGTH_LONG).show();
- return false;
- }
- });
+ showEditor(cntx);
+ }
+
+ @Override
+ public JSONObject getJson() {
+ return getCatalog();
+ }
+
+ @Override
+ public JSONObject getBuiltInJson() {
+ return getBuiltIn();
+ }
+
+ @Override
+ public String saveJson(JSONObject data) {
+ if (setRules(data, false) != Result.ERROR) {
+ // saved data, close dialog
+ return null;
+ } else {
+ // invalid data, keep dialog and return why
+ return cntx.getString(R.string.invalid);
+ }
+ }
+
+ @Override
+ public String getEditorDescription() {
+ return cntx.getString(R.string.mClear_editor);
}
/**
@@ -315,7 +332,7 @@ private int _updateCatalog() {
json = new JSONObject(rawRules);
} catch (JSONException e) {
e.printStackTrace();
- return R.string.toast_invalid;
+ return R.string.invalid;
}
// valid, save and update
@@ -327,7 +344,7 @@ private int _updateCatalog() {
return R.string.mClear_upToDate;
case ERROR:
default:
- return R.string.toast_invalid;
+ return R.string.invalid;
}
}
diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Hosts.java b/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Hosts.java
index 9cf2492b..c482900d 100644
--- a/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Hosts.java
+++ b/app/src/main/java/com/trianguloy/urlchecker/modules/companions/Hosts.java
@@ -50,7 +50,7 @@ public void build(boolean showEditor, Runnable onFinished) {
);
if (showEditor) builder
- .setNeutralButton(R.string.json_edit, (dialog, which) -> data.showEditor());
+ .setNeutralButton(R.string.json_editor, (dialog, which) -> data.showEditor());
builder.show();
}
diff --git a/app/src/main/java/com/trianguloy/urlchecker/modules/list/FlagsModule.java b/app/src/main/java/com/trianguloy/urlchecker/modules/list/FlagsModule.java
index 709c9e41..4af4ba42 100644
--- a/app/src/main/java/com/trianguloy/urlchecker/modules/list/FlagsModule.java
+++ b/app/src/main/java/com/trianguloy/urlchecker/modules/list/FlagsModule.java
@@ -437,7 +437,7 @@ private void storePreferences(ViewGroup vg, InternalFile file, String group) {
file.set(newSettings.toString());
} catch (JSONException e) {
e.printStackTrace();
- Toast.makeText(getActivity(), R.string.toast_invalid, Toast.LENGTH_SHORT).show();
+ Toast.makeText(getActivity(), R.string.invalid, Toast.LENGTH_SHORT).show();
}
}
diff --git a/app/src/main/java/com/trianguloy/urlchecker/utilities/generics/JsonCatalog.java b/app/src/main/java/com/trianguloy/urlchecker/utilities/generics/JsonCatalog.java
index 83afa68e..8441ba7a 100644
--- a/app/src/main/java/com/trianguloy/urlchecker/utilities/generics/JsonCatalog.java
+++ b/app/src/main/java/com/trianguloy/urlchecker/utilities/generics/JsonCatalog.java
@@ -3,7 +3,8 @@
import android.app.Activity;
import android.content.Context;
-import com.trianguloy.urlchecker.dialogs.JsonEditor;
+import com.trianguloy.urlchecker.R;
+import com.trianguloy.urlchecker.activities.JsonEditorInterface;
import com.trianguloy.urlchecker.utilities.wrappers.InternalFile;
import org.json.JSONException;
@@ -12,7 +13,7 @@
/**
* Represents a generic catalog
*/
-public abstract class JsonCatalog {
+public abstract class JsonCatalog implements JsonEditorInterface {
private final Activity cntx;
private final InternalFile custom;
@@ -75,11 +76,30 @@ public boolean save(JSONObject content) {
return custom.set(content.toString());
}
- /**
- * Shows a dialog to manually edit the catalog
- */
+
+ @Override
+ public JSONObject getJson() {
+ return getCatalog();
+ }
+
+ @Override
+ public JSONObject getBuiltInJson() {
+ return getBuiltIn();
+ }
+
+ @Override
+ public String saveJson(JSONObject data) {
+ return save(data) ? null : cntx.getString(R.string.invalid);
+ }
+
+ @Override
+ public String getEditorDescription() {
+ return editorDescription;
+ }
+
+ /** Displays a generic editor for json content. */
public void showEditor() {
- JsonEditor.show(getCatalog(), getBuiltIn(), editorDescription, cntx, this::save);
+ showEditor(cntx);
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/trianguloy/urlchecker/utilities/methods/JavaUtils.java b/app/src/main/java/com/trianguloy/urlchecker/utilities/methods/JavaUtils.java
index 5389d1f9..480f7399 100644
--- a/app/src/main/java/com/trianguloy/urlchecker/utilities/methods/JavaUtils.java
+++ b/app/src/main/java/com/trianguloy/urlchecker/utilities/methods/JavaUtils.java
@@ -15,9 +15,7 @@
*/
public interface JavaUtils {
- /**
- * Converts an iterator to a list
- */
+ /** Converts an iterator to a list */
static List toList(Iterator iterator) {
List list = new ArrayList<>();
while (iterator.hasNext()) {
@@ -35,9 +33,7 @@ static List mapEach(List list, Function mapper) {
return result;
}
- /**
- * Converts a string into a json object, returns empty on failure
- */
+ /**Converts a string into a json object, returns empty on failure */
static JSONObject toJson(String content) {
try {
return new JSONObject(content);
@@ -85,9 +81,7 @@ static T getAsOrCrash(Object object, Class clazz) throws ClassCastExcepti
}
}
- /**
- * Clamps a value between two other values.
- */
+ /** Clamps a value between two other values. */
static int clamp(int min, int value, int max) {
return min <= max ? Math.max(min, Math.min(value, max))
// just in case
@@ -179,9 +173,7 @@ static Function negate(Function function) {
return t -> !function.apply(t);
}
- /**
- * java.util.function.UnaryOperator requires api 24
- */
+ /** java.util.function.UnaryOperator requires api 24 */
@FunctionalInterface
interface UnaryOperator extends Function {
}
diff --git a/app/src/main/res/drawable/format.xml b/app/src/main/res/drawable/format.xml
index 7edc1b43..d10bbc2f 100644
--- a/app/src/main/res/drawable/format.xml
+++ b/app/src/main/res/drawable/format.xml
@@ -5,6 +5,6 @@
android:width="24dp"
xmlns:android="http://schemas.android.com/apk/res/android">
diff --git a/app/src/main/res/layout/activity_automation.xml b/app/src/main/res/layout/activity_automation.xml
index db9bf40c..469ebad0 100644
--- a/app/src/main/res/layout/activity_automation.xml
+++ b/app/src/main/res/layout/activity_automation.xml
@@ -43,7 +43,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="openJsonEditor"
- android:text="@string/json_edit" />
+ android:text="@string/json_editor" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/activity_json_editor.xml b/app/src/main/res/layout/activity_json_editor.xml
new file mode 100644
index 00000000..8577c076
--- /dev/null
+++ b/app/src/main/res/layout/activity_json_editor.xml
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/config_clearurls.xml b/app/src/main/res/layout/config_clearurls.xml
index cc1e914f..7e9381fe 100644
--- a/app/src/main/res/layout/config_clearurls.xml
+++ b/app/src/main/res/layout/config_clearurls.xml
@@ -53,7 +53,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
- android:text="@string/json_edit" />
+ android:text="@string/json_editor" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/config_hosts.xml b/app/src/main/res/layout/config_hosts.xml
index de08e1fd..557a140b 100644
--- a/app/src/main/res/layout/config_hosts.xml
+++ b/app/src/main/res/layout/config_hosts.xml
@@ -14,13 +14,13 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
-
+
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/app/src/main/res/layout/config_patterns.xml b/app/src/main/res/layout/config_patterns.xml
index d359d218..84d202f8 100644
--- a/app/src/main/res/layout/config_patterns.xml
+++ b/app/src/main/res/layout/config_patterns.xml
@@ -14,7 +14,7 @@
style="?android:attr/buttonBarButtonStyle"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/json_edit" />
+ android:text="@string/json_editor" />
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/app/src/main/res/menu/activity_json_editor.xml b/app/src/main/res/menu/activity_json_editor.xml
new file mode 100644
index 00000000..0df7cfe7
--- /dev/null
+++ b/app/src/main/res/menu/activity_json_editor.xml
@@ -0,0 +1,27 @@
+
+
\ No newline at end of file
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index a66c6257..d47da89a 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -74,7 +74,7 @@
لا يمكن فتح التطبيقلا يمكن فتح متصفح الويباختر التطبيق
- غير صالح
+ غير صالححفظإغلاقمسح
@@ -91,7 +91,7 @@
التاليالسابقتجاهل
- محرر متقدم
+ محرر متقدمالتحقق من عناوين الويب URLs الموجودة في الحافظةفحص النمطإصلاح مجموعات الفحص النمطية الاختيارية (تعطيلها إذا كان الفحص النمطي لا يعمل بشكل صحيح)
@@ -163,7 +163,6 @@
إنهاء الدليل التعليميإعادة الضبطلم يتم اكتشاف أي روابط
- [ميزة تجريبية] هذا محرر متقدم، يجب تنسيق المحتوى إلى JSON صالح. يمكنك الضغط على الزر في الزاوية العلوية اليمنى لتنسيقه والتحقق من صحته.هذه الوحدة تقوم بفحص عنوان الويب باستخدام أنماط الفحص النمطية التي تحذر، تقترح أو تطبق الاستبدالات. يمكنك تعديل أو إنشاء أنماط خاصة بك، أو حتى استخدام أنماط تم إنشاؤها من قبل المستخدمين.
\nالأنماط المضمنة تشمل:
\n- تحذير عندما يحتوي على أحرف غير ascii مثل الحروف اليونانية. يمكن استخدام هذا للصيد الاحتيالي: googĺe.com بدلاً من google.com
diff --git a/app/src/main/res/values-cs/strings.xml b/app/src/main/res/values-cs/strings.xml
index 55828e74..d2844cc7 100644
--- a/app/src/main/res/values-cs/strings.xml
+++ b/app/src/main/res/values-cs/strings.xml
@@ -39,7 +39,7 @@
Aplikaci není možno otevřítWebový prohlížeč není možno otevřítVyberte aplikaci
- Neplatné
+ NeplatnéUložitObnovitZavřít
@@ -121,7 +121,7 @@
\n- \'enabled\': boolean: nastavte na false, abyste vzor deaktivovali.
\nPoznámka: Pokud si vzory upravíte, nové výchozí vzory z aktualizací aplikace se automaticky nepřidají (můžete je obnovit pomocí možnosti reset).Otevřít v %s
- Pokročilý editor
+ Pokročilý editorSeznam změnZde jsou uvedeny všechny dostupné moduly, u kterých si můžete zkontrolovat jejich popis a nastavení. Můžete také změnit jejich pořadí, přepnout viditelnost názvu či je povolit/zakázat.Otevírání odkazů v této aplikaci: V průběhu let Android změnil způsob nastavení otevírání odkazů a značně se tak liší mezi jednotlivými verzemi. Níže najdete výběr možných kroků nastavení pro vaše zařízení. Pokud se odkazy v této aplikaci neotevírají, vyzkoušejte je všechny.
@@ -144,7 +144,6 @@
\n
\nSeznam modulů otevřete na hlavní obrazovce nebo klepnutím na tlačítko níže.
Zpět
- [Funkce v betě] Toto je pokročilý editor, obsah musí být naformátován do platného JSON. Stisknutím pravého horního tlačítka jej naformátujete a potvrdíte.Najít URL odkaz(y) ve schránceTento modul kontroluje adresu URL pomocí vzorů regulárních výrazů (regex), které varují, navrhují či nahrazují. Můžete upravovat nebo vytvářet své vlastní vzory, nebo dokonce používat ty vytvořené uživatelem.
\nMezi vestavěné vzory patří:
diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml
index df267485..14be939a 100644
--- a/app/src/main/res/values-de/strings.xml
+++ b/app/src/main/res/values-de/strings.xml
@@ -20,7 +20,7 @@
Tutorial überspringenWebbrowser kann nicht geöffnet werdenApp auswählen
- Ungültig
+ UngültigZurücksetzenLeerenNichts
@@ -34,7 +34,7 @@
Geräte-StandardWeiterZurück
- JSON Editor
+ JSON EditorURLs aus der Zwischenablage prüfenTippen Sie zum Testen auf folgenden Link:Module
@@ -56,7 +56,6 @@
TDiese App fungiert als Zwischenschritt beim Öffnen angeklickter Links. Wenn diese App zum Öffnen ausgewählt wurde, wird ein Dialog mit einigen Informationen über den Link angezeigt. Über den Module-Button unten können Sie alle verfügbaren Module prüfen und konfigurieren.Alle Titel umschalten
- Json Editor: Der Inhalt muss gültiges JSON sein. Sie können die Schaltfläche oben rechts drücken, um das JSON zu formatieren und zu validieren.Muster (RegEx)Öffnen und TeilenBenutzerdefinierte Tabs:
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index 797301c6..9456776a 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -82,7 +82,7 @@ Hay algunos enlaces cuyo único propósito es redirigirte a otro enlace. Si el e
No se puede abrir la aplicaciónNo se puede abrir el navegadorElige aplicación
- Invalido
+ InvalidoGuardarReiniciarCerrar
@@ -99,8 +99,15 @@ Hay algunos enlaces cuyo único propósito es redirigirte a otro enlace. Si el e
- Editor Json: el contenido debe ser Json válido. Puedes pulsar el botón de arriba a la derecha para formatearlo y validarlo.
- Editor Json
+ Editor Json
+ Mostrar información
+ El contenido no es Json válido. Quieres descartarlo y cerrar el editor?
+ Descartar y cerrar
+ Hay cambios sin guardar, quieres guardarlos o descartarlos?
+ No se ha podido guardar: %s
+ El contenido no es Json válido, no se puede validar.
+ Cuidado, esto reemplazará el contenido del editor con el json guardado. Todos los cambios realizados se perderán. Quieres continuar?
+ Cuidado, esto reemplazará el contenido del editor con el json por defecto. Todos los cambios realizados se perderán, aunque el contenido guardado no se modificará a no ser que se guarde manualmente. Quieres continuar?
@@ -254,7 +261,7 @@ Hay algunos enlaces cuyo único propósito es redirigirte a otro enlace. Si el e
Mostrar información detallada del proceso de limpiezaNo se pudo comprobar la reglaActualizador
- Url del fichero JSON con el catálogo de reglas:
+ Url del fichero Json con el catálogo de reglas:URL del catálogoUrl del hash del fichero del catálogo. Si se omite, la descarga no será comprobada por si ha sido alterada/modificada (no se recomienda)No comprobar hash
diff --git a/app/src/main/res/values-fr-rFR/strings.xml b/app/src/main/res/values-fr-rFR/strings.xml
index addf1f20..f3336ea7 100644
--- a/app/src/main/res/values-fr-rFR/strings.xml
+++ b/app/src/main/res/values-fr-rFR/strings.xml
@@ -84,7 +84,7 @@ Ceci est le didacticiel, si vous souhaitez l'ignorer vous pouvez le faire en uti
Impossible d\'ouvrir l\'applicationImpossible d\'ouvrir le navigateurChoisir l\'app
- Invalide
+ InvalideSauvegarderRéinitialiserFermer
@@ -97,8 +97,7 @@ Ceci est le didacticiel, si vous souhaitez l'ignorer vous pouvez le faire en uti
- Editeur Json: le contenu doit être formaté en JSON valide. Vous pouvez appuyer sur le bouton en haut à droite pour le formater et le valider.
- Éditeur Json
+ Éditeur Json
@@ -108,7 +107,7 @@ Ceci est le didacticiel, si vous souhaitez l'ignorer vous pouvez le faire en uti
-->
Vérificateur de modèleCe module vérifie l\'URL avec des modèles d\'expression régulière (regex) qui avertissent, suggèrent et/ou appliquent des remplacements. Vous pouvez modifier ou créer vos propres modèles, ou même utiliser ceux créés par d\'autres utilisateurs.
-\nLes modèles intégrés comprennent:
+\nLes modèles intégrés comprennent:
\n- Avertissement de la présence de caractères non-ascii comme les lettres grecques. Cela peut être utilisé pour l\'hameçonnage : googĺe.com au lieu de google.com.
\n- suggestion de remplacement des liens en \'http\' par \'https\'.
\n- suggestion de remplacement de Youtube, Reddit ou Twitter par des alternatives respectueuses de la vie privée [désactivé par défaut]
diff --git a/app/src/main/res/values-hi/strings.xml b/app/src/main/res/values-hi/strings.xml
index 9021c627..8ecef87f 100644
--- a/app/src/main/res/values-hi/strings.xml
+++ b/app/src/main/res/values-hi/strings.xml
@@ -23,7 +23,7 @@
स्रोत कोडइस ऐप पर लिंक खोलें: पिछले कुछ वर्षों में एंड्रॉइड ने इसे कॉन्फ़िगर करने का तरीका बदल दिया है, और संस्करणों के बीच अंतर किया है। अपने डिवाइस के लिए सभी उपलब्ध सेटिंग्स नीचे खोजें, यदि इस ऐप पर लिंक नहीं खुल रहे हैं तो उन सभी को आज़माएं।ख़ारिज करें
- अमान्य
+ अमान्यबंदसहेजेंरीसेट
@@ -50,7 +50,6 @@
अमान्य http scheme बड़ा किया।वर्तमान संस्करण: %sवैकल्पिक regex समूहों को ठीक करें (यदि regex सही ढंग से काम नहीं कर रहा है तो अक्षम करें)
- [बीटा सुविधा] यह एक उन्नत संपादक है, सामग्री को वैध JSON में स्वरूपित किया जाना चाहिए। आप इसे प्रारूपित करने और सत्यापित करने के लिए शीर्ष-दाएं बटन दबा सकते हैं।HTTP लिंक। HTTPS का उपयोग विचारें।अगलाउपयोगकर्ता द्वारा बनाए गए अन्य उपयोगी पैटर्न की सूची: %s
@@ -85,7 +84,7 @@
लागूHTTP scheme अनुपलब्ध।अमान्य https scheme बड़ा किया।
- उन्नत संपादक
+ उन्नत संपादकलागू किया - %sयूआरएल क्लिपबोर्ड पर कॉपी किया गयासाझा
diff --git a/app/src/main/res/values-in/strings.xml b/app/src/main/res/values-in/strings.xml
index d8a52804..8a80a692 100644
--- a/app/src/main/res/values-in/strings.xml
+++ b/app/src/main/res/values-in/strings.xml
@@ -40,7 +40,7 @@
Kode sumberModul berfungsi sebagai pengatur perilaku aplikasi ketika berinteraksi dengan URL. \nMasing-masing modul memiliki fungsi khusus yang spesifik. Biasanya sebagai penampil info dan pemodifikasi URL terkait. \nSilahkan baca informasi terkait modul-modul ini dan atur sesuai kebutuhan. \n \nPenting: Secara bawaan, semua tindakan terkait dilakukan secara manual. Aplikasi ini tidak akan memodifikasi apa pun atau terhubung ke internet kecuali secara spesifik Anda memberikan izin aplikasi. Meski begitu, beberapa tindakan bisa dilakukan secara otomatis sesuai keinginan Anda. \n \nSilakan buka daftar modul pada laman utama atau tekan tombol di bawah ini.Memindai…
- Taksahih
+ TaksahihTutupSimpanKetika modul ini diaktifkan, Anda bisa memindai URL menggunakan VirusTotal serta mengecek hasil laporannya. Sebuah kunci API VirusTotal pribadi diperlukan agar modul ini bisa bekerja. Anda bisa mendapatkannya setelah membuat sebuah akun gratis di sini: https://www.virustotal.com/gui/join-us .
@@ -49,7 +49,6 @@
Modul ini menghilangkan pelacakan, perujuk, dan parameter lain yang tidak bermanfaat di URL. Ia juga bisa melacak pengalihan URL luring yang umum digunakan.Tidak dapat melakukan koneksi ke VirusTotal. Pastikan Anda terhubung ke internet, atau coba lagi nanti.Perbaiki grup regex yang opsional (nonaktifkan jika regex tidak bekerja dengan baik)
- Penyunting Json: konten terkait harus berupa format JSON yang valid. Anda dapat menekan tombol sebelah kanan atas untuk memformat dan memvalidasi konten.Link HTTP. Pertimbangkan untuk beralih ke HTTPS.Cek statusJika Anda mengubah urutan modul, modul baru yang ditambahkan pada pembaruan selanjutnya akan diletakkan di atas modul ini.
@@ -136,7 +135,7 @@
TerapkanSkema HTTP tidak ditemukan.Skema https tidak valid.
- Penyunting Json
+ Penyunting Json%s - telah diterapkanModul Awakutu/PenandaURL telah disalin ke papan klip
diff --git a/app/src/main/res/values-it/strings.xml b/app/src/main/res/values-it/strings.xml
index 6153913b..e7bfc6ef 100644
--- a/app/src/main/res/values-it/strings.xml
+++ b/app/src/main/res/values-it/strings.xml
@@ -48,7 +48,7 @@ Traduzioni: %2$s."Impossibile aprire l\'appImpossibile aprire il browser webScegli app
- Invalido
+ InvalidoSalvaResetChiudi
@@ -57,8 +57,7 @@ Traduzioni: %2$s."CondividiCancellatoImpostazioni predefinite
- Editor Json: il contenuto dev\'essere formattato in JSON. Puoi premere il pulsante in alto a destra per formattare e convalidarlo.
- Editor Json
+ Editor JsonControllo dei patternQuesto modulo controlla l\'url con modelli regex che avvertono, suggeriscono o applicano sostituzioni. Puoi modificare o creare i tuoi modelli, o anche utilizzare quelli creati dagli utenti.\nModelli incorporati includono:\n- Avvisa quando contiene caratteri non ascii come le lettere greche. Questo puo` essere utilizzato per il phishing: googĺe.com vs google.com\n- Suggerisce di sostituire \"http\" con \"https\"\n- Suggerisce di sostituire Youtube, Reddit o Twitter con alternative privacy-friendly [disabilitato di default]
diff --git a/app/src/main/res/values-iw/strings.xml b/app/src/main/res/values-iw/strings.xml
index 87d18907..62dbb9bd 100644
--- a/app/src/main/res/values-iw/strings.xml
+++ b/app/src/main/res/values-iw/strings.xml
@@ -27,12 +27,11 @@
"לא ניתן לפתוח את האפליקציה""לא מצליח לפתוח את הדפדפן"בחר אפליקציה
- לא חוקי
+ לא חוקילהצילאיפוסשתף אפליקציה
- [תכונת בטא] זהו עורך מתקדם, התוכן חייב להיות בפורמט ל-JSON חוקי. אתה יכול ללחוץ על הכפתור הימני העליון כדי לעצב ולאמת אותו.
- עורך מתקדם
+ עורך מתקדםבודק דפוסים"בודק בעיות נפוצות בכתובת האתר. דפוסים מובנים:
diff --git a/app/src/main/res/values-ja/strings.xml b/app/src/main/res/values-ja/strings.xml
index 07a71827..1cfde937 100644
--- a/app/src/main/res/values-ja/strings.xml
+++ b/app/src/main/res/values-ja/strings.xml
@@ -48,7 +48,7 @@
アプリを開けませんWeb ブラウザを開けませんアプリを選択
- 無効です
+ 無効です保存リセット閉じる
@@ -57,8 +57,7 @@
このアプリを友達に自慢するキャンセルされましたデバイスの設定に従う
- [ベータ機能] これは上級者向けのエディタです。内容は有効な JSON にフォーマットされている必要があります。右上のボタンをタップすると、フォーマット・検証ができます。
- 上級者向けエディタ
+ 上級者向けエディタパターンチェッカー"正規表現パターンで URL をチェックし、警告・提案・置換をします。パターンは変更したり、独自に作成したり、あるいは他のユーザーが作成したものを使用することもできます。
diff --git a/app/src/main/res/values-ko/strings.xml b/app/src/main/res/values-ko/strings.xml
index 33bb25db..a32987e7 100644
--- a/app/src/main/res/values-ko/strings.xml
+++ b/app/src/main/res/values-ko/strings.xml
@@ -84,13 +84,12 @@
뒤로카탈로그 규칙: https://docs.clearurls.xyz/latest/specs/rules/ 의 형식을 따라야 합니다.
\n부모 객체인 \'providers\'는 업데이트되었을 때 덮어씌어진다는 점을 주의하세요. 만약 개인적으로 규칙을 만들고 싶다면 아무 이름이나로 다른 부모 객체를 만들어서 규칙을 설정하세요.
- 유효하지 않음
- [베타 기능] 이 고급 편집에서는 유효한 JSON 파일이 반드시 포함되어야 합니다. 오른쪽 위 버튼을 눌러서 유효한지 확인하세요.
+ 유효하지 않음지우기클립보드에서 URL 확인하기주의: %1$d/%2$d 엔진이 URL을 감지했습니다. (%3$s 기준)스캔하기
- 고급 편집
+ 고급 편집VirusTotal™은 Google, Inc.의 트레이드마크입니다.스캔 중…이 모듈이 활성화되어 있을 때 VirusTotal을 이용해 URL을 검사할 수 있습니다. 개인 VirusTotal API 키가 필요하며, 키는 https://www.virustotal.com/gui/join-us 에서 무료로 회원가입 후 받을 수 있습니다.
diff --git a/app/src/main/res/values-nb-rNO/strings.xml b/app/src/main/res/values-nb-rNO/strings.xml
index aaac7f96..d01cd1cd 100644
--- a/app/src/main/res/values-nb-rNO/strings.xml
+++ b/app/src/main/res/values-nb-rNO/strings.xml
@@ -27,7 +27,7 @@
EnhetsforvalgNesteTilbake
- Avansert tekstbehandler
+ Avansert tekstbehandlerBrukSjekk nettadresser fra utklippstavlenHTTP-lenke. Overvei å bruke HTTPS.
@@ -98,7 +98,7 @@
TømKan ikke åpne programmetVelg program
- Ugyldig
+ UgyldigLagreAutomatiskURL-renser
diff --git a/app/src/main/res/values-nl/strings.xml b/app/src/main/res/values-nl/strings.xml
index b76ffdd2..69ce6b50 100644
--- a/app/src/main/res/values-nl/strings.xml
+++ b/app/src/main/res/values-nl/strings.xml
@@ -5,7 +5,7 @@
NegerenNaar beneden verplaatsenScannen…
- Ongeldig
+ OngeldigSluitKan de module niet inschakelen: %sOpslaan
@@ -20,7 +20,6 @@
Herhaal tutorialKan geen verbinding maken met VirusTotal. Zorg ervoor dat u verbonden bent met internet of probeer het later opnieuw.Optionele regex-groepen repareren (uitschakelen als regex niet correct werkt)
- Json-editor: de content moet worden geformatteerd in geldige JSON. U kunt op de knop rechtsboven drukken om het te formatteren en valideren.TutorialDe app is nu de standaardwebbrowserHTTP-link. Overweeg het gebruik van HTTPS.
@@ -154,7 +153,7 @@
\n
\nOpen de lijst met modules vanuit het hoofdscherm of door op de onderstaande knop te tikken.Ongeldig hoofdlettergebruik van https-schema.
- Json editor
+ Json editorToegepast - %sDebug/Marker-moduleURL gekopieerd naar klembord
diff --git a/app/src/main/res/values-or/strings.xml b/app/src/main/res/values-or/strings.xml
index 3c75c46c..c14c7bcf 100644
--- a/app/src/main/res/values-or/strings.xml
+++ b/app/src/main/res/values-or/strings.xml
@@ -13,7 +13,7 @@
ହାଲୁକାସ୍ୱଚାଳିତଡିଵାଇସ୍ ଡିଫଲ୍ଟ
- ଅଵୈଧ
+ ଅଵୈଧଯାଞ୍ଚ ଚାଲିଛି…ସ୍ଥିତି ଯାଞ୍ଚଇତିଵୃତ୍ତି
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 46a6b73c..9572a052 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -7,7 +7,7 @@
TutorialCanceladoPróximo
- Editor avançado
+ Editor avançadoDesabilitado por padrãoAplicarSem dados
@@ -43,7 +43,7 @@
Mover para cimaRedefinirLimpar
- Inválido
+ InválidoAutomáticoHistóricoLog
@@ -127,7 +127,6 @@
Catálogo embutido copiado do ClearURLs: https://docs.clearurls.xyz/latest/specs/rules/- BLOQUEADO!- ignorado devido a exceção %s
- [Função Beta] Este é um editor avançado, o conteúdo deve ser formatado em JSON válido. Você pode pressionar o botão no canto superior direito para formatá-lo e validá-lo.Esquema HTTPS ausente.Não há padrões correspondentes.Substituir as URLs de redirecionamento automaticamente
diff --git a/app/src/main/res/values-pt-rPT/strings.xml b/app/src/main/res/values-pt-rPT/strings.xml
index 0818d931..ebc94e57 100644
--- a/app/src/main/res/values-pt-rPT/strings.xml
+++ b/app/src/main/res/values-pt-rPT/strings.xml
@@ -58,7 +58,7 @@ Translations: %2$s."Não foi possível abrir a appNão foi possível abrir o navegadorEscolher aplicação
- Inválido
+ InválidoSalvaResetarFechar
@@ -68,8 +68,7 @@ Translations: %2$s."
- [Função Beta] Isto é um editor avançado, o conteudo tem que estar formatado em JSON válido. Podes pressionar o botão no canto superior direito para formatar e validar.
- Editor Avançado
+ Editor Avançado
diff --git a/app/src/main/res/values-ro/strings.xml b/app/src/main/res/values-ro/strings.xml
index 58b63f9d..7cdafc28 100644
--- a/app/src/main/res/values-ro/strings.xml
+++ b/app/src/main/res/values-ro/strings.xml
@@ -88,7 +88,7 @@
Nu se poate deschide aplicațiaNu se poate deschide browser-ul webAlegeți aplicația
- Invalid
+ InvalidSalveazăResetareÎnchide
@@ -99,8 +99,7 @@
Dispozitiv implicitUrmătorÎnapoi
- [Funcția beta] Acesta este un editor avansat, conținutul trebuie formatat în JSON valid. Puteți apăsa butonul din dreapta sus pentru a-l formata și valida.
- Editor avansat
+ Editor avansatAcest modul verifică adresa URL cu modele regex care avertizează, sugerează sau aplică înlocuiri. Puteți modifica sau crea propriile modele sau chiar să le utilizați pe cele create de utilizator.
\nModelele încorporate includ:
\n- Avertizare când conține caractere non-ascii, cum ar fi literele grecești. Acesta poate fi folosit pentru phishing: googĺe.com vs google.com
diff --git a/app/src/main/res/values-ru/strings.xml b/app/src/main/res/values-ru/strings.xml
index 2bdcdf8c..d1b80a7c 100644
--- a/app/src/main/res/values-ru/strings.xml
+++ b/app/src/main/res/values-ru/strings.xml
@@ -5,7 +5,7 @@
Это приложение выступает в качестве посредника при открытии URL-ссылок. Диалоговое окно с некоторой информацией о ссылке отображается, если открывается этим приложением. Нажмите на кнопку ниже, чтобы проверить и настроить все доступные модули.Показать/скрыть заголовокОтклонить
- Неверный
+ НеверныйЗакрытьНе могу включить модуль: %sСохранить
@@ -76,7 +76,7 @@
\nВажно: Все действия выполняются вручную. Приложение не будет ничего модифицировать, а также не будет подключаться к интернету, если вы отдельно не разрешите этого, но некоторые действия при вашем желании могут применяться автоматически.
\n
\nОткройте список модулей на главном экране или нажав на кнопку ниже.
- Продвинутый редактор
+ Продвинутый редакторПоделитьсяВыключено по умолчаниюВыберите приложение
@@ -89,7 +89,6 @@
Последнее обновление:Невозможно подключиться к VirusTotal. Удостоверьтесь, что вы подключены к интернету, или попробуйте позже.Исправить необязательные группы регулярных выражений (отключите, если регулярные выражения работают неправильно)
- [Бета-функция] Это продвинутый редактор, содержимое обязано быть форматировано в допустимый JSON. Вы можете нажать кнопку в правом верхнем углу для форматирования и проверки.HTTP ссылка. Лучше использовать HTTPS.Проверить состояниеЕсли вы переставите модули, то те, добавленные в будущих обновлениях, будут размещены выше этого.
@@ -284,4 +283,13 @@
\nПри восстановлении, если бэкап был создан без него, существующие будут сохранены.ЗаменитьУдалить элементы
-
\ No newline at end of file
+ Кэш: данные, которые легко можно загрузить/сгенерировать, например, база данных хостов. Включение этой опции может значительно увеличить размер резервной копии.
+ Выберите файл бэкапа
+ Данные: стандартные данные приложения. Такие как включенные модули, JSON-конфигурации и т.д. Не содержат секреты и кэш.
+ Восстановить бэкап
+ Бэкап создан
+ Файлы: данные сохранены как файлы.
+ Секреты: данные, считающиеся «секретными», такие как ключ API Virustotal или журнал.
+ Разрешить резервные копии, созданные в более новых версиях приложения.
+ Отменено. Резервная копия была создана в более новой версии приложения.
+
diff --git a/app/src/main/res/values-sr/strings.xml b/app/src/main/res/values-sr/strings.xml
index 888945a7..d20264de 100644
--- a/app/src/main/res/values-sr/strings.xml
+++ b/app/src/main/res/values-sr/strings.xml
@@ -32,7 +32,7 @@
VodičPostavite aplikaciju kao podrazumevani veb pregledač da presreće URL-ove kada ih otvarate.
\n(Nije potrebno ako se URL-ovi preusmeravaju pomoću funkcije „Deli“.)
- Nevažeći
+ NevažećiSačuvajResetujZatvori
@@ -200,9 +200,7 @@
\n
\nNadamo se da će vam aplikacija biti korisna! I ne ustručavajte se da predložite funkcije, prijavite greške ili čak predložite izmene. Pronađite sve relevantne veze na ekranu o informacijama.
Otkazano
- Json editor: sadržaj mora biti formatiran u važeći JSON. Možete da pritisnete dugme u gornjem desnom uglu da biste ga formatirali i potvrdili.Proverite URL-ove iz međuspremnika
- Json editorProvera šablonaOvaj modul proverava URL sa obrascima regex šablona koji upozorava, predlaže ili primenjuje zamene. Možete modifikovati ili kreirati sopstvene šablone, ili čak koristiti one koje kreiraju korisnici.
\nUgrađeni obrasci uključuju:
@@ -349,4 +347,4 @@
Deliće URL. Ekvivalentno pritisku na dugme \'deli\'.Kopiraće URL. Ekvivalentno pritisku na dugme \'kopiraj\'.Ovaj modul šalje URL adrese konfigurisanoj krajnjoj tački veb-huka. Svaki URL se šalje sa vremenskom oznakom, što vam omogućava da prikupljate i obrađujete URL-ove na sopstvenom serveru.\nHvala anoop-b na ideji i osnovnoj implementaciji!\n\nKonfigurišite URL i telo veb-huka ispod da biste počeli da šaljete URL-ove.\nZa telo možete da koristite čuvare mesta $URL$ i $TIMESTAMP$.
-
\ No newline at end of file
+
diff --git a/app/src/main/res/values-tr/strings.xml b/app/src/main/res/values-tr/strings.xml
index ef2a0b2d..4713f17d 100644
--- a/app/src/main/res/values-tr/strings.xml
+++ b/app/src/main/res/values-tr/strings.xml
@@ -85,7 +85,7 @@ Umarım uygulamayı yararlı bulursunuz! Ve özellikler önermekten, hataları b
Uygulama açılamıyorTarayıcı açılamıyorUygulama seç
- Geçersiz
+ GeçersizKaydetSıfırlaKapat
@@ -100,8 +100,7 @@ Umarım uygulamayı yararlı bulursunuz! Ve özellikler önermekten, hataları b
- JSON Düzenleyici: İçerik geçerli bir JSON formatına dönüştürülmeli. Formatlama ve doğrulama yapmak için sağ üst düğmeye basabilirsiniz.
- Json düzenleyici
+ Json düzenleyici
diff --git a/app/src/main/res/values-uk/strings.xml b/app/src/main/res/values-uk/strings.xml
index d0a5a852..31af3146 100644
--- a/app/src/main/res/values-uk/strings.xml
+++ b/app/src/main/res/values-uk/strings.xml
@@ -36,7 +36,7 @@
Неможливо відкрити програмуНеможливо відкрити переглядачВиберіть програму
- Невірний
+ НевірнийПоділитись додатком
- Json 编辑器:内容必须为有效的 JSON 格式。您可以点击右上角的按钮进行格式化与验证。
- Json 编辑器
+ Json 编辑器检查剪贴板中的链接
diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml
index 112310fb..adb985db 100644
--- a/app/src/main/res/values-zh-rTW/strings.xml
+++ b/app/src/main/res/values-zh-rTW/strings.xml
@@ -86,7 +86,7 @@
檢查中…立即更新套用
- 進階編輯器
+ 進階編輯器已將網址複製到剪貼簿分享編輯記錄檔
@@ -122,7 +122,7 @@
自動套用一律停用關閉
- 無效
+ 無效本應用程式已更新。正在初始化目前版本:%s
@@ -138,7 +138,6 @@
縮址還原器廣告/惡意軟體未與任何型樣相符
- [測試版功能] 此為進階編輯器,輸入的內容必須符合 JSON 的格式規範。點選右上角的按鈕即可自動排版並驗證之。伺服器錯誤:%s未與任何規則相符型樣檢查器
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 661bb13e..b960e6af 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -120,7 +120,7 @@ Hope you find the app useful! And don't hesitate to suggest features, report bug
Can not open the appCan not open the web browserChoose app
- Invalid
+ InvalidSaveResetClose
@@ -142,11 +142,20 @@ Hope you find the app useful! And don't hesitate to suggest features, report bug
SmallNormalBig
+ Format
+ Discard
- Json editor: the content must be formatted into valid JSON. You can press the top-right button to format and validate it.
- Json editor
+ Json editor
+ Show info
+ The content is not valid Json. Do you want to discard it and close the editor?
+ Discard and close
+ There are unsaved changes, do you want to save or discard them?
+ Unable to save: %s
+ The content is not valid Json, can\'t be parsed.
+ Warning, this will replace the editor content with the saved json. All changes made will be lost. Do you want to continue?
+ Warning, this will replace the editor content with the built-in json. All editor changes made will be lost, but saved content will not be modified unless manually saved. Do you want to continue?
@@ -310,7 +319,7 @@ You can hold to select text."Enable verbose info for the matching processCould not check ruleUpdater
- URL of the JSON file catalog with the rules:
+ URL of the Json file catalog with the rules:Catalog URLURL of the catalog hash file. If omitted, the download will not be checked to see if it was tampered/modified (not recommended)No hash check
diff --git a/app/src/main/res/values/untranslatable_strings.xml b/app/src/main/res/values/untranslatable_strings.xml
index 0ce3d1d8..cbd76e3f 100644
--- a/app/src/main/res/values/untranslatable_strings.xml
+++ b/app/src/main/res/values/untranslatable_strings.xml
@@ -11,4 +11,5 @@
Ilithy, PabloOQ, anoop-b
+ {…}