Compare commits

...

6 commits

Author SHA1 Message Date
Vossa Excelencia
c7895830e7 Translated using Weblate (Portuguese (Brazil))
Currently translated at 99.5% (201 of 202 strings)

Translation: jrpie-Launcher/Launcher
Translate-URL: https://toolate.othing.xyz/projects/jrpie-launcher/launcher/pt_BR/
2025-01-25 00:07:17 +00:00
Vossa Excelencia
14766fe1d9 Translated using Weblate (Portuguese (Brazil))
Currently translated at 100.0% (202 of 202 strings)

Translation: jrpie-Launcher/Launcher
Translate-URL: https://toolate.othing.xyz/projects/jrpie-launcher/launcher/pt_BR/
2025-01-25 00:07:17 +00:00
Anonymous
b9a59c9e37 Translated using Weblate (Portuguese (Brazil))
Currently translated at 97.0% (196 of 202 strings)

Translation: jrpie-Launcher/Launcher
Translate-URL: https://toolate.othing.xyz/projects/jrpie-launcher/launcher/pt_BR/
2025-01-25 00:07:17 +00:00
Anonymous
2d03bdbbef Translated using Weblate (Chinese (Simplified Han script))
Currently translated at 84.1% (170 of 202 strings)

Translation: jrpie-Launcher/Launcher
Translate-URL: https://toolate.othing.xyz/projects/jrpie-launcher/launcher/zh_Hans/
2025-01-25 00:07:17 +00:00
Anonymous
09b12834a9 Translated using Weblate (French)
Currently translated at 95.0% (192 of 202 strings)

Translation: jrpie-Launcher/Launcher
Translate-URL: https://toolate.othing.xyz/projects/jrpie-launcher/launcher/fr/
2025-01-25 00:07:17 +00:00
23f8cfb70e
implement #102 - show version in settings and add bug report dialog
Some checks failed
Android CI / build (push) Has been cancelled
2025-01-24 23:45:19 +01:00
9 changed files with 144 additions and 37 deletions

View file

@ -3,6 +3,8 @@ package de.jrpie.android.launcher
import android.app.Activity import android.app.Activity
import android.app.Service import android.app.Service
import android.app.role.RoleManager import android.app.role.RoleManager
import android.content.ClipData
import android.content.ClipboardManager
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.LauncherApps import android.content.pm.LauncherApps
@ -151,3 +153,21 @@ fun saveListActivityChoice(data: Intent?) {
Gesture.byId(forGesture)?.let { Action.setActionForGesture(it, Action.fromIntent(data)) } Gesture.byId(forGesture)?.let { Action.setActionForGesture(it, Action.fromIntent(data)) }
} }
// used for the bug report button
fun getDeviceInfo(): String {
return """
µLauncher version: ${BuildConfig.VERSION_NAME} (${BuildConfig.VERSION_CODE})
Android version: ${Build.VERSION.RELEASE} (sdk ${Build.VERSION.SDK_INT})
Model: ${Build.MODEL}
Device: ${Build.DEVICE}
Brand: ${Build.BRAND}
Manufacturer: ${Build.MANUFACTURER}
""".trimIndent()
}
fun copyToClipboard(context: Context, text: String) {
val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
val clipData = ClipData.newPlainText("Debug Info", text)
clipboardManager.setPrimaryClip(clipData);
}

View file

