Support proxy
This commit is contained in:
1 parent
beeb083cb3
commit
1eaad6f669
16 files changed
+324
-251
No files matched your search
@@ -84,6 +84,7 @@ public class EhApplication extends RecordingApplication {
|
||||
private final HashMap<Integer, Object> mGlobalStuffMap = new HashMap<>();
|
||||
private EhCookieStore mEhCookieStore;
|
||||
private EhClient mEhClient;
|
||||
private EhProxySelector mEhProxySelector;
|
||||
private OkHttpClient mOkHttpClient;
|
||||
private ImageBitmapHelper mImageBitmapHelper;
|
||||
private Conaco<ImageBitmap> mConaco;
|
||||
@@ -266,6 +267,15 @@ public class EhApplication extends RecordingApplication {
|
||||
return application.mEhClient;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static EhProxySelector getEhProxySelector(@NonNull Context context) {
|
||||
EhApplication application = ((EhApplication) context.getApplicationContext());
|
||||
if (application.mEhProxySelector == null) {
|
||||
application.mEhProxySelector = new EhProxySelector();
|
||||
}
|
||||
return application.mEhProxySelector;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
public static OkHttpClient getOkHttpClient(@NonNull Context context) {
|
||||
EhApplication application = ((EhApplication) context.getApplicationContext());
|
||||
@@ -276,6 +286,7 @@ public class EhApplication extends RecordingApplication {
|
||||
.writeTimeout(10, TimeUnit.SECONDS)
|
||||
.cookieJar(getEhCookieStore(application))
|
||||
.dns(new EhDns(application))
|
||||
.proxySelector(getEhProxySelector(application))
|
||||
.build();
|
||||
}
|
||||
return application.mOkHttpClient;
|
||||
|
||||
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright 2019 Hippo Seven
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
package com.hippo.ehviewer;
|
||||
|
||||
import android.text.TextUtils;
|
||||
import com.hippo.network.InetValidator;
|
||||
import com.hippo.util.ExceptionUtils;
|
||||
import java.io.IOException;
|
||||
import java.net.InetAddress;
|
||||
import java.net.InetSocketAddress;
|
||||
import java.net.Proxy;
|
||||
import java.net.ProxySelector;
|
||||
import java.net.SocketAddress;
|
||||
import java.net.URI;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public class EhProxySelector extends ProxySelector {
|
||||
|
||||
public static final int TYPE_DIRECT = 0;
|
||||
public static final int TYPE_SYSTEM = 1;
|
||||
public static final int TYPE_HTTP = 2;
|
||||
public static final int TYPE_SOCKS = 3;
|
||||
|
||||
private ProxySelector delegation;
|
||||
private ProxySelector alternative;
|
||||
|
||||
EhProxySelector() {
|
||||
alternative = ProxySelector.getDefault();
|
||||
if (alternative == null) {
|
||||
alternative = new NullProxySelector();
|
||||
}
|
||||
|
||||
updateProxy();
|
||||
}
|
||||
|
||||
public void updateProxy() {
|
||||
switch (Settings.getProxyType()) {
|
||||
case TYPE_DIRECT:
|
||||
delegation = new NullProxySelector();
|
||||
break;
|
||||
default:
|
||||
case TYPE_SYSTEM:
|
||||
delegation = alternative;
|
||||
break;
|
||||
case TYPE_HTTP:
|
||||
case TYPE_SOCKS:
|
||||
delegation = null;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Proxy> select(URI uri) {
|
||||
int type = Settings.getProxyType();
|
||||
if (type == TYPE_HTTP || type == TYPE_SOCKS) {
|
||||
try {
|
||||
String ip = Settings.getProxyIp();
|
||||
int port = Settings.getProxyPort();
|
||||
if (!TextUtils.isEmpty(ip) && InetValidator.isValidInetPort(port)) {
|
||||
InetAddress inetAddress = InetAddress.getByName(ip);
|
||||
SocketAddress socketAddress = new InetSocketAddress(inetAddress, port);
|
||||
return Collections.singletonList(new Proxy(type == TYPE_HTTP ? Proxy.Type.HTTP : Proxy.Type.SOCKS, socketAddress));
|
||||
}
|
||||
} catch (Throwable t) {
|
||||
ExceptionUtils.throwIfFatal(t);
|
||||
}
|
||||
}
|
||||
|
||||
if (delegation != null) {
|
||||
return delegation.select(uri);
|
||||
}
|
||||
|
||||
return alternative.select(uri);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) {
|
||||
if (delegation != null) {
|
||||
delegation.select(uri);
|
||||
}
|
||||
}
|
||||
|
||||
private static class NullProxySelector extends ProxySelector {
|
||||
@Override
|
||||
public List<Proxy> select(URI uri) {
|
||||
return Collections.singletonList(Proxy.NO_PROXY);
|
||||
}
|
||||
@Override
|
||||
public void connectFailed(URI uri, SocketAddress sa, IOException ioe) { }
|
||||
}
|
||||
}
|
||||
@@ -386,72 +386,6 @@ public class Settings {
|
||||
putString(KEY_EXCLUDED_LANGUAGES, value);
|
||||
}
|
||||
|
||||
private static final String KEY_HATH_PROXY = "hath_proxy";
|
||||
private static final boolean DEFAULT_HATH_PROXY = false;
|
||||
|
||||
public static boolean getHathProxy() {
|
||||
return getBoolean(KEY_HATH_PROXY, DEFAULT_HATH_PROXY);
|
||||
}
|
||||
|
||||
public static void putHathProxy(boolean value) {
|
||||
if (value) {
|
||||
sEhConfig.hahClientIp = Settings.getHathIp();
|
||||
sEhConfig.hahClientPort = Settings.getHathPort();
|
||||
sEhConfig.hahClientPasskey = Settings.getHathPasskey();
|
||||
} else {
|
||||
sEhConfig.hahClientIp = DEFAULT_HATH_IP;
|
||||
sEhConfig.hahClientPort = DEFAULT_HATH_PORT;
|
||||
sEhConfig.hahClientPasskey = DEFAULT_HATH_PASSKEY;
|
||||
}
|
||||
sEhConfig.setDirty();
|
||||
putBoolean(KEY_HATH_PROXY, value);
|
||||
}
|
||||
|
||||
private static final String KEY_HATH_IP = "hath_ip";
|
||||
private static final String DEFAULT_HATH_IP = null;
|
||||
|
||||
public static String getHathIp() {
|
||||
return getString(KEY_HATH_IP, DEFAULT_HATH_IP);
|
||||
}
|
||||
|
||||
public static void putHathIp(String value) {
|
||||
if (Settings.getHathProxy()) {
|
||||
sEhConfig.hahClientIp = value;
|
||||
sEhConfig.setDirty();
|
||||
}
|
||||
putString(KEY_HATH_IP, value);
|
||||
}
|
||||
|
||||
private static final String KEY_HATH_PORT = "hath_port";
|
||||
private static final int DEFAULT_HATH_PORT = -1;
|
||||
|
||||
public static int getHathPort() {
|
||||
return getInt(KEY_HATH_PORT, DEFAULT_HATH_PORT);
|
||||
}
|
||||
|
||||
public static void putHathPort(int value) {
|
||||
if (Settings.getHathProxy()) {
|
||||
sEhConfig.hahClientPort = value;
|
||||
sEhConfig.setDirty();
|
||||
}
|
||||
putInt(KEY_HATH_PORT, value);
|
||||
}
|
||||
|
||||
private static final String KEY_HATH_PASSKEY = "hath_passkey";
|
||||
private static final String DEFAULT_HATH_PASSKEY = null;
|
||||
|
||||
public static String getHathPasskey() {
|
||||
return getString(KEY_HATH_PASSKEY, DEFAULT_HATH_PASSKEY);
|
||||
}
|
||||
|
||||
public static void putHathPasskey(String value) {
|
||||
if (Settings.getHathProxy()) {
|
||||
sEhConfig.hahClientPasskey = value;
|
||||
sEhConfig.setDirty();
|
||||
}
|
||||
putString(KEY_HATH_PASSKEY, value);
|
||||
}
|
||||
|
||||
private static final String KEY_CELLULAR_NETWORK_WARNING = "cellular_network_warning";
|
||||
private static final boolean DEFAULT_CELLULAR_NETWORK_WARNING = false;
|
||||
|
||||
@@ -1066,6 +1000,39 @@ public class Settings {
|
||||
putString(KEY_APP_LANGUAGE, value);
|
||||
}
|
||||
|
||||
private static final String KEY_PROXY_TYPE = "proxy_type";
|
||||
private static final int DEFAULT_PROXY_TYPE = EhProxySelector.TYPE_SYSTEM;
|
||||
|
||||
public static int getProxyType() {
|
||||
return getInt(KEY_PROXY_TYPE, DEFAULT_PROXY_TYPE);
|
||||
}
|
||||
|
||||
public static void putProxyType(int value) {
|
||||
putInt(KEY_PROXY_TYPE, value);
|
||||
}
|
||||
|
||||
private static final String KEY_PROXY_IP = "proxy_ip";
|
||||
private static final String DEFAULT_PROXY_IP = null;
|
||||
|
||||
public static String getProxyIp() {
|
||||
return getString(KEY_PROXY_IP, DEFAULT_PROXY_IP);
|
||||
}
|
||||
|
||||
public static void putProxyIp(String value) {
|
||||
putString(KEY_PROXY_IP, value);
|
||||
}
|
||||
|
||||
private static final String KEY_PROXY_PORT = "proxy_port";
|
||||
private static final int DEFAULT_PROXY_PORT = -1;
|
||||
|
||||
public static int getProxyPort() {
|
||||
return getInt(KEY_PROXY_PORT, DEFAULT_PROXY_PORT);
|
||||
}
|
||||
|
||||
public static void putProxyPort(int value) {
|
||||
putInt(KEY_PROXY_PORT, value);
|
||||
}
|
||||
|
||||
/********************
|
||||
****** Guide
|
||||
********************/
|
||||
|
||||
+54
-57
@@ -20,64 +20,71 @@ import android.annotation.SuppressLint;
|
||||
import android.app.Dialog;
|
||||
import android.content.Context;
|
||||
import android.content.DialogInterface;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.support.design.widget.TextInputLayout;
|
||||
import android.support.v7.app.AlertDialog;
|
||||
import android.support.v7.widget.SwitchCompat;
|
||||
import android.text.TextUtils;
|
||||
import android.util.AttributeSet;
|
||||
import android.view.View;
|
||||
import android.widget.EditText;
|
||||
|
||||
import android.widget.Spinner;
|
||||
import com.hippo.ehviewer.EhApplication;
|
||||
import com.hippo.ehviewer.EhProxySelector;
|
||||
import com.hippo.ehviewer.R;
|
||||
import com.hippo.ehviewer.Settings;
|
||||
import com.hippo.network.InetValidator;
|
||||
import com.hippo.preference.DialogPreference;
|
||||
import com.hippo.yorozuya.MathUtils;
|
||||
import com.hippo.yorozuya.ViewUtils;
|
||||
|
||||
public class HatHProxyPreference extends DialogPreference implements View.OnClickListener {
|
||||
public class ProxyPreference extends DialogPreference implements View.OnClickListener {
|
||||
|
||||
@Nullable
|
||||
private SwitchCompat mEnable;
|
||||
@Nullable
|
||||
private Spinner mType;
|
||||
private TextInputLayout mIpInputLayout;
|
||||
@Nullable
|
||||
private EditText mIp;
|
||||
@Nullable
|
||||
private TextInputLayout mPortInputLayout;
|
||||
@Nullable
|
||||
private EditText mPort;
|
||||
@Nullable
|
||||
private TextInputLayout mPasskeyInputLayout;
|
||||
@Nullable
|
||||
private EditText mPasskey;
|
||||
|
||||
public HatHProxyPreference(Context context) {
|
||||
public ProxyPreference(Context context) {
|
||||
super(context);
|
||||
init();
|
||||
}
|
||||
|
||||
public HatHProxyPreference(Context context, AttributeSet attrs) {
|
||||
public ProxyPreference(Context context, AttributeSet attrs) {
|
||||
super(context, attrs);
|
||||
init();
|
||||
}
|
||||
|
||||
public HatHProxyPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
public ProxyPreference(Context context, AttributeSet attrs, int defStyleAttr) {
|
||||
super(context, attrs, defStyleAttr);
|
||||
init();
|
||||
}
|
||||
|
||||
private void init() {
|
||||
setDialogLayoutResource(R.layout.preference_dialog_hath_proxy);
|
||||
updateSummary(Settings.getHathProxy(), Settings.getHathIp(), Settings.getHathPort());
|
||||
setDialogLayoutResource(R.layout.preference_dialog_proxy);
|
||||
updateSummary(Settings.getProxyType(), Settings.getProxyIp(), Settings.getProxyPort());
|
||||
}
|
||||
|
||||
private void updateSummary(boolean hathProxy, String hathIp, int hathPort) {
|
||||
if (InetValidator.isValidInet4Address(hathIp) && InetValidator.isValidInetPort(hathPort)) {
|
||||
private String getProxyTypeText(Context context, int type) {
|
||||
String[] array = context.getResources().getStringArray(R.array.proxy_types);
|
||||
return array[MathUtils.clamp(type, 0, array.length - 1)];
|
||||
}
|
||||
|
||||
private void updateSummary(int type, String ip, int port) {
|
||||
if ((type == EhProxySelector.TYPE_HTTP || type == EhProxySelector.TYPE_SOCKS)
|
||||
&& (TextUtils.isEmpty(ip) || !InetValidator.isValidInetPort(port)) ) {
|
||||
type = EhProxySelector.TYPE_SYSTEM;
|
||||
}
|
||||
|
||||
if (type == EhProxySelector.TYPE_HTTP || type == EhProxySelector.TYPE_SOCKS) {
|
||||
Context context = getContext();
|
||||
setSummary(context.getString(R.string.settings_eh_hath_proxy_summary_1,
|
||||
context.getString(hathProxy ? R.string.enabled : R.string.disabled), hathIp, hathPort));
|
||||
setSummary(context.getString(R.string.settings_advanced_proxy_summary_1,
|
||||
getProxyTypeText(context, type),
|
||||
ip,
|
||||
port));
|
||||
} else {
|
||||
setSummary(R.string.settings_eh_hath_proxy_summary_2);
|
||||
Context context = getContext();
|
||||
setSummary(context.getString(R.string.settings_advanced_proxy_summary_2,
|
||||
getProxyTypeText(context, type)));
|
||||
}
|
||||
}
|
||||
|
||||
@@ -94,73 +101,63 @@ public class HatHProxyPreference extends DialogPreference implements View.OnClic
|
||||
|
||||
dialog.getButton(DialogInterface.BUTTON_POSITIVE).setOnClickListener(this);
|
||||
|
||||
mEnable = (SwitchCompat) ViewUtils.$$(dialog, R.id.enable);
|
||||
mType = (Spinner) ViewUtils.$$(dialog, R.id.type);
|
||||
mIpInputLayout = (TextInputLayout) ViewUtils.$$(dialog, R.id.ip_input_layout);
|
||||
mIp = (EditText) ViewUtils.$$(dialog, R.id.ip);
|
||||
mPortInputLayout = (TextInputLayout) ViewUtils.$$(dialog, R.id.port_input_layout);
|
||||
mPort = (EditText) ViewUtils.$$(dialog, R.id.port);
|
||||
mPasskeyInputLayout = (TextInputLayout) ViewUtils.$$(dialog, R.id.passkey_input_layout);
|
||||
mPasskey = (EditText) ViewUtils.$$(dialog, R.id.passkey);
|
||||
|
||||
mEnable.setChecked(Settings.getHathProxy());
|
||||
String ip = Settings.getHathIp();
|
||||
if (!InetValidator.isValidInet4Address(ip)) {
|
||||
ip = null;
|
||||
}
|
||||
int type = Settings.getProxyType();
|
||||
String[] array = getContext().getResources().getStringArray(R.array.proxy_types);
|
||||
mType.setSelection(MathUtils.clamp(type, 0, array.length));
|
||||
|
||||
mIp.setText(Settings.getProxyIp());
|
||||
|
||||
String portString;
|
||||
int port = Settings.getHathPort();
|
||||
int port = Settings.getProxyPort();
|
||||
if (!InetValidator.isValidInetPort(port)) {
|
||||
portString = null;
|
||||
} else {
|
||||
portString = Integer.toString(Settings.getHathPort());
|
||||
portString = Integer.toString(port);
|
||||
}
|
||||
mIp.setText(ip);
|
||||
mPort.setText(portString);
|
||||
mPasskey.setText(Settings.getHathPasskey());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void onDialogClosed(boolean positiveResult) {
|
||||
super.onDialogClosed(positiveResult);
|
||||
mEnable = null;
|
||||
mType = null;
|
||||
mIpInputLayout = null;
|
||||
mIp = null;
|
||||
mPortInputLayout = null;
|
||||
mPort = null;
|
||||
mPasskeyInputLayout = null;
|
||||
mPasskey = null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onClick(View v) {
|
||||
Dialog dialog = getDialog();
|
||||
Context context = getContext();
|
||||
if (null == dialog || null == context || null == mEnable ||
|
||||
if (null == dialog || null == context || null == mType ||
|
||||
null == mIpInputLayout || null == mIp ||
|
||||
null == mPortInputLayout || null == mPort ||
|
||||
null == mPasskeyInputLayout || null == mPasskey) {
|
||||
null == mPortInputLayout || null == mPort) {
|
||||
return;
|
||||
}
|
||||
|
||||
boolean enable = mEnable.isChecked();
|
||||
int type = mType.getSelectedItemPosition();
|
||||
|
||||
String ip = mIp.getText().toString().trim();
|
||||
if (ip.isEmpty()) {
|
||||
if (enable) {
|
||||
if (type == EhProxySelector.TYPE_HTTP || type == EhProxySelector.TYPE_SOCKS) {
|
||||
mIpInputLayout.setError(context.getString(R.string.text_is_empty));
|
||||
return;
|
||||
}
|
||||
} else if (!InetValidator.isValidInet4Address(ip)) {
|
||||
mIpInputLayout.setError(context.getString(R.string.domain_not_supported));
|
||||
return;
|
||||
} else {
|
||||
mIpInputLayout.setError(null);
|
||||
}
|
||||
mIpInputLayout.setError(null);
|
||||
|
||||
int port;
|
||||
String portString = mPort.getText().toString().trim();
|
||||
if (portString.isEmpty()) {
|
||||
if (enable) {
|
||||
if (type == EhProxySelector.TYPE_HTTP || type == EhProxySelector.TYPE_SOCKS) {
|
||||
mPortInputLayout.setError(context.getString(R.string.text_is_empty));
|
||||
return;
|
||||
} else {
|
||||
@@ -173,19 +170,19 @@ public class HatHProxyPreference extends DialogPreference implements View.OnClic
|
||||
port = -1;
|
||||
}
|
||||
if (!InetValidator.isValidInetPort(port)) {
|
||||
mPortInputLayout.setError(context.getString(R.string.invalid_port));
|
||||
mPortInputLayout.setError(context.getString(R.string.proxy_invalid_port));
|
||||
return;
|
||||
}
|
||||
}
|
||||
mPortInputLayout.setError(null);
|
||||
|
||||
String passkey = mPasskey.getText().toString();
|
||||
Settings.putProxyType(type);
|
||||
Settings.putProxyIp(ip);
|
||||
Settings.putProxyPort(port);
|
||||
|
||||
Settings.putHathProxy(enable);
|
||||
Settings.putHathIp(ip);
|
||||
Settings.putHathPort(port);
|
||||
Settings.putHathPasskey(passkey);
|
||||
updateSummary(type, ip, port);
|
||||
|
||||
updateSummary(enable, ip, port);
|
||||
EhApplication.getEhProxySelector(getContext()).updateProxy();
|
||||
|
||||
dialog.dismiss();
|
||||
}
|
||||
+8
-20
@@ -21,20 +21,22 @@
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent"
|
||||
android:paddingLeft="?attr/dialogPreferredPadding"
|
||||
android:paddingTop="@dimen/abc_dialog_padding_top_material"
|
||||
android:paddingTop="18dp"
|
||||
android:paddingRight="?attr/dialogPreferredPadding">
|
||||
|
||||
<android.support.v7.widget.SwitchCompat
|
||||
android:id="@+id/enable"
|
||||
<com.hippo.widget.CuteSpinner
|
||||
android:id="@+id/type"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/enable"/>
|
||||
android:paddingTop="8dp"
|
||||
android:paddingBottom="8dp"
|
||||
android:entries="@array/proxy_types"/>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/ip_input_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/ip">
|
||||
android:hint="@string/proxy_host_or_ip">
|
||||
|
||||
<com.hippo.widget.HackyTextInputEditText
|
||||
android:id="@+id/ip"
|
||||
@@ -48,7 +50,7 @@
|
||||
android:id="@+id/port_input_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/port">
|
||||
android:hint="@string/proxy_port">
|
||||
|
||||
<com.hippo.widget.HackyTextInputEditText
|
||||
android:id="@+id/port"
|
||||
@@ -57,18 +59,4 @@
|
||||
android:inputType="numberDecimal"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
|
||||
<android.support.design.widget.TextInputLayout
|
||||
android:id="@+id/passkey_input_layout"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:hint="@string/Passkey">
|
||||
|
||||
<com.hippo.widget.HackyTextInputEditText
|
||||
android:id="@+id/passkey"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:inputType="text"/>
|
||||
|
||||
</android.support.design.widget.TextInputLayout>
|
||||
</LinearLayout>
|
||||
@@ -317,9 +317,6 @@
|
||||
<string name="settings_eh_excluded_languages_summary">Galerie von den ausgeschlossenen Sprachen werden in der Galerieliste und der Suchen versteckt</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">Ausgeschlossene Namensraum-Etiketten</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">Galerie in der ausgeschlossenen Namensraum werden vom Standard-Etikett-Suchen versteckt</string>
|
||||
<string name="settings_eh_hath_proxy">H@H Proxy</string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">Nicht festgelegt</string>
|
||||
<string name="settings_eh_show_jpn_title">Japanische Titel anzeigen</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">Versuchen, japanische Titel anzuzeigen. Es wird länger dauern, Galerieliste zu laden.</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">Standardtitel anzeigen. Sie sind oft in Englisch.</string>
|
||||
@@ -393,6 +390,9 @@
|
||||
<string name="settings_advanced_dump_logcat_failed">Speichern gescheitert</string>
|
||||
<string name="settings_advanced_dump_logcat_to">Protokolldatei wurde auf %s gespeichert.</string>
|
||||
<string name="settings_advanced_clear_download_path_cache">Downloadpfadzwischenspeicher löschen</string>
|
||||
<string name="settings_advanced_proxy">Proxy</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="license">Open Source-Lizenzen</string>
|
||||
<string name="dir_picker">Verzeichnis auswählen</string>
|
||||
<string name="directory_not_writable">Das Verzeichnis ist nicht beschreibbar</string>
|
||||
@@ -467,14 +467,12 @@
|
||||
<string name="settings_about_check_for_updates">Auf Update überprüfen</string>
|
||||
<string name="settings_about_beta_update_channel">Beta-Version testen</string>
|
||||
<string name="settings_about_beta_update_channel_summary">Beta-Version kann funktionieren möglicherweise nicht</string>
|
||||
<string name="enable">Aktivieren</string>
|
||||
<string name="enabled">Aktiviert</string>
|
||||
<string name="disabled">Nicht aktiviert</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">Port</string>
|
||||
<string name="Passkey">Schlüssel</string>
|
||||
<string name="domain_not_supported">Der Domain ist nicht unterstützt.</string>
|
||||
<string name="invalid_port">Ungültiger Port</string>
|
||||
<string name="proxy_enable">Aktivieren</string>
|
||||
<string name="proxy_enabled">Aktiviert</string>
|
||||
<string name="proxy_disabled">Nicht aktiviert</string>
|
||||
<string name="proxy_port">Port</string>
|
||||
<string name="proxy_domain_not_supported">Der Domain ist nicht unterstützt.</string>
|
||||
<string name="proxy_invalid_port">Ungültiger Port</string>
|
||||
<string name="cant_get_data_dir">Datenverzeichnis konnte geladen werden</string>
|
||||
<string name="cant_find_any_data">Keine Daten gefunden</string>
|
||||
<string name="cant_read_the_file">Datei kann nicht gelesen werden</string>
|
||||
|
||||
@@ -366,9 +366,6 @@
|
||||
<string name="settings_eh_excluded_languages_summary">Ocultar galerías en ciertos idiomas de la lista de galerías y búsquedas</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">Excluir etiquetas espacios de nombres</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">Excluir ciertos espacios de nombres de una búsqueda de etiquetas por defecto</string>
|
||||
<string name="settings_eh_hath_proxy">H@H proxy</string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">Sin establecer</string>
|
||||
<string name="settings_eh_show_jpn_title">Mostrar títulos en japonés</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">Intentar mostrar títulos en japonés. Tomará más tiempo en cargar la lista de galerías</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">Mostrar títulos por defecto, usualmente es en inglés</string>
|
||||
@@ -453,6 +450,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache_summary">Borrar vistas previas, galerías, información y caché de memoria</string>
|
||||
<string name="settings_advanced_read_cache_size">Tamaño del caché (archivos temporales)</string>
|
||||
<string name="settings_advanced_app_language_title">Idioma de la aplicación</string>
|
||||
<string name="settings_advanced_proxy">Proxy</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_privacy_pattern_protection_title">Protección por patrón</string>
|
||||
<string name="settings_privacy_pattern_protection_not_set">No se ha configurado la protección por patrón</string>
|
||||
<string name="settings_privacy_pattern_protection_set">La protección por patrón ha sido configurado</string>
|
||||
@@ -480,13 +480,11 @@
|
||||
<string name="settings_about_beta_update_channel">Canal de versiones de prueba</string>
|
||||
<string name="settings_about_beta_update_channel_summary">Las versiones de prueba podrían tener errores</string>
|
||||
|
||||
<string name="enable">Habilitar</string>
|
||||
<string name="enabled">Habilitado</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">Puerto</string>
|
||||
<string name="Passkey">Clave Maestra</string>
|
||||
<string name="domain_not_supported">Dominio no soportado</string>
|
||||
<string name="invalid_port">Puerto Invalido</string>
|
||||
<string name="proxy_enable">Habilitar</string>
|
||||
<string name="proxy_enabled">Habilitado</string>
|
||||
<string name="proxy_port">Puerto</string>
|
||||
<string name="proxy_domain_not_supported">Dominio no soportado</string>
|
||||
<string name="proxy_invalid_port">Puerto Invalido</string>
|
||||
|
||||
<string name="cant_get_data_dir">No se puede obtener el directorio de datos</string>
|
||||
<string name="cant_find_any_data">No se pueden encuentran datos</string>
|
||||
@@ -606,7 +604,6 @@
|
||||
<string name="delete">Eliminar</string>
|
||||
<string name="dir_picker">Seleccionar directorio</string>
|
||||
<string name="directory_not_writable">No se puede escribir en el directorio</string>
|
||||
<string name="disabled">Deshabilitado</string>
|
||||
<string name="download_state_failed">Descarga fallida</string>
|
||||
<string name="download_state_none">Descarga en pausa</string>
|
||||
<string name="error_password_cannot_empty">La contraseña no puede estar vacía</string>
|
||||
|
||||
@@ -391,9 +391,6 @@
|
||||
<string name="settings_eh_excluded_languages_summary">Ne pas afficher les galerie des langues spécifiées sur la liste de galerie et le résultat de recherche</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">Espaces de nom de tag exclues</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">Exclure espaces de nom spécifiées de une recherche de tag par défaut</string>
|
||||
<string name="settings_eh_hath_proxy">H@H proxy</string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">Rien</string>
|
||||
<string name="settings_eh_show_jpn_title">Montrer les titres japonais</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">Essayer de charger les titres japonais. Il prend plus de temps pour charger la liste des galeries.</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">Montrer les titres par défaut. Ils sont souvent en anglais.</string>
|
||||
@@ -476,6 +473,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache">Vider le cache du stockage</string>
|
||||
<string name="settings_advanced_clear_memory_cache_summary">Effacer le cache des miniatures et des informations galeries</string>
|
||||
<string name="settings_advanced_read_cache_size">Taille du cache pour la lecture</string>
|
||||
<string name="settings_advanced_proxy">Proxy</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_privacy_pattern_protection_title">Modéle de déverrouillage</string>
|
||||
<string name="settings_privacy_pattern_protection_not_set">Aucun modéle de déverrouillage</string>
|
||||
<string name="settings_privacy_pattern_protection_set">Modéle de déverrouillage défini</string>
|
||||
@@ -504,14 +504,12 @@
|
||||
<string name="settings_about_beta_update_channel">Chaîne de mises à jour beta</string>
|
||||
<string name="settings_about_beta_update_channel_summary">Versions beta riquent de ne pas fonctionner correctement sur votre appareil</string>
|
||||
|
||||
<string name="enable">Activer</string>
|
||||
<string name="enabled">Activé</string>
|
||||
<string name="disabled">Non activé</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">Port</string>
|
||||
<string name="Passkey">Clé de passe</string>
|
||||
<string name="domain_not_supported">Le domaine n\'est pas compatible</string>
|
||||
<string name="invalid_port">Port invalide</string>
|
||||
<string name="proxy_enable">Activer</string>
|
||||
<string name="proxy_enabled">Activé</string>
|
||||
<string name="proxy_disabled">Non activé</string>
|
||||
<string name="proxy_port">Port</string>
|
||||
<string name="proxy_domain_not_supported">Le domaine n\'est pas compatible</string>
|
||||
<string name="proxy_invalid_port">Port invalide</string>
|
||||
|
||||
<string name="cant_get_data_dir">Échec d\'obtention du répertoire données</string>
|
||||
<string name="cant_find_any_data">Aucune donnée trouvée</string>
|
||||
|
||||
@@ -389,9 +389,6 @@
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">指定したタグセットをデフォルト検索から除外</string>
|
||||
<string name="settings_eh_excluded_languages">言語を除外</string>
|
||||
<string name="settings_eh_excluded_languages_summary">指定した言語のギャラリーをホームページと検索から隠す</string>
|
||||
<string name="settings_eh_hath_proxy">H@H プロキシ</string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">未設定</string>
|
||||
<string name="settings_eh_show_jpn_title">日本語タイトルを表示</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">日本語タイトルを表示しようとします。有効にすると、ギャラリーリストを取得するのにもっと時間がかかることがあります</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">デフォルトのタイトルを表示します。多くの場合は英語のタイトルです。</string>
|
||||
@@ -470,6 +467,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache">メモリキャッシュをクリア</string>
|
||||
<string name="settings_advanced_clear_memory_cache_summary">サムネイルとギャラリー情報のメモリキャッシュをクリア</string>
|
||||
<string name="settings_advanced_read_cache_size">閲覧キャッシュのサイズ</string>
|
||||
<string name="settings_advanced_proxy">プロキシ</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_privacy_pattern_protection_title">パターン保護</string>
|
||||
<string name="settings_privacy_pattern_protection_not_set">パターン保護は設定されていません</string>
|
||||
<string name="settings_privacy_pattern_protection_set">パターン保護は設定されています</string>
|
||||
@@ -525,14 +525,12 @@
|
||||
|
||||
<string name="please_wait">お待ちください</string>
|
||||
|
||||
<string name="enable">有効化</string>
|
||||
<string name="enabled">有効化済み</string>
|
||||
<string name="disabled">無効</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">ポート</string>
|
||||
<string name="Passkey">パスキー</string>
|
||||
<string name="domain_not_supported">ドメイン名には対応していません</string>
|
||||
<string name="invalid_port">無効なポート</string>
|
||||
<string name="proxy_enable">有効化</string>
|
||||
<string name="proxy_enabled">有効化済み</string>
|
||||
<string name="proxy_disabled">無効</string>
|
||||
<string name="proxy_port">ポート</string>
|
||||
<string name="proxy_domain_not_supported">ドメイン名には対応していません</string>
|
||||
<string name="proxy_invalid_port">無効なポート</string>
|
||||
|
||||
<string name="cant_get_data_dir">データフォルダを取得できませんでした</string>
|
||||
<string name="cant_find_any_data">データが見つかりません</string>
|
||||
|
||||
@@ -383,9 +383,6 @@
|
||||
<string name="settings_eh_excluded_languages_summary">갤러리 목록과 검색에서 특정 언어 숨기기</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">제외할 태그 네임스페이스</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">기본 태그 검색에서 특정 네임스페이스 제외</string>
|
||||
<string name="settings_eh_hath_proxy">H@H 프록시</string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">없음</string>
|
||||
<string name="settings_eh_show_jpn_title">일본어 제목 표시</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">가능하면 일본어 제목을 표시합니다. 갤러리 목록을 불러오는 데 시간이 좀 더 걸립니다.</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">기본 제목을 표시합니다. 대부분 영어로 표시됩니다.</string>
|
||||
@@ -469,6 +466,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache_summary">섬네일, 갤러리 정보 메모리 캐시 삭제</string>
|
||||
<string name="settings_advanced_read_cache_size">읽기 캐시 크기</string>
|
||||
<string name="settings_advanced_app_language_title">앱 언어 (Language)</string>
|
||||
<string name="settings_advanced_proxy">프록시</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_advanced_built_in_hosts_title">앱 내장 hosts.txt</string>
|
||||
<string name="settings_advanced_built_in_hosts_summary">앱에 내장된 호스트-IP 지정 규칙을 사용합니다.\n대신 사용자 지정 hosts.txt 파일을 사용할 수도 있습니다.</string>
|
||||
<string name="settings_advanced_custom_hosts_title">사용자 지정 hosts.txt</string>
|
||||
@@ -500,14 +500,12 @@
|
||||
<string name="settings_about_beta_update_channel">베타 업데이트 채널</string>
|
||||
<string name="settings_about_beta_update_channel_summary">베타 버전은 사용자의 기기에서 정상적으로 작동하지 않을 수 있습니다.</string>
|
||||
|
||||
<string name="enable">사용</string>
|
||||
<string name="enabled">사용함</string>
|
||||
<string name="disabled">사용 안 함</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">포트</string>
|
||||
<string name="Passkey">암호</string>
|
||||
<string name="domain_not_supported">지원하지 않는 도메인입니다.</string>
|
||||
<string name="invalid_port">잘못된 포트입니다.</string>
|
||||
<string name="proxy_enable">사용</string>
|
||||
<string name="proxy_enabled">사용함</string>
|
||||
<string name="proxy_disabled">사용 안 함</string>
|
||||
<string name="proxy_port">포트</string>
|
||||
<string name="proxy_domain_not_supported">지원하지 않는 도메인입니다.</string>
|
||||
<string name="proxy_invalid_port">잘못된 포트입니다.</string>
|
||||
|
||||
<string name="cant_get_data_dir">데이터 디렉터리를 찾을 수 없습니다.</string>
|
||||
<string name="cant_find_any_data">데이터를 가져올 수 없습니다.</string>
|
||||
|
||||
@@ -425,9 +425,6 @@
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">在默认搜索中排除指定标签组</string>
|
||||
<string name="settings_eh_excluded_languages">排除语言</string>
|
||||
<string name="settings_eh_excluded_languages_summary">在主页与搜索中隐藏指定语言的画廊</string>
|
||||
<string name="settings_eh_hath_proxy">H@H </string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">未设置</string>
|
||||
<string name="settings_eh_show_jpn_title">显示日文标题</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">尝试显示日文标题。这会使获取画廊列表花费更多时间</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">显示默认标题。一般是英文标题</string>
|
||||
@@ -517,6 +514,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache_summary">清理缩略图、画廊信息的内存缓存</string>
|
||||
<string name="settings_advanced_read_cache_size">阅读缓存大小</string>
|
||||
<string name="settings_advanced_app_language_title">App 界面语言</string>
|
||||
<string name="settings_advanced_proxy">代理</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_advanced_built_in_hosts_title">内置 hosts.txt</string>
|
||||
<string name="settings_advanced_built_in_hosts_summary">应用提供的主机到IP的映射\n可被自定义 hosts.txt 覆盖</string>
|
||||
<string name="settings_advanced_custom_hosts_title">自定义 hosts.txt</string>
|
||||
@@ -584,14 +584,15 @@
|
||||
|
||||
<string name="please_wait">请稍候</string>
|
||||
|
||||
<string name="enable">启用</string>
|
||||
<string name="enabled">已启用</string>
|
||||
<string name="disabled">未启用</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">端口</string>
|
||||
<string name="Passkey">密钥</string>
|
||||
<string name="domain_not_supported">不支持域名</string>
|
||||
<string name="invalid_port">无效的端口</string>
|
||||
<string name="proxy_enable">启用</string>
|
||||
<string name="proxy_enabled">已启用</string>
|
||||
<string name="proxy_disabled">未启用</string>
|
||||
<string name="proxy_direct">直接连接</string>
|
||||
<string name="proxy_system">系统代理</string>
|
||||
<string name="proxy_host_or_ip">主机或 IP</string>
|
||||
<string name="proxy_port">端口</string>
|
||||
<string name="proxy_domain_not_supported">不支持域名</string>
|
||||
<string name="proxy_invalid_port">无效的端口</string>
|
||||
|
||||
<string name="cant_get_data_dir">无法获取数据文件夹</string>
|
||||
<string name="cant_find_any_data">找不到任何数据</string>
|
||||
|
||||
@@ -424,9 +424,6 @@
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">在默認搜索中排除指定標籤組</string>
|
||||
<string name="settings_eh_excluded_languages">排除語言</string>
|
||||
<string name="settings_eh_excluded_languages_summary">在主頁與搜索中隱藏指定語言的畫廊</string>
|
||||
<string name="settings_eh_hath_proxy">H@H </string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">未設置</string>
|
||||
<string name="settings_eh_show_jpn_title">顯示日文標題</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">嘗試顯示日文標題。這會使獲取畫廊列表花費更多時間</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">顯示默認標題。一般是英文標題</string>
|
||||
@@ -515,6 +512,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache">清理內存緩存</string>
|
||||
<string name="settings_advanced_clear_memory_cache_summary">清理縮略圖、畫廊信息的內存緩存</string>
|
||||
<string name="settings_advanced_read_cache_size">閲讀緩存大小</string>
|
||||
<string name="settings_advanced_proxy">代理</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_advanced_app_language_title">App 界面語言</string>
|
||||
<string name="settings_advanced_built_in_hosts_title">內置 hosts.txt</string>
|
||||
<string name="settings_advanced_built_in_hosts_summary">應用提供的主機到IP的映射\n可被自定義 hosts.txt 覆蓋</string>
|
||||
@@ -583,14 +583,15 @@
|
||||
|
||||
<string name="please_wait">請稍候</string>
|
||||
|
||||
<string name="enable">啟用</string>
|
||||
<string name="enabled">已啟用</string>
|
||||
<string name="disabled">未啟用</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">端口</string>
|
||||
<string name="Passkey">密鑰</string>
|
||||
<string name="domain_not_supported">不支持域名</string>
|
||||
<string name="invalid_port">無效的端口</string>
|
||||
<string name="proxy_enable">啟用</string>
|
||||
<string name="proxy_enabled">已啟用</string>
|
||||
<string name="proxy_disabled">未啟用</string>
|
||||
<string name="proxy_direct">直接連接</string>
|
||||
<string name="proxy_system">系統代理</string>
|
||||
<string name="proxy_host_or_ip">主機或 IP</string>
|
||||
<string name="proxy_port">端口</string>
|
||||
<string name="proxy_domain_not_supported">不支持域名</string>
|
||||
<string name="proxy_invalid_port">無效的端口</string>
|
||||
|
||||
<string name="cant_get_data_dir">無法獲取數據文件夾</string>
|
||||
<string name="cant_find_any_data">找不到任何數據</string>
|
||||
|
||||
@@ -424,9 +424,6 @@
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">在預設標籤搜尋中排除特定的標籤命名空間</string>
|
||||
<string name="settings_eh_excluded_languages">排除語言</string>
|
||||
<string name="settings_eh_excluded_languages_summary">在首頁與搜尋中隱藏指定語言的圖庫</string>
|
||||
<string name="settings_eh_hath_proxy">H@H </string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">無</string>
|
||||
<string name="settings_eh_show_jpn_title">顯示日文標題</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">嘗試顯示日文標題。這會使取得圖庫列表時間增加</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">顯示預設的標題。通常是英文的</string>
|
||||
@@ -516,6 +513,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache_summary">清除縮圖、圖庫詳細資料的記憶體快取</string>
|
||||
<string name="settings_advanced_read_cache_size">閱讀快取大小</string>
|
||||
<string name="settings_advanced_app_language_title">App 介面語言</string>
|
||||
<string name="settings_advanced_proxy">代理</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_advanced_built_in_hosts_title">內建 hosts.txt</string>
|
||||
<string name="settings_advanced_built_in_hosts_summary">應用提供的主機到IP的對映\n可被自定義 hosts.txt 覆蓋</string>
|
||||
<string name="settings_advanced_custom_hosts_title">自定義 hosts.txt</string>
|
||||
@@ -583,14 +583,15 @@
|
||||
|
||||
<string name="please_wait">請稍候</string>
|
||||
|
||||
<string name="enable">啟用</string>
|
||||
<string name="enabled">已啟用</string>
|
||||
<string name="disabled">未啟用</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">通訊埠</string>
|
||||
<string name="Passkey">金鑰</string>
|
||||
<string name="domain_not_supported">不支援的域名</string>
|
||||
<string name="invalid_port">無效的通訊埠</string>
|
||||
<string name="proxy_enable">啟用</string>
|
||||
<string name="proxy_enabled">已啟用</string>
|
||||
<string name="proxy_disabled">未啟用</string>
|
||||
<string name="proxy_direct">直接連線</string>
|
||||
<string name="proxy_system">系統代理</string>
|
||||
<string name="proxy_host_or_ip">主機或 IP</string>
|
||||
<string name="proxy_port">通訊埠</string>
|
||||
<string name="proxy_domain_not_supported">不支援的域名</string>
|
||||
<string name="proxy_invalid_port">無效的通訊埠</string>
|
||||
|
||||
<string name="cant_get_data_dir">無法取得檔案資料夾</string>
|
||||
<string name="cant_find_any_data">找不到任何資料</string>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<resources>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
|
||||
<string-array name="theme_entries" translatable="false">
|
||||
<item>@string/settings_eh_theme_light</item>
|
||||
@@ -255,8 +255,15 @@
|
||||
<item>zh-TW</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="tag_translation_metadata">
|
||||
<string-array name="tag_translation_metadata" tools:ignore="InconsistentArrays">
|
||||
<item>@null</item>
|
||||
</string-array>
|
||||
|
||||
<string-array name="proxy_types">
|
||||
<item>@string/proxy_direct</item>
|
||||
<item>@string/proxy_system</item>
|
||||
<item>HTTP</item>
|
||||
<item>SOCKS</item>
|
||||
</string-array>
|
||||
|
||||
</resources>
|
||||
@@ -468,9 +468,6 @@
|
||||
<string name="settings_eh_excluded_languages_summary">Hide galleries in certain languages from the gallery list and searches</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces">Excluded tag namespaces</string>
|
||||
<string name="settings_eh_excluded_tag_namespaces_summary">Exclude certain namespaces from a default tag search</string>
|
||||
<string name="settings_eh_hath_proxy">H@H proxy</string>
|
||||
<string name="settings_eh_hath_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_eh_hath_proxy_summary_2">None</string>
|
||||
<string name="settings_eh_show_jpn_title">Show Japanese title</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_on">Attempt to show Japanese title. It takes more time to get gallery list</string>
|
||||
<string name="settings_eh_show_jpn_title_summary_off">Show default titles, which are usually in English.</string>
|
||||
@@ -560,6 +557,9 @@
|
||||
<string name="settings_advanced_clear_memory_cache_summary">Clear thumb, gallery info memory cache</string>
|
||||
<string name="settings_advanced_read_cache_size">Read cache size</string>
|
||||
<string name="settings_advanced_app_language_title">App language</string>
|
||||
<string name="settings_advanced_proxy">Proxy</string>
|
||||
<string name="settings_advanced_proxy_summary_1">%1$s %2$s:%3$d</string>
|
||||
<string name="settings_advanced_proxy_summary_2">%1$s</string>
|
||||
<string name="settings_advanced_built_in_hosts_title">Built-in hosts.txt</string>
|
||||
<string name="settings_advanced_built_in_hosts_summary">Apply the built-in host-to-IP mapping provided by the app.\nIt can be overridden by custom hosts.txt.</string>
|
||||
<string name="settings_advanced_custom_hosts_title">Custom hosts.txt</string>
|
||||
@@ -601,14 +601,15 @@
|
||||
<string name="settings_about_beta_update_channel">Beta update channel</string>
|
||||
<string name="settings_about_beta_update_channel_summary">Beta versions may contain unsolved bugs.</string>
|
||||
|
||||
<string name="enable">Enable</string>
|
||||
<string name="enabled">Enabled</string>
|
||||
<string name="disabled">Disabled</string>
|
||||
<string name="ip">IP</string>
|
||||
<string name="port">Port</string>
|
||||
<string name="Passkey">Passkey</string>
|
||||
<string name="domain_not_supported">Domain is not supported</string>
|
||||
<string name="invalid_port">Invalid port</string>
|
||||
<string name="proxy_enable">Enable</string>
|
||||
<string name="proxy_enabled">Enabled</string>
|
||||
<string name="proxy_disabled">Disabled</string>
|
||||
<string name="proxy_direct">Direct</string>
|
||||
<string name="proxy_system">System Proxy</string>
|
||||
<string name="proxy_host_or_ip">Host or IP</string>
|
||||
<string name="proxy_port">Port</string>
|
||||
<string name="proxy_domain_not_supported">Domain is not supported</string>
|
||||
<string name="proxy_invalid_port">Invalid port</string>
|
||||
|
||||
<string name="cant_get_data_dir">Can\'t get data dir</string>
|
||||
<string name="cant_find_any_data">Can\'t find any data</string>
|
||||
|
||||
@@ -49,13 +49,17 @@
|
||||
android:defaultValue="160"/>
|
||||
|
||||
<com.hippo.preference.ListPreference
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:key="app_language"
|
||||
android:title="@string/settings_advanced_app_language_title"
|
||||
android:summary="%s"
|
||||
app:entries="@array/app_language_entries"
|
||||
app:entryValues="@array/app_language_entry_values"
|
||||
android:defaultValue="system"/>
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
android:key="app_language"
|
||||
android:title="@string/settings_advanced_app_language_title"
|
||||
android:summary="%s"
|
||||
app:entries="@array/app_language_entries"
|
||||
app:entryValues="@array/app_language_entry_values"
|
||||
android:defaultValue="system"/>
|
||||
|
||||
<com.hippo.ehviewer.preference.ProxyPreference
|
||||
android:key="proxy"
|
||||
android:title="@string/settings_advanced_proxy"/>
|
||||
|
||||
<com.hippo.preference.SwitchPreference
|
||||
android:key="built_in_hosts"
|
||||
|
||||
Reference in new issue
Block a user