Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions gradle.properties
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@ org.gradle.parallel=true
## Reuses task outputs from earlier builds. On GitHub Actions, setup-gradle saves the cache
## between runs.
org.gradle.caching=true
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m
kotlin.daemon.jvmargs=-Xmx1g
org.gradle.workers.max=2
642 changes: 642 additions & 0 deletions lint.xml

Large diffs are not rendered by default.

338 changes: 169 additions & 169 deletions talkback/src/main/res/values-es/strings.xml

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions talkback/src/main/res/values-es/strings_app_info.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Developer settings action that opens Android's app details for this Backtalk installation. [CHAR LIMIT=NONE] -->
<string name="title_pref_open_app_info">Página del sistema con la información de la app</string>
</resources>
4 changes: 2 additions & 2 deletions talkback/src/main/res/values-es/strings_compositor.xml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<string name="talkback_on">TalkBack activado</string>
<string name="talkback_disabled">TalkBack desactivado</string>
<string name="talkback_on">Backtalk activado</string>
<string name="talkback_disabled">Backtalk desactivado</string>
<string name="notification_type_beginning_of_field">Principio del campo</string>
<string name="notification_type_end_of_field">Final del campo</string>
<string name="notification_type_selection_mode_on">Modo de selección activado</string>
Expand Down
57 changes: 57 additions & 0 deletions talkback/src/main/res/values-es/strings_control_sounds.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Sound themes: switch that gives each kind of control its own sound, from where it is on the screen, and its own vibration, from the sound theme. [CHAR LIMIT=40] -->
<string name="title_pref_control_sounds">Control sounds and vibrations</string>
<!-- Sound and vibration settings: summary of the control sounds switch. [CHAR LIMIT=NONE] -->
<string name="summary_pref_control_sounds">Give each kind of control, such as buttons, checkboxes, edit fields and list items, its own sound and its own vibration from the theme, in place of the focus sound and vibration, as Unspoken does for NVDA. The sound comes from where the control is on the screen, and Backtalk leaves out saying what kind of control it is.</string>
<!-- Sound and vibration settings: switch that keeps saying the kind of control, like "button", when its control sound plays. [CHAR LIMIT=60] -->
<string name="title_pref_control_sounds_speak_roles">Still say the kind of control</string>
<!-- Sound and vibration settings: summary of the switch that keeps saying the kind of control when its control sound plays. [CHAR LIMIT=NONE] -->
<string name="summary_pref_control_sounds_speak_roles">When a control sound plays, still say what kind of control it is, such as button. This is for every sound theme.</string>
<!-- Sound and vibration settings: title of the choice of when control sounds play in 3D. [CHAR LIMIT=40] -->
<string name="title_pref_control_sounds_3d">3D audio</string>
<!-- Sound and vibration settings: control sounds play in 3D with headphones, and move between the left and right speakers otherwise. [CHAR LIMIT=60] -->
<string name="pref_control_sounds_3d_headphones">With headphones</string>
<!-- Sound and vibration settings: control sounds always play in 3D. [CHAR LIMIT=60] -->
<string name="pref_control_sounds_3d_always">Always</string>
<!-- Sound and vibration settings: control sounds only move between the left and right speakers. [CHAR LIMIT=60] -->
<string name="pref_control_sounds_3d_never">Never, only left and right</string>

<string-array name="pref_control_sounds_3d_entries" translatable="false">
<item>@string/pref_control_sounds_3d_headphones</item>
<item>@string/pref_control_sounds_3d_always</item>
<item>@string/pref_control_sounds_3d_never</item>
</string-array>
<string-array name="pref_control_sounds_3d_values" translatable="false">
<item>headphones</item>
<item>always</item>
<item>never</item>
</string-array>

<!-- Individual sounds and vibrations: control sound for buttons. [CHAR LIMIT=60] -->
<string name="individual_sound_control_button">Control sound: button</string>
<!-- Individual sounds and vibrations: control sound for checkboxes, switches and toggle buttons. [CHAR LIMIT=60] -->
<string name="individual_sound_control_checkbox">Control sound: checkbox</string>
<!-- Individual sounds and vibrations: control sound for radio buttons. [CHAR LIMIT=60] -->
<string name="individual_sound_control_radio_button">Control sound: radio button</string>
<!-- Individual sounds and vibrations: control sound for edit fields. [CHAR LIMIT=60] -->
<string name="individual_sound_control_edit_text">Control sound: edit field</string>
<!-- Individual sounds and vibrations: control sound for drop-down lists. [CHAR LIMIT=60] -->
<string name="individual_sound_control_combo_box">Control sound: drop-down list</string>
<!-- Individual sounds and vibrations: control sound for sliders and number pickers. [CHAR LIMIT=60] -->
<string name="individual_sound_control_slider">Control sound: slider</string>
<!-- Individual sounds and vibrations: control sound for links on web pages. [CHAR LIMIT=60] -->
<string name="individual_sound_control_link">Control sound: link</string>
<!-- Individual sounds and vibrations: control sound for images. [CHAR LIMIT=60] -->
<string name="individual_sound_control_image">Control sound: image</string>
<!-- Individual sounds and vibrations: control sound for clocks. [CHAR LIMIT=60] -->
<string name="individual_sound_control_clock">Control sound: clock</string>
<!-- Individual sounds and vibrations: control sound for tabs. [CHAR LIMIT=60] -->
<string name="individual_sound_control_tab">Control sound: tab</string>
<!-- Individual sounds and vibrations: control sound for menu items. [CHAR LIMIT=60] -->
<string name="individual_sound_control_menu_item">Control sound: menu item</string>
<!-- Individual sounds and vibrations: control sound for items in lists. [CHAR LIMIT=60] -->
<string name="individual_sound_control_list_item">Control sound: list item</string>
<!-- Individual sounds and vibrations: control sound for items in trees on web pages. [CHAR LIMIT=60] -->
<string name="individual_sound_control_tree_item">Control sound: tree item</string>
</resources>
29 changes: 29 additions & 0 deletions talkback/src/main/res/values-es/strings_direct_touch.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<!-- Spoken when direct touch turns on: touches now go straight to the app in front. [CHAR LIMIT=40] -->
<string name="direct_touch_on">Toque directo activado</string>
<!-- Spoken when direct touch turns off: touches go back to the screen reader. [CHAR LIMIT=40] -->
<string name="direct_touch_off">Toque directo desactivado</string>