@ -7,9 +7,14 @@ import android.os.Bundle
import android.view.LayoutInflater import android.view.LayoutInflater
import android.view.View import android.view.View
import android.view.ViewGroup import android.view.ViewGroup
import android.widget.Button
import android.widget.TextView
import androidx.fragment.app.Fragment import androidx.fragment.app.Fragment
import de.jrpie.android.launcher.BuildConfig
import de.jrpie.android.launcher.R import de.jrpie.android.launcher.R
import de.jrpie.android.launcher.copyToClipboard
import de.jrpie.android.launcher.databinding.SettingsMetaBinding import de.jrpie.android.launcher.databinding.SettingsMetaBinding
import de.jrpie.android.launcher.getDeviceInfo
import de.jrpie.android.launcher.openInBrowser import de.jrpie.android.launcher.openInBrowser
import de.jrpie.android.launcher.preferences.resetPreferences import de.jrpie.android.launcher.preferences.resetPreferences
import de.jrpie.android.launcher.ui.LegalInfoActivity import de.jrpie.android.launcher.ui.LegalInfoActivity
@ -88,12 +93,36 @@ class SettingsFragmentMeta : Fragment(), UIObject {
// report a bug // report a bug
binding.settingsMetaButtonReportBug.setOnClickListener { binding.settingsMetaButtonReportBug.setOnClickListener {
val deviceInfo = getDeviceInfo()
AlertDialog.Builder(context, R.style.AlertDialogCustom).apply {
setView(R.layout.dialog_report_bug)
setTitle(R.string.dialog_report_bug_title)
setPositiveButton(R.string.dialog_report_bug_create_report) { _, _ ->
openInBrowser( openInBrowser(
getString(R.string.settings_meta_report_bug_link), getString(R.string.settings_meta_report_bug_link),
requireContext() requireContext()
) )
} }
setNegativeButton(R.string.dialog_cancel) { _, _ -> }
}.create().also { it.show() }.apply {
val info = findViewById<TextView>(R.id.dialog_report_bug_device_info)
val buttonClipboard = findViewById<Button>(R.id.dialog_report_bug_button_clipboard)
val buttonSecurity = findViewById<Button>(R.id.dialog_report_bug_button_security)
info.text = deviceInfo
buttonClipboard.setOnClickListener {
copyToClipboard(requireContext(), deviceInfo)
}
info.setOnClickListener {
copyToClipboard(requireContext(), deviceInfo)
}
buttonSecurity.setOnClickListener {
openInBrowser(
getString(R.string.settings_meta_report_vulnerability_link),
requireContext()
)
}
}
}
// join chat // join chat
binding.settingsMetaButtonJoinChat.setOnClickListener { binding.settingsMetaButtonJoinChat.setOnClickListener {
@ -104,7 +133,6 @@ class SettingsFragmentMeta : Fragment(), UIObject {
} }
// contact developer // contact developer
binding.settingsMetaButtonContact.setOnClickListener { binding.settingsMetaButtonContact.setOnClickListener {
openInBrowser( openInBrowser(
@ -134,5 +162,7 @@ class SettingsFragmentMeta : Fragment(), UIObject {
startActivity(Intent(this.context, LegalInfoActivity::class.java)) startActivity(Intent(this.context, LegalInfoActivity::class.java))
} }
binding.settingsMetaTextVersion.text = BuildConfig.VERSION_NAME
} }
} }

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
style="@style/AlertDialogDanger"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="20dp">
<TextView
android:id="@+id/dialog_report_bug_info"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_report_bug_info" />
<Space
android:layout_width="match_parent"
android:layout_height="20dp" />
<TextView
android:id="@+id/dialog_report_bug_device_info"
android:padding="10dp"
android:layout_width="match_parent"
android:layout_height="wrap_content"
tools:text="Version: ?\nAndroid Version: ?" />
<Button
android:id="@+id/dialog_report_bug_button_clipboard"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_report_bug_button_clipboard" />
<Space
android:layout_width="match_parent"
android:layout_height="20dp" />
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_report_bug_security_info"/>
<Button
android:id="@+id/dialog_report_bug_button_security"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/dialog_report_bug_button_security" />
</LinearLayout>
</ScrollView>

View file

@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<ScrollView <ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/settings_meta_container" android:id="@+id/settings_meta_container"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
tools:context=".ui.settings.meta.SettingsFragmentMeta"> tools:context=".ui.settings.meta.SettingsFragmentMeta">
<LinearLayout <LinearLayout
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_height="wrap_content"
@ -91,5 +91,16 @@
android:text="@string/settings_meta_licenses" android:text="@string/settings_meta_licenses"
android:textAllCaps="false" /> android:textAllCaps="false" />
<Space
android:layout_width="match_parent"
android:layout_height="32sp" />
<TextView
android:id="@+id/settings_meta_text_version"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textAlignment="textEnd"
tools:text="v1.2.3" />
</LinearLayout> </LinearLayout>
</ScrollView> </ScrollView>

View file

@ -107,7 +107,7 @@
<string name="tutorial_start_text">Prenez quelques instants pour apprendre à utiliser ce \'launcher\' !</string> <string name="tutorial_start_text">Prenez quelques instants pour apprendre à utiliser ce \'launcher\' !</string>
<string name="tutorial_concept_title">Concept</string> <string name="tutorial_concept_title">Concept</string>
<string name="tutorial_concept_text">Launcher vous offre un environnement minimaliste, efficace et sans distraction.\n\nIl ne vous coûte rien, ne contient aucune publicité, ne recueille pas de données personnelles.</string> <string name="tutorial_concept_text">Launcher vous offre un environnement minimaliste, efficace et sans distraction.\n\nIl ne vous coûte rien, ne contient aucune publicité, ne recueille pas de données personnelles.</string>
<string name="tutorial_concept_text_2">L\'application est open-source (sous licence MIT) et disponible sur GitHub!\n\nN\'hésitez pas à y faire un tour!</string> <string name="tutorial_concept_text_2">L\'application est open-source (sous licence MIT) et disponible sur GitHub !\n\nN\'hésitez pas à y faire un tour !</string>
<string name="tutorial_usage_title">Utilisation</string> <string name="tutorial_usage_title">Utilisation</string>
<string name="tutorial_usage_text">Sur votre écran d\'accueil vous ne trouverez rien d\'autre que la date et l\'heure : rien qui pourrait vous distraire.</string> <string name="tutorial_usage_text">Sur votre écran d\'accueil vous ne trouverez rien d\'autre que la date et l\'heure : rien qui pourrait vous distraire.</string>
<string name="tutorial_usage_text_2">Vous pouvez ouvrir des applications en effectuant des mouvelents latéraux sur l\'écran ou en appuyant sur les touches de volume. Vous pourrez en définir le comportement dans le panneau suivant.</string> <string name="tutorial_usage_text_2">Vous pouvez ouvrir des applications en effectuant des mouvelents latéraux sur l\'écran ou en appuyant sur les touches de volume. Vous pourrez en définir le comportement dans le panneau suivant.</string>
@ -115,12 +115,7 @@
<string name="tutorial_setup_text">Voici quelques paramètres par défaut. Vous pouvez les changer dès à présent :</string> <string name="tutorial_setup_text">Voici quelques paramètres par défaut. Vous pouvez les changer dès à présent :</string>
<string name="tutorial_setup_text_2">Vous pourrez bien sûr tout reconfigurer plus tard.</string> <string name="tutorial_setup_text_2">Vous pourrez bien sûr tout reconfigurer plus tard.</string>
<string name="tutorial_finish_title">C\'est parti !</string> <string name="tutorial_finish_title">C\'est parti !</string>
<string name="tutorial_finish_text">Vous êtes prêt à démarrer ! <string name="tutorial_finish_text">Vous êtes prêt à démarrer ! \n \nJ\'espère que cette application vous sera précieuse ! \n \n- Finn M Glas \n(le développeur originel) et Josia (le développeur de la branche μLauncher)</string>
\n
\nJ\'espère que cette application vous sera précieuse !
\n
\n- Finn M Glas
\n(le développeur originel) et Josia (le développeur de la branche μLauncher)</string>
<string name="tutorial_finish_button">Démarrer</string> <string name="tutorial_finish_button">Démarrer</string>
<string name="settings">Réglages</string> <string name="settings">Réglages</string>
<string name="ic_menu_alt">Plus d\'options</string> <string name="ic_menu_alt">Plus d\'options</string>
@ -154,8 +149,7 @@
<string name="list_other_list_favorites">Applications Favorites</string> <string name="list_other_list_favorites">Applications Favorites</string>
<string name="snackbar_app_hidden">Appli cachée. Vous pouvez l\'afficher à nouveau depuis les réglages.</string> <string name="snackbar_app_hidden">Appli cachée. Vous pouvez l\'afficher à nouveau depuis les réglages.</string>
<string name="undo">Défaire</string> <string name="undo">Défaire</string>
<string name="alert_cant_expand_status_bar_panel">Erreur : impossible d\'afficher la barre de statut. <string name="alert_cant_expand_status_bar_panel">Erreur : impossible d\'afficher la barre de statut. \nCette action utilise des fonctionalités qui ne sont pas officiellement dans l\'API Android. Malheuresement ça ne semble pas fonctionner sur votre appareil.</string>
\nCette action utilise des fonctionalités qui ne sont pas officiellement dans l\'API Android. Malheuresement ça ne semble pas fonctionner sur votre appareil.</string>
<string name="list_other_expand_settings_panel">Réglages rapides</string> <string name="list_other_expand_settings_panel">Réglages rapides</string>
<string name="list_other_torch">Basculer l\'état de la lampe</string> <string name="list_other_torch">Basculer l\'état de la lampe</string>
<string name="settings_theme_color_theme_item_dynamic">Dynamique</string> <string name="settings_theme_color_theme_item_dynamic">Dynamique</string>

View file

@ -118,8 +118,8 @@
<string name="tutorial_title">Tutorial</string> <string name="tutorial_title">Tutorial</string>
<string name="tutorial_start_text">Tire alguns segundos para aprender a usar este Launcher!</string> <string name="tutorial_start_text">Tire alguns segundos para aprender a usar este Launcher!</string>
<string name="tutorial_concept_title">Conceito</string> <string name="tutorial_concept_title">Conceito</string>
<string name="tutorial_concept_text">O Launcher foi projetado para ser minimalista, eficiente e livre de distrações.\n\nEle é livre de pagamentos, anúncios e serviços de rastreamento.</string> <string name="tutorial_concept_text">O Launcher foi criado para ser minimalista, eficiente e livre de distrações. Ele é livre de pagamentos, anúncios e serviços de rastreamento.</string>
<string name="tutorial_concept_text_2">O aplicativo é de código aberto (licença MIT) e está disponível no GitHub!\n\nNão deixe de conferir o repositório!</string> <string name="tutorial_concept_text_2">O app é de código aberto (licença MIT) e está disponível no GitHub! Não deixe de conferir o repositório!</string>
<string name="tutorial_usage_title">Uso</string> <string name="tutorial_usage_title">Uso</string>
<string name="tutorial_usage_text">Sua tela inicial contém a data e hora local. Sem distração.</string> <string name="tutorial_usage_text">Sua tela inicial contém a data e hora local. Sem distração.</string>
<string name="tutorial_usage_text_2">Você pode iniciar seus aplicativos com um toque único ou pressionando um botão. Escolha algumas ações no próximo slide.</string> <string name="tutorial_usage_text_2">Você pode iniciar seus aplicativos com um toque único ou pressionando um botão. Escolha algumas ações no próximo slide.</string>
@ -127,13 +127,12 @@
<string name="tutorial_setup_text">Selecionamos alguns aplicativos padrão para você. Se quiser, você pode alterá-los agora:</string> <string name="tutorial_setup_text">Selecionamos alguns aplicativos padrão para você. Se quiser, você pode alterá-los agora:</string>
<string name="tutorial_setup_text_2">Você também pode alterar suas escolhas mais tarde.</string> <string name="tutorial_setup_text_2">Você também pode alterar suas escolhas mais tarde.</string>
<string name="tutorial_finish_title">Vamos lá!</string> <string name="tutorial_finish_title">Vamos lá!</string>
<string name="tutorial_finish_text">Você está pronto para começar!\n\nEspero que isso seja de grande valor para você!\n\n- Finn (que criou o Launcher)\n\te Josia (que fez algumas melhorias e mantém o fork μLauncher)</string> <string name="tutorial_finish_text">Tá todo pronto para começar! Espero que isso seja de grande valor para você! - Finn (que criou o Launcher) \te Josia (que fez algumas melhorias e tb mantém o fork do μLauncher)</string>
<string name="tutorial_finish_button">Começar</string> <string name="tutorial_finish_button">Começar</string>
<string name="settings">Configurações</string> <string name="settings">Configurações</string>
<string name="ic_menu_alt">Mais opções</string> <string name="ic_menu_alt">Mais opções</string>
<string name="list_app_favorite_remove">Remover dos favoritos</string> <string name="list_app_favorite_remove">Remover dos favoritos</string>
<string name="alert_cant_expand_status_bar_panel">Erro: Não foi possível expandir a barra de status. <string name="alert_cant_expand_status_bar_panel">Erro: Não foi possível expandir a barra de status. Essa ação usa uma funcionalidade que não faz parte da API do Android publicado. Infelizmente, isto não vai funcionar no seu dispositivo.</string>
\nEssa ação usa uma funcionalidade que não faz parte da API do Android publicada. Infelizmente, ela não vai funcionar no seu dispositivo.</string>
<string name="settings_theme_background">Fundo (lista de apps e configurações)</string> <string name="settings_theme_background">Fundo (lista de apps e configurações)</string>
<string name="settings_theme_font">Fonte</string> <string name="settings_theme_font">Fonte</string>
<string name="settings_theme_monochrome_icons">Ícones de apps monocromáticos</string> <string name="settings_theme_monochrome_icons">Ícones de apps monocromáticos</string>
@ -257,4 +256,6 @@
<string name="settings_functionality_search_web">Pesquise na internet</string> <string name="settings_functionality_search_web">Pesquise na internet</string>
<string name="settings_functionality_search_web_summary">Ao buscar na lista de apps toque no Enter para iniciar uma pesquisa na internet.</string> <string name="settings_functionality_search_web_summary">Ao buscar na lista de apps toque no Enter para iniciar uma pesquisa na internet.</string>
<string name="list_apps_search_hint_no_auto_launch">Busca (sem inicialização automática)</string> <string name="list_apps_search_hint_no_auto_launch">Busca (sem inicialização automática)</string>
<string name="settings_meta_licenses">Licenças de código aberto</string>
<string name="legal_info_title">Licenças de código aberto</string>
</resources> </resources>

View file

@ -64,9 +64,7 @@
<string name="list_title_pick">选择应用</string> <string name="list_title_pick">选择应用</string>
<string name="tutorial_start_text">花几秒时间学下咋用这个启动器吧!</string> <string name="tutorial_start_text">花几秒时间学下咋用这个启动器吧!</string>
<string name="tutorial_concept_title">概念</string> <string name="tutorial_concept_title">概念</string>
<string name="tutorial_concept_text_2">该应用是开源的MIT许可并在 GitHub 上可用! <string name="tutorial_concept_text_2">该应用是开源的MIT许可并在 GitHub 上可用! \n \n一定要来看看代码仓库</string>
\n
\n一定要来看看代码仓库</string>
<string name="tutorial_usage_title">使用方法</string> <string name="tutorial_usage_title">使用方法</string>
<string name="tutorial_usage_text">您的主屏幕仅包含本地日期和时间,没有其它纷纷扰扰。</string> <string name="tutorial_usage_text">您的主屏幕仅包含本地日期和时间,没有其它纷纷扰扰。</string>
<string name="tutorial_setup_title">设置</string> <string name="tutorial_setup_title">设置</string>
@ -87,17 +85,10 @@
<string name="list_other_track_next">音乐:下一首</string> <string name="list_other_track_next">音乐:下一首</string>
<string name="list_other_nop">啥也不干</string> <string name="list_other_nop">啥也不干</string>
<string name="tutorial_title">教程</string> <string name="tutorial_title">教程</string>
<string name="tutorial_concept_text">μLauncher 的设计是最小、高效且无干扰。 <string name="tutorial_concept_text">μLauncher 的设计是最小、高效且无干扰。 \n \n它不付费、无广告、不追踪。</string>
\n
\n它不付费、无广告、不追踪。</string>
<string name="tutorial_usage_text_2">您只需滑动屏幕或按下按钮即可启动应用程序。在下一步向导中选择一些应用程序。</string> <string name="tutorial_usage_text_2">您只需滑动屏幕或按下按钮即可启动应用程序。在下一步向导中选择一些应用程序。</string>
<string name="settings_general_choose_home_screen">将 μLauncher 设为默认桌面</string> <string name="settings_general_choose_home_screen">将 μLauncher 设为默认桌面</string>
<string name="tutorial_finish_text">您已经准备好开始了! <string name="tutorial_finish_text">您已经准备好开始了! \n \n我希望这对你有很大的价值! \n \n- Finn (Launcher 的作者) \n以及 Josia(做了一些改进并维护了 μLauncher 分支)</string>
\n
\n我希望这对你有很大的价值!
\n
\n- Finn (Launcher 的作者)
\n以及 Josia(做了一些改进并维护了 μLauncher 分支)</string>
<string name="settings_enabled_gestures_double_swipe">双滑动作</string> <string name="settings_enabled_gestures_double_swipe">双滑动作</string>
<string name="settings_clock_localized">使用本地日期格式</string> <string name="settings_clock_localized">使用本地日期格式</string>
<string name="settings_clock_time_visible">显示时间</string> <string name="settings_clock_time_visible">显示时间</string>
@ -110,8 +101,7 @@
<string name="settings_display_rotate_screen">旋转屏幕</string> <string name="settings_display_rotate_screen">旋转屏幕</string>
<string name="settings_launcher_section_apps">应用</string> <string name="settings_launcher_section_apps">应用</string>
<string name="list_other_expand_notifications_panel">展开通知面板</string> <string name="list_other_expand_notifications_panel">展开通知面板</string>
<string name="alert_cant_expand_status_bar_panel">错误:无法打开通知栏。 <string name="alert_cant_expand_status_bar_panel">错误:无法打开通知栏。 \n这个动作使用的功能并非现有的 Android API的一部分。不幸的是它似乎不适用于您的设备。</string>
\n这个动作使用的功能并非现有的 Android API的一部分。不幸的是它似乎不适用于您的设备。</string>
<string name="list_other_torch">开关手电筒</string> <string name="list_other_torch">开关手电筒</string>
<string name="alert_no_torch_found">未检测到带闪光灯的摄像头。</string> <string name="alert_no_torch_found">未检测到带闪光灯的摄像头。</string>
<string name="alert_torch_access_exception">错误:无法访问闪光灯。</string> <string name="alert_torch_access_exception">错误:无法访问闪光灯。</string>

View file

@ -154,7 +154,8 @@
- -
--> -->
<string name="settings_meta_link_github" translatable="false">https://github.com/jrpie/Launcher</string> <string name="settings_meta_link_github" translatable="false">https://github.com/jrpie/Launcher</string>
<string name="settings_meta_report_bug_link" translatable="false">https://github.com/jrpie/Launcher/issues/new/choose</string> <string name="settings_meta_report_bug_link" translatable="false">https://github.com/jrpie/Launcher/issues/new?template=bug_report.md</string>
<string name="settings_meta_report_vulnerability_link" translatable="false">https://github.com/jrpie/Launcher/security/policy</string>
<string name="settings_meta_fork_contact_url" translatable="false">https://s.jrpie.de/contact</string> <string name="settings_meta_fork_contact_url" translatable="false">https://s.jrpie.de/contact</string>
<string name="settings_meta_privacy_url" translatable="false">https://s.jrpie.de/android-legal</string> <string name="settings_meta_privacy_url" translatable="false">https://s.jrpie.de/android-legal</string>
<string name="settings_meta_contact_url" translatable="false">https://www.finnmglas.com/contact/</string> <string name="settings_meta_contact_url" translatable="false">https://www.finnmglas.com/contact/</string>

View file

@ -169,6 +169,13 @@
<string name="settings_meta_view_code">View source code</string> <string name="settings_meta_view_code">View source code</string>
<string name="settings_meta_report_bug">Report a bug</string> <string name="settings_meta_report_bug">Report a bug</string>
<string name="dialog_report_bug_title">Report a bug</string>
<string name="dialog_report_bug_info">Thank you for helping to improve µLauncher!\nPlease consider adding the following information to your bug report:</string>
<string name="dialog_report_bug_button_clipboard">Copy to clipboard</string>
<string name="dialog_report_bug_security_info">Please do not report security vulnerabilities publicly on GitHub, but use the following instead:</string>
<string name="dialog_report_bug_button_security">Report a security vulnerability</string>
<string name="dialog_report_bug_create_report">Create report</string>
<string name="settings_meta_fork_contact">Contact the developer of the fork</string> <string name="settings_meta_fork_contact">Contact the developer of the fork</string>
<string name="settings_meta_join_chat">Join µLauncher chat</string> <string name="settings_meta_join_chat">Join µLauncher chat</string>