mirror of
https://github.com/Julow/Unexpected-Keyboard.git
synced 2025-08-17 23:29:59 +02:00
Compare commits
1 Commits
workaround
...
crash-numb
Author | SHA1 | Date | |
---|---|---|---|
|
08a1774055 |
16
.github/workflows/check-translations.yml
vendored
Normal file
16
.github/workflows/check-translations.yml
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
name: Check translations
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
push:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
check-translations:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout repo
|
||||
uses: actions/checkout@v4
|
||||
- run: python3 sync_translations.py
|
||||
- name: "Check that strings files are uptodate, otherwise run 'python3 sync_translations.py'"
|
||||
run: git add -N . && git diff --exit-code
|
@@ -173,13 +173,13 @@ Remove the `<!--` and `-->` parts and change the text.
|
||||
|
||||
### Adding a translation
|
||||
|
||||
The preferred method for translating the app is to use Weblate:
|
||||
https://hosted.weblate.org/engage/unexpected-keyboard/
|
||||
|
||||
The `res/values-<language_tag>/strings.xml` file must be created by copying the
|
||||
default translation in `res/values/strings.xml`, which contain the structure of
|
||||
the file and the English strings.
|
||||
|
||||
To check that `strings.xml` is formatted correctly, run
|
||||
`python sync_translations.py`. This will modify your files.
|
||||
|
||||
Store descriptions in `fastlane/metadata/android/` are updated automatically.
|
||||
Translating changelogs is not useful.
|
||||
|
||||
|
@@ -5,9 +5,9 @@
|
||||
<string name="short_description">Легкая клавиатура для пользователей, заботящихся о конфиденциальности.</string>
|
||||
<string name="store_description">Главная особенность клавиатуры — это возможность легко напечатать любой ASCII-символ жестами в углы клавиш.\n\nПриложение изначально было разработано для использования с Termux.\nНа данный момент оно также удобно в повседневном использовании.\n\nПриложение не содержит рекламы, не осуществляет никаких запросов в сеть и имеет открытый исходный код.</string>
|
||||
<string name="pref_portrait">В портретном режиме</string>
|
||||
<string name="pref_portrait_unfolded">В развернутом портретном режиме</string>
|
||||
<!-- <string name="pref_portrait_unfolded">In portrait mode unfolded</string> -->
|
||||
<string name="pref_landscape">В ландшафтном режиме</string>
|
||||
<string name="pref_landscape_unfolded">В развернутом ландшафтном режиме</string>
|
||||
<!-- <string name="pref_landscape_unfolded">In landscape mode unfolded</string> -->
|
||||
<string name="pref_category_layout">Расположение</string>
|
||||
<string name="pref_label_brightness">Изменить яркость клавиатуры</string>
|
||||
<string name="pref_keyboard_opacity">Изменить прозрачность фона</string>
|
||||
@@ -19,9 +19,9 @@
|
||||
<string name="pref_layouts_item">Раскладка %1$d: %2$s</string>
|
||||
<string name="pref_layouts_remove_custom">Удалить раскладку</string>
|
||||
<string name="pref_custom_layout_title">Пользовательская раскладка</string>
|
||||
<string name="pref_show_number_row_no_number_row">Без ряда цифр</string>
|
||||
<string name="pref_show_number_row_no_symbols">Ряд цифр без символов</string>
|
||||
<string name="pref_show_number_row_symbols">Ряд цифр с символами</string>
|
||||
<!-- <string name="pref_show_number_row_no_number_row">No number row</string> -->
|
||||
<!-- <string name="pref_show_number_row_no_symbols">Number row without symbols</string> -->
|
||||
<!-- <string name="pref_show_number_row_symbols">Number row with symbols</string> -->
|
||||
<string name="pref_show_numpad_title">Показывать цифровой блок</string>
|
||||
<string name="pref_show_numpad_never">Никогда</string>
|
||||
<string name="pref_show_numpad_landscape">Только в ландшафтном режиме</string>
|
||||
@@ -49,10 +49,10 @@
|
||||
<string name="pref_switch_input_immediate_summary">Поведение клавиши переключения клавиатуры</string>
|
||||
<string name="pref_vibrate_custom">Настройка вибрации</string>
|
||||
<string name="pref_vibrate_duration_title">Интенсивность вибрации</string>
|
||||
<string name="pref_number_entry_title">Раскладка для ввода цифр, дат и телефонных номеров</string>
|
||||
<string name="pref_number_entry_layout_pin">Ввод PIN-кодов</string>
|
||||
<string name="pref_number_entry_layout_number">Цифровая панель</string>
|
||||
<string name="pref_number_entry_layout_normal">Основная раскладка</string>
|
||||
<!-- <string name="pref_number_entry_title">Layout when typing numbers, dates and phone numbers</string> -->
|
||||
<!-- <string name="pref_number_entry_layout_pin">PIN Entry</string> -->
|
||||
<!-- <string name="pref_number_entry_layout_number">Number pane</string> -->
|
||||
<!-- <string name="pref_number_entry_layout_normal">Use the main layout</string> -->
|
||||
<string name="pref_category_style">Стиль</string>
|
||||
<string name="pref_margin_bottom_title">Нижняя граница поля</string>
|
||||
<string name="pref_keyboard_height_title">Высота клавиатуры</string>
|
||||
@@ -127,12 +127,12 @@
|
||||
<string name="key_descr_zwnj">Разделитель нулевой ширины</string>
|
||||
<string name="key_descr_nbsp">Неразрывный пробел</string>
|
||||
<string name="key_descr_nnbsp">Узкий неразрывный пробел</string>
|
||||
<string name="key_descr_delete_word">Удалить слово</string>
|
||||
<string name="key_descr_forward_delete_word">Удалить слово справа</string>
|
||||
<string name="key_descr_gesture">Жест</string>
|
||||
<!-- <string name="key_descr_delete_word">Delete a word</string> -->
|
||||
<!-- <string name="key_descr_forward_delete_word">Delete a word on the right</string> -->
|
||||
<!-- <string name="key_descr_gesture">Gesture</string> -->
|
||||
<string name="clipboard_history_heading">Недавно скопированный текст</string>
|
||||
<string name="clipboard_pin_heading">Закреплено</string>
|
||||
<string name="clipboard_remove_confirm">Удалить этот буфер обмена?</string>
|
||||
<string name="clipboard_remove_confirmed">Да</string>
|
||||
<string name="toast_no_voice_input">Приложение для голосового ввода не установлено</string>
|
||||
<!-- <string name="toast_no_voice_input">No voice typing app installed</string> -->
|
||||
</resources>
|
||||
|
@@ -49,7 +49,7 @@
|
||||
<string name="pref_switch_input_immediate_summary">Behavior of the keyboard-switching key</string>
|
||||
<string name="pref_vibrate_custom">Custom vibration</string>
|
||||
<string name="pref_vibrate_duration_title">Vibration intensity</string>
|
||||
<string name="pref_number_entry_title">Layout when typing numbers, dates, and phone numbers</string>
|
||||
<string name="pref_number_entry_title">Layout when typing numbers, dates and phone numbers</string>
|
||||
<string name="pref_number_entry_layout_pin">PIN Entry</string>
|
||||
<string name="pref_number_entry_layout_number">Number pane</string>
|
||||
<string name="pref_number_entry_layout_normal">Use the main layout</string>
|
||||
|
@@ -168,7 +168,7 @@ public final class Config
|
||||
switch_input_immediate = _prefs.getBoolean("switch_input_immediate", false);
|
||||
extra_keys_param = ExtraKeysPreference.get_extra_keys(_prefs);
|
||||
extra_keys_custom = CustomExtraKeysPreference.get(_prefs);
|
||||
selected_number_layout = NumberLayout.valueOf(_prefs.getString("number_entry_layout", "pin").toUpperCase());
|
||||
selected_number_layout = NumberLayout.of_string(_prefs.getString("number_entry_layout", "pin"));
|
||||
current_layout_portrait = _prefs.getInt("current_layout_portrait", 0);
|
||||
current_layout_landscape = _prefs.getInt("current_layout_landscape", 0);
|
||||
current_layout_unfolded_portrait = _prefs.getInt("current_layout_unfolded_portrait", 0);
|
||||
|
@@ -41,7 +41,12 @@ public final class KeyEventHandler
|
||||
public void started(EditorInfo info)
|
||||
{
|
||||
_autocap.started(info, _recv.getCurrentInputConnection());
|
||||
_move_cursor_force_fallback = should_move_cursor_force_fallback(info);
|
||||
// Workaround a bug in Acode, which answers to [getExtractedText] but do
|
||||
// not react to [setSelection] while returning [true].
|
||||
// Note: Using & to workaround a bug in Acode, which sets several
|
||||
// variations at once.
|
||||
_move_cursor_force_fallback = (info.inputType & InputType.TYPE_MASK_VARIATION &
|
||||
InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0;
|
||||
}
|
||||
|
||||
/** Selection has been updated. */
|
||||
@@ -468,17 +473,6 @@ public final class KeyEventHandler
|
||||
return (conn.getSelectedText(0) != null);
|
||||
}
|
||||
|
||||
/** Workaround some apps which answers to [getExtractedText] but do not react
|
||||
to [setSelection] while returning [true]. */
|
||||
boolean should_move_cursor_force_fallback(EditorInfo info)
|
||||
{
|
||||
// This catch Acode: which sets several variations at once.
|
||||
if ((info.inputType & InputType.TYPE_MASK_VARIATION & InputType.TYPE_TEXT_VARIATION_PASSWORD) != 0)
|
||||
return true;
|
||||
// Godot editor: Doesn't handle setSelection() but returns true.
|
||||
return info.packageName.startsWith("org.godotengine.editor");
|
||||
}
|
||||
|
||||
public static interface IReceiver
|
||||
{
|
||||
public void handle_event_key(KeyValue.Event ev);
|
||||
|
@@ -1,7 +1,17 @@
|
||||
package juloo.keyboard2;
|
||||
|
||||
public enum NumberLayout {
|
||||
PIN,
|
||||
NUMBER,
|
||||
NORMAL
|
||||
PIN,
|
||||
NUMBER,
|
||||
NORMAL;
|
||||
|
||||
public static NumberLayout of_string(String name)
|
||||
{
|
||||
switch (name)
|
||||
{
|
||||
case "number": return NUMBER;
|
||||
case "normal": return NORMAL;
|
||||
case "pin": default: return PIN;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user