<!-- Label of the quick settings tile that pauses and resumes direct touch. [CHAR LIMIT=20] -->
<string name="direct_touch_tile_label">Direct touch</string>

<!-- Title of the direct touch settings screen. [CHAR LIMIT=40] -->
<string name="title_pref_direct_touch">Toque directo</string>
<!-- Direct touch settings: master switch title. [CHAR LIMIT=40] -->
<string name="pref_direct_touch_master">Toque directo</string>
<!-- Direct touch settings: master switch summary. [CHAR LIMIT=NONE] -->
<string name="pref_direct_touch_master_summary">Pasa los gestos y toques directamente a las apps que selecciones abajo, y los devuelve a Backtalk para diálogos, menús, el teclado y pantallas del sistema.</string>
<!-- Direct touch settings: switch that makes Backtalk speak when direct touch changes. [CHAR LIMIT=60] -->
<string name="pref_direct_touch_speech">Anunciar cuando el toque directo se cambie</string>
<!-- Direct touch settings: switch that makes the phone vibrate when direct touch changes. [CHAR LIMIT=60] -->
<string name="pref_direct_touch_haptics">Vibrar cuando el toque directo cambie</string>
<!-- Direct touch settings: heading of the list of apps. [CHAR LIMIT=30] -->
<string name="direct_touch_apps_category">Apps</string>
<!-- Direct touch settings: accessibility action that turns direct typing on for an app. [CHAR LIMIT=40] -->
<string name="direct_touch_action_typing_on">Activar escritura directa</string>
<!-- Direct touch settings: accessibility action that turns direct typing off for an app. [CHAR LIMIT=40] -->
<string name="direct_touch_action_typing_off">Desactivar escritura directa</string>
<!-- Direct touch settings: summary of an app that has direct typing on. [CHAR LIMIT=40] -->
<string name="direct_touch_typing_summary_on">Escritura directa activada</string>
</resources>
63 changes: 63 additions & 0 deletions talkback/src/main/res/values-es/strings_gemini_api_key.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Title of the setting, and of its dialog, for the Gemini API key. [CHAR LIMIT=40] -->
<string name="title_pref_gemini_api_key">Gemini API key</string>
<!-- Summary of the Gemini API key setting when the user has entered a key. [CHAR LIMIT=NONE] -->
<string name="summary_pref_gemini_api_key_set">Set. Describe image and describe screen use Gemini</string>
<!-- Summary of the Gemini API key setting when the user has not entered a key, but the app was built with one. [CHAR LIMIT=NONE] -->
<string name="summary_pref_gemini_api_key_built_in">Using the key built into this app</string>
<!-- Summary of the Gemini API key setting when there is no key. [CHAR LIMIT=NONE] -->
<string name="summary_pref_gemini_api_key_not_set">Not set. Without a key, describe image only reads text, and describe screen needs on-device AI</string>
<!-- Message in the dialog where the user enters a Gemini API key. [CHAR LIMIT=NONE] -->
<string name="gemini_api_key_dialog_message">Get a free API key from Google AI Studio, at aistudio.google.com/apikey, and paste it here. To remove your key, clear the field and save.\n\nImages and screens that you describe are sent to Google. On the free tier, Google can use them to improve its products.</string>
<!-- Hint in the empty field for the Gemini API key. [CHAR LIMIT=30] -->
<string name="gemini_api_key_hint">API key</string>
<!-- Button that saves the Gemini API key. [CHAR LIMIT=20] -->
<string name="gemini_api_key_save">Save</string>
<!-- Button that opens Google AI Studio in the browser to get a Gemini API key. [CHAR LIMIT=20] -->
<string name="gemini_api_key_get">Get a key</string>
<!-- Link text in the AI consent dialogs, to the terms that cover requests to the Gemini API. -->
<string name="gemini_api_terms_link">Gemini API Additional Terms of Service</string>

<!-- Button that asks a question by voice about a described image or screen, when Other AI service is set up instead of Gemini. [CHAR LIMIT=25] -->
<string name="image_qna_button_text_ai">Ask AI</string>
<!-- Button and field hint for typing a question about a described image or screen, when Other AI service is set up instead of Gemini. [CHAR LIMIT=40] -->
<string name="image_qna_typing_button_text_ai">Type question for AI</string>

<!-- Title of the setting, and its dialog, for an AI service other than Gemini that Describe image and Describe screen use. [CHAR LIMIT=50] -->
<string name="title_pref_ai_service">Other AI service</string>
<!-- Summary of the Other AI service setting when one is set up. [CHAR LIMIT=NONE] -->
<string name="summary_pref_ai_service_set">Describe image and describe screen use <xliff:g id="model" example="google/gemma-3-27b-it">%1$s</xliff:g></string>
<!-- Summary of the Other AI service setting when none is set up. [CHAR LIMIT=NONE] -->
<string name="summary_pref_ai_service_not_set">Not set. Gemini is used</string>
<!-- Message of the dialog that sets up another AI service. [CHAR LIMIT=NONE] -->
<string name="ai_service_dialog_message">A service with an OpenAI-compatible chat API and image input, such as OpenRouter (https://openrouter.ai/api/v1), Groq (https://api.groq.com/openai/v1), Mistral (https://api.mistral.ai/v1), Ollama Cloud (https://ollama.com/v1) or Claude (https://api.anthropic.com/v1). Images and questions are sent to it. To use Gemini again, clear the address.</string>
<!-- Hint of the field for the address of the AI service. [CHAR LIMIT=NONE] -->
<string name="ai_service_address_hint">Address, such as https://openrouter.ai/api/v1</string>
<!-- Hint of the field for the model the AI service runs. [CHAR LIMIT=NONE] -->
<string name="ai_service_model_hint">Model</string>
<!-- Hint of the field for the API key of the AI service. [CHAR LIMIT=NONE] -->
<string name="ai_service_api_key_hint">API key</string>
<!-- Shown when the address entered for the AI service is not an https address. [CHAR LIMIT=NONE] -->
<string name="ai_service_address_invalid">The address must start with https://. Nothing was saved.</string>
<!-- Message of the dialogs that ask before images or screenshots are sent to be described, when another AI service is set up. [CHAR LIMIT=NONE] -->
<string name="dialog_message_ai_service_consent">Images and screenshots are sent to <xliff:g id="host" example="openrouter.ai">%1$s</xliff:g> to be described, which takes several seconds. Its own terms and privacy policy apply. Generative AI is experimental, so it will make mistakes.</string>
<!-- Spoken when the other AI service rejects the API key. [CHAR LIMIT=NONE] -->
<string name="ai_service_error_api_key">The AI service didn\'t accept the API key. Check Other AI service in Automatic descriptions settings.</string>
<!-- Spoken when the usage limit of the other AI service is reached. [CHAR LIMIT=NONE] -->
<string name="ai_service_error_quota">The usage limit of the AI service has been reached. Try again later.</string>
<!-- Spoken when the other AI service is overloaded. [CHAR LIMIT=NONE] -->
<string name="ai_service_error_busy">The AI service is busy right now. Try again in a moment.</string>
<!-- Spoken when the other AI service does not answer in time. [CHAR LIMIT=NONE] -->
<string name="ai_service_error_timeout">The AI service took too long to answer. Try again.</string>
<!-- Spoken when the other AI service answers with an HTTP error that has no explanation. [CHAR LIMIT=NONE] -->
<string name="ai_service_error_with_code">The AI service couldn\'t answer, error <xliff:g id="http_status" example="404">%1$d</xliff:g>.</string>
<!-- Spoken when the other AI service answers with an HTTP error and its explanation, which may be in English. [CHAR LIMIT=NONE] -->
<string name="ai_service_error_with_details">The AI service couldn\'t answer, error <xliff:g id="http_status" example="404">%1$d</xliff:g>: <xliff:g id="details" example="The model does not exist.">%2$s</xliff:g></string>
<!-- Summary of the Gemini API key setting while another AI service is set up. [CHAR LIMIT=NONE] -->
<string name="summary_pref_gemini_api_key_other_service">Not used while Other AI service is set</string>
<!-- Title of the setting, and of its dialog, for the Gemini model that Describe image and Describe screen use. [CHAR LIMIT=40] -->
<string name="title_pref_gemini_model">Gemini model</string>
<!-- Message in the dialog where the user enters a Gemini model name. The model built into the app is filled in. [CHAR LIMIT=NONE] -->
<string name="gemini_model_dialog_message">If Gemini keeps saying it\'s busy, or that the model doesn\'t exist, enter another model\'s name from Google AI Studio, such as gemini-3.5-flash. Clear the field and save to use <xliff:g id="model" example="gemini-3.5-flash">%1$s</xliff:g> again.</string>
</resources>
Loading