diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index c324a1a7119..14254a2e264 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -26,11 +26,11 @@
android:value="2020-09-01" />
@@ -257,7 +257,7 @@
{
setExtraControlsTitle(
- resourceHandler.getStringInLocale(R.string.administrator_controls_edit_profiles)
+ resourceHandler.getStringInLocale(
+ R.string.administrator_controls_fragment_edit_profiles_text
+ )
)
loadProfileList()
}
diff --git a/app/src/main/java/org/oppia/android/app/administratorcontrols/LogoutDialogFragment.kt b/app/src/main/java/org/oppia/android/app/administratorcontrols/LogoutDialogFragment.kt
index f53e3244ee3..7182ae898a1 100644
--- a/app/src/main/java/org/oppia/android/app/administratorcontrols/LogoutDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/administratorcontrols/LogoutDialogFragment.kt
@@ -30,11 +30,11 @@ class LogoutDialogFragment : InjectableDialogFragment() {
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
return AlertDialog.Builder(requireContext(), R.style.OppiaAlertDialogTheme)
- .setMessage(R.string.log_out_dialog_message)
- .setNegativeButton(R.string.log_out_dialog_cancel_button) { dialog, _ ->
+ .setMessage(R.string.log_out_dialog_message_text)
+ .setNegativeButton(R.string.log_out_dialog_cancel_button_text) { dialog, _ ->
dialog.dismiss()
}
- .setPositiveButton(R.string.log_out_dialog_okay_button) { _, _ ->
+ .setPositiveButton(R.string.log_out_dialog_okay_button_text) { _, _ ->
val intent = ProfileChooserActivity.createProfileChooserActivity(activity!!)
startActivity(intent)
}.create()
diff --git a/app/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionViewModel.kt b/app/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionViewModel.kt
index f67614fd3be..7595588d92c 100644
--- a/app/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/administratorcontrols/appversion/AppVersionViewModel.kt
@@ -22,12 +22,14 @@ class AppVersionViewModel @Inject constructor(
/** Returns a localized, human-readable app version name. */
fun computeVersionNameText(): String =
- resourceHandler.getStringInLocaleWithWrapping(R.string.app_version_name, versionName)
+ resourceHandler.getStringInLocaleWithWrapping(
+ R.string.app_version_fragment_version_name_text, versionName
+ )
/** Returns a localized, human-readable lastUpdateDateTime. */
fun computeLastUpdatedDateText(): String =
resourceHandler.getStringInLocaleWithWrapping(
- R.string.app_last_update_date, getDateTime(lastUpdateDateTime)
+ R.string.app_version_fragment_last_update_date_text, getDateTime(lastUpdateDateTime)
)
private fun getDateTime(lastUpdateTime: Long): String =
diff --git a/app/src/main/java/org/oppia/android/app/customview/ChapterNotStartedContainerConstraintLayout.kt b/app/src/main/java/org/oppia/android/app/customview/ChapterNotStartedContainerConstraintLayout.kt
index b20920c763a..6d0b923ff0a 100644
--- a/app/src/main/java/org/oppia/android/app/customview/ChapterNotStartedContainerConstraintLayout.kt
+++ b/app/src/main/java/org/oppia/android/app/customview/ChapterNotStartedContainerConstraintLayout.kt
@@ -56,7 +56,7 @@ class ChapterNotStartedContainerConstraintLayout @JvmOverloads constructor(
isSpotlit = true
val spotlightTarget = SpotlightTarget(
this,
- resourceHandler.getStringInLocale(R.string.first_chapter_spotlight_hint),
+ resourceHandler.getStringInLocale(R.string.topic_fragment_first_chapter_spotlight_hint),
feature = Spotlight.FeatureCase.FIRST_CHAPTER
)
if (index == 0) {
diff --git a/app/src/main/java/org/oppia/android/app/customview/PromotedStoryCardView.kt b/app/src/main/java/org/oppia/android/app/customview/PromotedStoryCardView.kt
index ca104409df7..6b8c2e7ab07 100644
--- a/app/src/main/java/org/oppia/android/app/customview/PromotedStoryCardView.kt
+++ b/app/src/main/java/org/oppia/android/app/customview/PromotedStoryCardView.kt
@@ -37,7 +37,7 @@ class PromotedStoryCardView @JvmOverloads constructor(
isSpotlit = true
val spotlightTarget = SpotlightTarget(
this,
- resourceHandler.getStringInLocale(R.string.promoted_story_spotlight_hint),
+ resourceHandler.getStringInLocale(R.string.home_story_promoted_story_spotlight_hint),
feature = Spotlight.FeatureCase.PROMOTED_STORIES
)
checkNotNull(getSpotlightManager()).requestSpotlightViewWithDelayedLayout(spotlightTarget)
diff --git a/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java b/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java
index 591e8c88738..6aff3d8e5c1 100644
--- a/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java
+++ b/app/src/main/java/org/oppia/android/app/databinding/TextViewBindingAdapters.java
@@ -25,7 +25,7 @@ public static void setProfileDataText(@NonNull TextView textView, long timestamp
AppLanguageResourceHandler resourceHandler = getResourceHandler(textView);
String time = resourceHandler.computeDateString(timestamp);
textView.setText(resourceHandler.getStringInLocaleWithWrapping(
- R.string.profile_edit_created,
+ R.string.profile_edit_activity_created_text,
time
));
}
@@ -34,7 +34,9 @@ public static void setProfileDataText(@NonNull TextView textView, long timestamp
@BindingAdapter("profile:lastVisited")
public static void setProfileLastVisitedText(@NonNull TextView textView, long timestamp) {
AppLanguageResourceHandler resourceHandler = getResourceHandler(textView);
- String profileLastUsed = resourceHandler.getStringInLocale(R.string.profile_last_used);
+ String profileLastUsed = resourceHandler.getStringInLocale(
+ R.string.profile_edit_activity_last_used_text
+ );
String timeAgoTimeStamp = getTimeAgo(textView, timestamp);
String profileLastVisited = resourceHandler.getStringInLocaleWithWrapping(
R.string.profile_last_visited,
diff --git a/app/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt b/app/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt
index 7900163e9a5..4276230d6eb 100644
--- a/app/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/drawer/ExitProfileDialogFragment.kt
@@ -66,10 +66,10 @@ class ExitProfileDialogFragment : InjectableDialogFragment() {
val alertDialog = AlertDialog
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaAlertDialogTheme))
.setMessage(R.string.home_activity_back_dialog_message)
- .setNegativeButton(R.string.home_activity_back_dialog_cancel) { dialog, _ ->
+ .setNegativeButton(R.string.home_activity_back_dialog_cancel_button) { dialog, _ ->
dialog.dismiss()
}
- .setPositiveButton(R.string.home_activity_back_dialog_exit) { _, _ ->
+ .setPositiveButton(R.string.home_activity_back_dialog_exit_button) { _, _ ->
// TODO(#3641): Investigate on using finish instead of intent.
val intent = ProfileChooserActivity.createProfileChooserActivity(activity!!)
if (!restoreLastCheckedItem) {
diff --git a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt
index 44fb2ec9945..36f176e73be 100644
--- a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerFragmentPresenter.kt
@@ -412,8 +412,8 @@ class NavigationDrawerFragmentPresenter @Inject constructor(
fragment.activity,
drawerLayout,
toolbar,
- R.string.drawer_open_content_description,
- R.string.drawer_close_content_description
+ R.string.navigation_drawer_fragment_open_content_description,
+ R.string.navigation_drawer_fragment_close_content_description
) {
override fun onDrawerOpened(drawerView: View) {
super.onDrawerOpened(drawerView)
@@ -451,8 +451,8 @@ class NavigationDrawerFragmentPresenter @Inject constructor(
fragment.activity,
drawerLayout,
toolbar,
- R.string.drawer_open_content_description,
- R.string.drawer_close_content_description
+ R.string.navigation_drawer_fragment_open_content_description,
+ R.string.navigation_drawer_fragment_close_content_description
) {
override fun onDrawerOpened(drawerView: View) {
super.onDrawerOpened(drawerView)
diff --git a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt
index d75c0d03287..6652defe7c2 100644
--- a/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/drawer/NavigationDrawerHeaderViewModel.kt
@@ -49,7 +49,9 @@ class NavigationDrawerHeaderViewModel @Inject constructor(
)
}
- fun getBarSeparator() = resourceHandler.getStringInLocale(R.string.bar_separator)
+ fun getBarSeparator() = resourceHandler.getStringInLocale(
+ R.string.navigation_drawer_fragment_bar_separator_text
+ )
private fun computeProfileTopicProgressText(): String {
return resourceHandler.getQuantityStringInLocaleWithWrapping(
diff --git a/app/src/main/java/org/oppia/android/app/help/HelpActivity.kt b/app/src/main/java/org/oppia/android/app/help/HelpActivity.kt
index 8d1182d5105..f92de92c60e 100644
--- a/app/src/main/java/org/oppia/android/app/help/HelpActivity.kt
+++ b/app/src/main/java/org/oppia/android/app/help/HelpActivity.kt
@@ -82,7 +82,7 @@ class HelpActivity :
selectedLicenseIndex,
policiesActivityParams
)
- title = resourceHandler.getStringInLocale(R.string.menu_help)
+ title = resourceHandler.getStringInLocale(R.string.menu_help_text)
}
companion object {
diff --git a/app/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt
index 29f2aa8123b..690f6c39ec7 100644
--- a/app/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/help/HelpActivityPresenter.kt
@@ -281,7 +281,7 @@ class HelpActivityPresenter @Inject constructor(
when (fragmentTag) {
LICENSE_LIST_FRAGMENT_TAG -> {
val thirdPartyDependenciesList = resourceHandler.getStringInLocale(
- R.string.help_activity_third_party_dependencies_list
+ R.string.help_activity_third_party_dependencies_text
)
activity.findViewById(R.id.help_multipane_options_back_button)
.contentDescription = resourceHandler.getStringInLocaleWithoutWrapping(
@@ -291,7 +291,7 @@ class HelpActivityPresenter @Inject constructor(
}
LICENSE_TEXT_FRAGMENT_TAG -> {
val copyrightLicensesList = resourceHandler.getStringInLocale(
- R.string.help_activity_copyright_licenses_list
+ R.string.help_activity_copyright_licenses_text
)
activity.findViewById(R.id.help_multipane_options_back_button)
.contentDescription = resourceHandler.getStringInLocaleWithoutWrapping(
@@ -337,10 +337,10 @@ class HelpActivityPresenter @Inject constructor(
private fun selectPoliciesFragment(policyPage: PolicyPage) {
when (policyPage) {
PolicyPage.PRIVACY_POLICY -> setMultipaneContainerTitle(
- resourceHandler.getStringInLocale(R.string.privacy_policy_title)
+ resourceHandler.getStringInLocale(R.string.policy_activity_privacy_policy_title)
)
PolicyPage.TERMS_OF_SERVICE -> setMultipaneContainerTitle(
- resourceHandler.getStringInLocale(R.string.terms_of_service_title)
+ resourceHandler.getStringInLocale(R.string.policy_activity_terms_of_service_title)
)
else -> { }
}
diff --git a/app/src/main/java/org/oppia/android/app/help/HelpItemViewModel.kt b/app/src/main/java/org/oppia/android/app/help/HelpItemViewModel.kt
index a2472a4e3e1..04375e62bda 100644
--- a/app/src/main/java/org/oppia/android/app/help/HelpItemViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/help/HelpItemViewModel.kt
@@ -16,7 +16,7 @@ class HelpItemViewModel(
) : ObservableViewModel() {
fun onClick(title: String) {
when (title) {
- resourceHandler.getStringInLocale(R.string.frequently_asked_questions_FAQ) -> {
+ resourceHandler.getStringInLocale(R.string.help_activity_faq_text) -> {
if (isMultipane) {
val loadFaqListFragmentListener = activity as LoadFaqListFragmentListener
loadFaqListFragmentListener.loadFaqListFragment()
@@ -36,10 +36,10 @@ class HelpItemViewModel(
routeToThirdPartyDependencyListListener.onRouteToThirdPartyDependencyList()
}
}
- resourceHandler.getStringInLocale(R.string.privacy_policy_title) -> {
+ resourceHandler.getStringInLocale(R.string.policy_activity_privacy_policy_title) -> {
loadPolicyPage(PolicyPage.PRIVACY_POLICY)
}
- resourceHandler.getStringInLocale(R.string.terms_of_service_title) -> {
+ resourceHandler.getStringInLocale(R.string.policy_activity_terms_of_service_title) -> {
loadPolicyPage(PolicyPage.TERMS_OF_SERVICE)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/help/HelpListViewModel.kt b/app/src/main/java/org/oppia/android/app/help/HelpListViewModel.kt
index 3684a6b4e29..833c9a42c84 100644
--- a/app/src/main/java/org/oppia/android/app/help/HelpListViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/help/HelpListViewModel.kt
@@ -19,15 +19,15 @@ class HelpListViewModel @Inject constructor(
private fun getRecyclerViewItemList(): ArrayList {
for (item in HelpItems.values()) {
val category = when (item) {
- HelpItems.FAQ -> resourceHandler.getStringInLocale(R.string.frequently_asked_questions_FAQ)
+ HelpItems.FAQ -> resourceHandler.getStringInLocale(R.string.help_activity_faq_text)
HelpItems.THIRD_PARTY -> resourceHandler.getStringInLocale(
R.string.third_party_dependency_list_activity_title
)
HelpItems.PRIVACY_POLICY -> resourceHandler.getStringInLocale(
- R.string.privacy_policy_title
+ R.string.policy_activity_privacy_policy_title
)
HelpItems.TERMS_OF_SERVICE -> resourceHandler.getStringInLocale(
- R.string.terms_of_service_title
+ R.string.policy_activity_terms_of_service_title
)
}
arrayList += HelpItemViewModel(
diff --git a/app/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt
index ed02ae5770d..f73ff2a45ab 100644
--- a/app/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/help/faq/FAQListActivityPresenter.kt
@@ -26,7 +26,9 @@ class FAQListActivityPresenter @Inject constructor(
faqListActivityToolbar = binding.faqListActivityToolbar
activity.setSupportActionBar(faqListActivityToolbar)
- activity.supportActionBar!!.title = resourceHandler.getStringInLocale(R.string.FAQs)
+ activity.supportActionBar!!.title = resourceHandler.getStringInLocale(
+ R.string.faq_list_activity_title
+ )
activity.supportActionBar!!.setDisplayShowHomeEnabled(true)
activity.supportActionBar!!.setDisplayHomeAsUpEnabled(true)
diff --git a/app/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt
index 4802913476e..bd36f117c63 100644
--- a/app/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/help/faq/faqsingle/FAQSingleActivityPresenter.kt
@@ -34,7 +34,9 @@ class FAQSingleActivityPresenter @Inject constructor(
faqSingleActivityToolbar = binding.faqSingleActivityToolbar
activity.setSupportActionBar(faqSingleActivityToolbar)
- activity.supportActionBar!!.title = resourceHandler.getStringInLocale(R.string.FAQs)
+ activity.supportActionBar!!.title = resourceHandler.getStringInLocale(
+ R.string.faq_list_activity_title
+ )
activity.supportActionBar!!.setDisplayShowHomeEnabled(true)
activity.supportActionBar!!.setDisplayHomeAsUpEnabled(true)
diff --git a/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragmentPresenter.kt
index 670afb8c3c5..ea22690af8c 100644
--- a/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionDialogFragmentPresenter.kt
@@ -92,7 +92,7 @@ class HintsAndSolutionDialogFragmentPresenter @Inject constructor(
HintsAndSolutionFragmentBinding.inflate(inflater, container, /* attachToRoot= */ false)
binding.hintsAndSolutionToolbar.setNavigationIcon(R.drawable.ic_close_white_24dp)
binding.hintsAndSolutionToolbar.setNavigationContentDescription(
- R.string.hints_and_solution_close_icon_description
+ R.string.hint_solution_dialog_close_icon_description
)
binding.hintsAndSolutionToolbar.setNavigationOnClickListener {
(fragment.requireActivity() as? HintsAndSolutionListener)?.dismiss()
diff --git a/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionViewModel.kt b/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionViewModel.kt
index f604f7f6547..2e5f3faaf61 100644
--- a/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/hintsandsolution/HintsAndSolutionViewModel.kt
@@ -69,7 +69,7 @@ class HintsAndSolutionViewModel private constructor(
): HintViewModel {
return HintViewModel(
title = resourceHandler.getStringInLocaleWithWrapping(
- R.string.hint_list_item_number,
+ R.string.hint_solution_dialog_hint_list_item_number,
resourceHandler.toHumanReadableString(hintIndex + 1)
),
hintSummary = translationController.extractString(
diff --git a/app/src/main/java/org/oppia/android/app/hintsandsolution/RevealSolutionDialogFragment.kt b/app/src/main/java/org/oppia/android/app/hintsandsolution/RevealSolutionDialogFragment.kt
index 384213caf6d..96f010184df 100755
--- a/app/src/main/java/org/oppia/android/app/hintsandsolution/RevealSolutionDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/hintsandsolution/RevealSolutionDialogFragment.kt
@@ -42,14 +42,22 @@ class RevealSolutionDialogFragment : InjectableDialogFragment() {
return AlertDialog
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
- .setTitle(R.string.reveal_solution)
+ .setTitle(R.string.hint_solution_dialog_reveal_solution_text)
.setView(view)
- .setMessage(resourceHandler.getStringInLocale(R.string.this_will_reveal_the_solution))
- .setPositiveButton(resourceHandler.getStringInLocale(R.string.reveal)) { _, _ ->
+ .setMessage(
+ resourceHandler.getStringInLocale(
+ R.string.hint_solution_dialog_reveal_dialog_solution_text
+ )
+ )
+ .setPositiveButton(
+ resourceHandler.getStringInLocale(
+ R.string.hint_solution_dialog_reveal_dialog_button_text
+ )
+ ) { _, _ ->
revealSolutionInterface.revealSolution()
dismiss()
}
- .setNegativeButton(R.string.cellular_data_alert_dialog_cancel_button) { _, _ ->
+ .setNegativeButton(R.string.cellular_audio_dialog_cancel_button_text) { _, _ ->
dismiss()
}
.create()
diff --git a/app/src/main/java/org/oppia/android/app/hintsandsolution/SolutionViewModel.kt b/app/src/main/java/org/oppia/android/app/hintsandsolution/SolutionViewModel.kt
index cd70ceaae8e..2059b14b3f7 100644
--- a/app/src/main/java/org/oppia/android/app/hintsandsolution/SolutionViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/hintsandsolution/SolutionViewModel.kt
@@ -78,8 +78,8 @@ class SolutionViewModel private constructor(
val correctAnswerContentDescription: String by lazy { computeCorrectAnswerContentDescription() }
private val correctAnswerTextStringResId = if (isSolutionExclusive) {
- R.string.hints_list_exclusive_solution_text
- } else R.string.hints_list_possible_solution_text
+ R.string.hint_solution_dialog_exclusive_solution_text
+ } else R.string.hint_solution_dialog_possible_solution_text
private fun computeCorrectAnswerHtml(): String {
val answerTextHtml = when (correctAnswer.objectTypeCase) {
diff --git a/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt b/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
index 993212cdf41..906ef3b164d 100644
--- a/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/home/promotedlist/PromotedStoryListViewModel.kt
@@ -41,10 +41,10 @@ class PromotedStoryListViewModel(
resourceHandler.getStringInLocale(R.string.stories_for_you)
}
recentlyPlayedStoryList.isNotEmpty() -> {
- resourceHandler.getStringInLocale(R.string.recently_played_stories)
+ resourceHandler.getStringInLocale(R.string.home_activity_recently_played_stories)
}
else -> {
- resourceHandler.getStringInLocale(R.string.last_played_stories)
+ resourceHandler.getStringInLocale(R.string.home_activity_last_played_stories)
}
}
}
diff --git a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/PromotedStoryViewModel.kt b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/PromotedStoryViewModel.kt
index f93fba2613c..06b60075c61 100755
--- a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/PromotedStoryViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/PromotedStoryViewModel.kt
@@ -131,7 +131,7 @@ class PromotedStoryViewModel(
*/
fun computeLessonThumbnailContentDescription(): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.lesson_thumbnail_content_description, nextChapterTitle
+ R.string.home_activity_lesson_thumbnail_description, nextChapterTitle
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt
index 9eef029e29b..a7b3afb5192 100644
--- a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedActivityPresenter.kt
@@ -50,13 +50,13 @@ class RecentlyPlayedActivityPresenter @Inject constructor(
resourceHandler.getStringInLocale(R.string.stories_for_you)
}
RecentlyPlayedActivityTitle.LAST_PLAYED_STORIES -> {
- resourceHandler.getStringInLocale(R.string.last_played_stories)
+ resourceHandler.getStringInLocale(R.string.home_activity_last_played_stories)
}
RecentlyPlayedActivityTitle.RECOMMENDED_STORIES -> {
resourceHandler.getStringInLocale(R.string.recommended_stories)
}
else -> {
- resourceHandler.getStringInLocale(R.string.recently_played_activity)
+ resourceHandler.getStringInLocale(R.string.recently_played_activity_title)
}
}
}
diff --git a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedViewModel.kt b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedViewModel.kt
index 7716fdf11f5..c2bf98155ae 100644
--- a/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/home/recentlyplayed/RecentlyPlayedViewModel.kt
@@ -112,7 +112,7 @@ class RecentlyPlayedViewModel private constructor(
) {
val recentSectionTitleViewModel =
SectionTitleViewModel(
- resourceHandler.getStringInLocale(R.string.ongoing_story_last_week), false
+ resourceHandler.getStringInLocale(R.string.home_activity_ongoing_story_last_week), false
)
itemList.add(recentSectionTitleViewModel)
recentlyPlayedStoryList.forEachIndexed { index, promotedStory ->
@@ -128,7 +128,7 @@ class RecentlyPlayedViewModel private constructor(
val showDivider = itemList.isNotEmpty()
val olderSectionTitleViewModel =
SectionTitleViewModel(
- resourceHandler.getStringInLocale(R.string.ongoing_story_last_month),
+ resourceHandler.getStringInLocale(R.string.home_activity_ongoing_story_last_month),
showDivider
)
itemList.add(olderSectionTitleViewModel)
diff --git a/app/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt
index acad9aa15d5..831d9ec3478 100644
--- a/app/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/mydownloads/MyDownloadsFragmentPresenter.kt
@@ -46,8 +46,12 @@ class MyDownloadsFragmentPresenter @Inject constructor(
TabLayoutMediator(tabLayout, viewPager2) { tab, position ->
when (position) {
- 0 -> tab.text = resourceHandler.getStringInLocale(R.string.tab_downloads)
- 1 -> tab.text = resourceHandler.getStringInLocale(R.string.tab_updates)
+ 0 -> tab.text = resourceHandler.getStringInLocale(
+ R.string.my_downloads_fragment_tab_download_text
+ )
+ 1 ->
+ tab.text =
+ resourceHandler.getStringInLocale(R.string.my_downloads_fragment_tab_updates_text)
}
}.attach()
}
diff --git a/app/src/main/java/org/oppia/android/app/onboarding/OnboadingSlideViewModel.kt b/app/src/main/java/org/oppia/android/app/onboarding/OnboadingSlideViewModel.kt
index 83b02f89172..0d03cf11914 100644
--- a/app/src/main/java/org/oppia/android/app/onboarding/OnboadingSlideViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/onboarding/OnboadingSlideViewModel.kt
@@ -20,7 +20,11 @@ class OnboardingSlideViewModel(
val title =
ObservableField(getOnboardingSlide0Title())
val description =
- ObservableField(resourceHandler.getStringInLocale(R.string.onboarding_slide_0_description))
+ ObservableField(
+ resourceHandler.getStringInLocale(
+ R.string.onboarding_activity_slide_0_description
+ )
+ )
private val orientation = Resources.getSystem().configuration.orientation
init {
@@ -40,7 +44,11 @@ class OnboardingSlideViewModel(
slideImage.set(R.drawable.ic_portrait_onboarding_0)
}
title.set(getOnboardingSlide0Title())
- description.set(resourceHandler.getStringInLocale(R.string.onboarding_slide_0_description))
+ description.set(
+ resourceHandler.getStringInLocale(
+ R.string.onboarding_activity_slide_0_description
+ )
+ )
}
ViewPagerSlide.SLIDE_1 -> {
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
@@ -52,8 +60,16 @@ class OnboardingSlideViewModel(
} else if (orientation == Configuration.ORIENTATION_PORTRAIT) {
slideImage.set(R.drawable.ic_portrait_onboarding_1)
}
- title.set(resourceHandler.getStringInLocale(R.string.onboarding_slide_1_title))
- description.set(resourceHandler.getStringInLocale(R.string.onboarding_slide_1_description))
+ title.set(
+ resourceHandler.getStringInLocale(
+ R.string.onboarding_activity_slide_1_title
+ )
+ )
+ description.set(
+ resourceHandler.getStringInLocale(
+ R.string.onboarding_activity_slide_1_description
+ )
+ )
}
ViewPagerSlide.SLIDE_2 -> {
if (orientation == Configuration.ORIENTATION_LANDSCAPE) {
@@ -65,14 +81,25 @@ class OnboardingSlideViewModel(
} else if (orientation == Configuration.ORIENTATION_PORTRAIT) {
slideImage.set(R.drawable.ic_portrait_onboarding_2)
}
- title.set(resourceHandler.getStringInLocale(R.string.onboarding_slide_2_title))
- description.set(resourceHandler.getStringInLocale(R.string.onboarding_slide_2_description))
+ title.set(
+ resourceHandler.getStringInLocale(
+ R.string.onboarding_activity_slide_2_title
+ )
+ )
+ description.set(
+ resourceHandler.getStringInLocale(
+ R.string.onboarding_activity_slide_2_description
+ )
+ )
}
}
}
private fun getOnboardingSlide0Title(): String {
val appName = resourceHandler.getStringInLocale(R.string.app_name)
- return resourceHandler.getStringInLocaleWithWrapping(R.string.onboarding_slide_0_title, appName)
+ return resourceHandler.getStringInLocaleWithWrapping(
+ R.string.onboarding_activity_slide_0_title,
+ appName
+ )
}
}
diff --git a/app/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
index 1551e6c4199..efe15a02638 100644
--- a/app/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/onboarding/OnboardingFragmentPresenter.kt
@@ -131,7 +131,7 @@ class OnboardingFragmentPresenter @Inject constructor(
val completeString: String =
resourceHandler.getStringInLocaleWithWrapping(
- R.string.agree_to_terms,
+ R.string.policy_activity_agree_to_terms_text,
resourceHandler.getStringInLocale(R.string.app_name)
)
binding.slideTermsOfServiceAndPrivacyPolicyLinksTextView.text = htmlParserFactory.create(
diff --git a/app/src/main/java/org/oppia/android/app/onboarding/OnboardingViewModel.kt b/app/src/main/java/org/oppia/android/app/onboarding/OnboardingViewModel.kt
index f7f80e412cb..f4d5bc5aa76 100644
--- a/app/src/main/java/org/oppia/android/app/onboarding/OnboardingViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/onboarding/OnboardingViewModel.kt
@@ -27,7 +27,7 @@ class OnboardingViewModel @Inject constructor(
private fun computeSlideDotsContainerContentDescription(slideNumber: Int): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.onboarding_slide_dots_content_description,
+ R.string.onboarding_activity_slide_dots_content_description,
(slideNumber + 1).toString(),
totalNumberOfSlides.toString()
)
diff --git a/app/src/main/java/org/oppia/android/app/options/OptionsActivity.kt b/app/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
index 50484e5ff1e..adac20e31c2 100644
--- a/app/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
+++ b/app/src/main/java/org/oppia/android/app/options/OptionsActivity.kt
@@ -94,7 +94,7 @@ class OptionsActivity :
selectedFragment,
profileId!!
)
- title = resourceHandler.getStringInLocale(R.string.menu_options)
+ title = resourceHandler.getStringInLocale(R.string.menu_options_text)
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
@@ -146,7 +146,7 @@ class OptionsActivity :
override fun loadReadingTextSizeFragment(textSize: ReadingTextSize) {
selectedFragment = READING_TEXT_SIZE_FRAGMENT
optionActivityPresenter.setExtraOptionTitle(
- resourceHandler.getStringInLocale(R.string.reading_text_size)
+ resourceHandler.getStringInLocale(R.string.option_activity_reading_text_size)
)
optionActivityPresenter.loadReadingTextSizeFragment(textSize)
}
@@ -154,7 +154,7 @@ class OptionsActivity :
override fun loadAppLanguageFragment(appLanguage: OppiaLanguage) {
selectedFragment = APP_LANGUAGE_FRAGMENT
optionActivityPresenter.setExtraOptionTitle(
- resourceHandler.getStringInLocale(R.string.app_language)
+ resourceHandler.getStringInLocale(R.string.option_activity_app_language_text)
)
optionActivityPresenter.loadAppLanguageFragment(appLanguage)
}
@@ -162,7 +162,7 @@ class OptionsActivity :
override fun loadAudioLanguageFragment(audioLanguage: AudioLanguage) {
selectedFragment = AUDIO_LANGUAGE_FRAGMENT
optionActivityPresenter.setExtraOptionTitle(
- resourceHandler.getStringInLocale(R.string.audio_language)
+ resourceHandler.getStringInLocale(R.string.option_activity_audio_language_text)
)
optionActivityPresenter.loadAudioLanguageFragment(audioLanguage)
}
diff --git a/app/src/main/java/org/oppia/android/app/options/OptionsReadingTextSizeViewModel.kt b/app/src/main/java/org/oppia/android/app/options/OptionsReadingTextSizeViewModel.kt
index 626069bec7f..442cfcd62c4 100644
--- a/app/src/main/java/org/oppia/android/app/options/OptionsReadingTextSizeViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/options/OptionsReadingTextSizeViewModel.kt
@@ -16,12 +16,20 @@ class OptionsReadingTextSizeViewModel(
get() {
return when (readingTextSize.get()!!) {
ReadingTextSize.SMALL_TEXT_SIZE ->
- resourceHandler.getStringInLocale(R.string.reading_text_size_small)
+ resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_small
+ )
ReadingTextSize.MEDIUM_TEXT_SIZE ->
- resourceHandler.getStringInLocale(R.string.reading_text_size_medium)
+ resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_medium
+ )
ReadingTextSize.LARGE_TEXT_SIZE ->
- resourceHandler.getStringInLocale(R.string.reading_text_size_large)
- else -> resourceHandler.getStringInLocale(R.string.reading_text_size_extra_large)
+ resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_large
+ )
+ else -> resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_extra_large
+ )
}
}
diff --git a/app/src/main/java/org/oppia/android/app/options/TextSizeItemViewModel.kt b/app/src/main/java/org/oppia/android/app/options/TextSizeItemViewModel.kt
index 1b3fda584af..3f57aa2abde 100644
--- a/app/src/main/java/org/oppia/android/app/options/TextSizeItemViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/options/TextSizeItemViewModel.kt
@@ -27,12 +27,20 @@ class TextSizeItemViewModel(
val textSizeName: String by lazy {
when (readingTextSize) {
ReadingTextSize.SMALL_TEXT_SIZE ->
- resourceHandler.getStringInLocale(R.string.reading_text_size_small)
+ resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_small
+ )
ReadingTextSize.MEDIUM_TEXT_SIZE ->
- resourceHandler.getStringInLocale(R.string.reading_text_size_medium)
+ resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_medium
+ )
ReadingTextSize.LARGE_TEXT_SIZE ->
- resourceHandler.getStringInLocale(R.string.reading_text_size_large)
- else -> resourceHandler.getStringInLocale(R.string.reading_text_size_extra_large)
+ resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_large
+ )
+ else -> resourceHandler.getStringInLocale(
+ R.string.option_activity_reading_text_size_extra_large
+ )
}
}
val textSize: Float by lazy {
diff --git a/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt
index 02bcc3deb32..b0483d66008 100644
--- a/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/player/audio/AudioFragmentPresenter.kt
@@ -135,7 +135,9 @@ class AudioFragmentPresenter @Inject constructor(
private fun startSpotlights() {
val audioLanguageIconSpotlightTarget = SpotlightTarget(
binding.audioLanguageIcon,
- resourceHandler.getStringInLocale(R.string.voiceover_language_icon_spotlight_hint),
+ resourceHandler.getStringInLocale(
+ R.string.audio_fragment_voiceover_language_icon_spotlight_hint
+ ),
SpotlightShape.Circle,
Spotlight.FeatureCase.VOICEOVER_LANGUAGE_ICON
)
@@ -335,10 +337,20 @@ class AudioFragmentPresenter @Inject constructor(
private fun showOfflineDialog() {
AlertDialog.Builder(activity, R.style.OppiaAlertDialogTheme)
- .setTitle(resourceHandler.getStringInLocale(R.string.audio_dialog_offline_title))
- .setMessage(resourceHandler.getStringInLocale(R.string.audio_dialog_offline_message))
+ .setTitle(
+ resourceHandler.getStringInLocale(
+ R.string.audio_fragment_offline_dialog_title
+ )
+ )
+ .setMessage(
+ resourceHandler.getStringInLocale(
+ R.string.audio_fragment_offline_dialog_message
+ )
+ )
.setPositiveButton(
- resourceHandler.getStringInLocale(R.string.audio_dialog_offline_positive)
+ resourceHandler.getStringInLocale(
+ R.string.audio_fragment_offline_dialog_positive_button_text
+ )
) { dialog, _ ->
dialog.dismiss()
}.create().show()
diff --git a/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt b/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
index 07037abd873..7ab82bbb427 100644
--- a/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/audio/AudioViewModel.kt
@@ -147,7 +147,7 @@ class AudioViewModel @Inject constructor(
fun computeAudioUnavailabilityString(languageName: String): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.audio_unavailable_in_selected_language, languageName
+ R.string.audio_fragment_audio_unavailable_text, languageName
)
}
diff --git a/app/src/main/java/org/oppia/android/app/player/audio/CellularAudioDialogFragment.kt b/app/src/main/java/org/oppia/android/app/player/audio/CellularAudioDialogFragment.kt
index 50a0025a83a..549880c87a6 100755
--- a/app/src/main/java/org/oppia/android/app/player/audio/CellularAudioDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/player/audio/CellularAudioDialogFragment.kt
@@ -39,14 +39,14 @@ class CellularAudioDialogFragment : InjectableDialogFragment() {
return AlertDialog
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
- .setTitle(R.string.cellular_data_alert_dialog_title)
+ .setTitle(R.string.cellular_audio_dialog_title)
.setView(view)
- .setMessage(R.string.cellular_data_alert_dialog_description)
- .setPositiveButton(R.string.cellular_data_alert_dialog_okay_button) { _, _ ->
+ .setMessage(R.string.cellular_audio_dialog_description)
+ .setPositiveButton(R.string.cellular_audio_dialog_okay_button_text) { _, _ ->
cellularDataInterface.enableAudioWhileOnCellular(checkBox.isChecked)
dismiss()
}
- .setNegativeButton(R.string.cellular_data_alert_dialog_cancel_button) { _, _ ->
+ .setNegativeButton(R.string.cellular_audio_dialog_cancel_button_text) { _, _ ->
cellularDataInterface.disableAudioWhileOnCellular(checkBox.isChecked)
dismiss()
}
diff --git a/app/src/main/java/org/oppia/android/app/player/audio/LanguageDialogFragment.kt b/app/src/main/java/org/oppia/android/app/player/audio/LanguageDialogFragment.kt
index 275705a0ed9..4f1b0927333 100644
--- a/app/src/main/java/org/oppia/android/app/player/audio/LanguageDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/player/audio/LanguageDialogFragment.kt
@@ -85,17 +85,17 @@ class LanguageDialogFragment : InjectableDialogFragment() {
return AlertDialog
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
- .setTitle(R.string.audio_language_select_dialog_title)
+ .setTitle(R.string.audio_language_dialog_title)
.setSingleChoiceItems(options, selectedIndex) { dialog, which ->
selectedIndex = which
}
- .setPositiveButton(R.string.audio_language_select_dialog_okay_button) { _, _ ->
+ .setPositiveButton(R.string.audio_language_dialog_okay_button_text) { _, _ ->
if (selectedIndex != -1) {
languageInterface.onLanguageSelected(languageCodeArrayList[selectedIndex])
}
dismiss()
}
- .setNegativeButton(R.string.audio_language_select_dialog_cancel_button) { _, _ ->
+ .setNegativeButton(R.string.audio_language_dialog_cancel_button_text) { _, _ ->
dismiss()
}
.create()
diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt
index 3efadb513de..58f49a4c0a7 100644
--- a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationActivityPresenter.kt
@@ -164,7 +164,7 @@ class ExplorationActivityPresenter @Inject constructor(
val audioPlayerSpotlightTarget = SpotlightTarget(
it,
resourceHandler.getStringInLocaleWithWrapping(
- R.string.voiceover_icon_spotlight_hint,
+ R.string.exploration_activity_voiceover_icon_spotlight_hint,
resourceHandler.getStringInLocale(R.string.app_name)
),
SpotlightShape.Circle,
diff --git a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.kt
index 8796b96b672..a77c09b0cdb 100755
--- a/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/player/exploration/ExplorationFragmentPresenter.kt
@@ -95,7 +95,9 @@ class ExplorationFragmentPresenter @Inject constructor(
// This toolbar contains only one image button, which is the back navigation icon.
val backButtonSpotlightTarget = SpotlightTarget(
it,
- resourceHandler.getStringInLocale(R.string.exploration_exit_button_spotlight_hint),
+ resourceHandler.getStringInLocale(
+ R.string.exploration_activity_exit_button_spotlight_hint
+ ),
SpotlightShape.Circle,
Spotlight.FeatureCase.LESSONS_BACK_BUTTON
)
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/DragDropInteractionContentViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/DragDropInteractionContentViewModel.kt
index f0bdcf3ef2f..96c8e986200 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/DragDropInteractionContentViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/DragDropInteractionContentViewModel.kt
@@ -44,28 +44,34 @@ class DragDropInteractionContentViewModel(
fun computeDragDropMoveUpItemContentDescription(): String {
return if (itemIndex != 0) {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.move_item_up_content_description, itemIndex.toString()
+ R.string.state_fragment_drag_drop_interaction_move_item_up_content_description,
+ itemIndex.toString()
)
- } else resourceHandler.getStringInLocale(R.string.up_button_disabled)
+ } else resourceHandler.getStringInLocale(
+ R.string.state_fragment_drag_drop_interaction_up_button_disabled
+ )
}
fun computeDragDropMoveDownItemContentDescription(): String {
return if (itemIndex != listSize - 1) {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.move_item_down_content_description, (itemIndex + 2).toString()
+ R.string.state_fragment_drag_drop_interaction_move_item_down_content_description,
+ (itemIndex + 2).toString()
)
- } else resourceHandler.getStringInLocale(R.string.down_button_disabled)
+ } else resourceHandler.getStringInLocale(
+ R.string.state_fragment_drag_drop_interaction_down_button_disabled
+ )
}
fun computeDragDropGroupItemContentDescription(): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.link_to_item_below, (itemIndex + 2).toString()
+ R.string.state_fragment_drag_drop_interaction_link_to_item_below, (itemIndex + 2).toString()
)
}
fun computeDragDropUnlinkItemContentDescription(): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.unlink_items, (itemIndex + 1).toString()
+ R.string.state_fragment_drag_drop_interaction_unlink_items, (itemIndex + 1).toString()
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/FractionInteractionViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/FractionInteractionViewModel.kt
index 22d42a74744..b1b089f5dd2 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/FractionInteractionViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/FractionInteractionViewModel.kt
@@ -123,8 +123,12 @@ class FractionInteractionViewModel private constructor(
customPlaceholder1.isNotEmpty() -> customPlaceholder1
customPlaceholder2.isNotEmpty() -> customPlaceholder2
!allowNonzeroIntegerPart ->
- resourceHandler.getStringInLocale(R.string.fractions_default_hint_text_no_integer)
- else -> resourceHandler.getStringInLocale(R.string.fractions_default_hint_text)
+ resourceHandler.getStringInLocale(
+ R.string.state_fragment_fraction_input_interaction_no_integer_hint
+ )
+ else -> resourceHandler.getStringInLocale(
+ R.string.state_fragment_fraction_input_interaction_hint
+ )
}
}
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/ImageRegionSelectionInteractionViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/ImageRegionSelectionInteractionViewModel.kt
index 0c4029e940e..f0bc8727896 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/ImageRegionSelectionInteractionViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/ImageRegionSelectionInteractionViewModel.kt
@@ -76,7 +76,7 @@ class ImageRegionSelectionInteractionViewModel private constructor(
clickOnImage = parseClickOnImage(answerTextString)
}.build()
plainAnswer = resourceHandler.getStringInLocaleWithWrapping(
- R.string.image_interaction_answer_text,
+ R.string.state_fragment_image_interaction_answer_text,
answerTextString
)
this.writtenTranslationContext =
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/MathExpressionInteractionsViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/MathExpressionInteractionsViewModel.kt
index 5d0822fae6c..88123b8412b 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/MathExpressionInteractionsViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/MathExpressionInteractionsViewModel.kt
@@ -293,7 +293,7 @@ class MathExpressionInteractionsViewModel private constructor(
/** Defines the view model behaviors corresponding to numeric expressions. */
NUMERIC_EXPRESSION(
ViewType.NUMERIC_EXPRESSION_INPUT_INTERACTION,
- defaultHintTextStringId = R.string.numeric_expression_default_hint_text,
+ defaultHintTextStringId = R.string.state_fragment_numeric_input_interaction_default_hint,
hasPlaceholder = true,
hasCustomVariables = false
) {
@@ -332,7 +332,7 @@ class MathExpressionInteractionsViewModel private constructor(
/** Defines the view model behaviors corresponding to algebraic expressions. */
ALGEBRAIC_EXPRESSION(
ViewType.ALGEBRAIC_EXPRESSION_INPUT_INTERACTION,
- defaultHintTextStringId = R.string.algebraic_expression_default_hint_text,
+ defaultHintTextStringId = R.string.state_fragment_algebraic_input_interaction_default_hint,
hasPlaceholder = false,
hasCustomVariables = true
) {
@@ -370,7 +370,7 @@ class MathExpressionInteractionsViewModel private constructor(
/** Defines the view model behaviors corresponding to math equations. */
MATH_EQUATION(
ViewType.MATH_EQUATION_INPUT_INTERACTION,
- defaultHintTextStringId = R.string.math_equation_default_hint_text,
+ defaultHintTextStringId = R.string.state_fragment_math_equation_default_hint,
hasPlaceholder = false,
hasCustomVariables = true
) {
@@ -418,106 +418,108 @@ class MathExpressionInteractionsViewModel private constructor(
is MathParsingResult.Failure -> when (val error = parseResult.error) {
is DisabledVariablesInUseError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_invalid_variable,
+ R.string.state_fragment_math_expression_invalid_variable_error,
error.variables.joinToString(separator = ", ")
)
}
EquationIsMissingEqualsError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_missing_equals
+ R.string.state_fragment_math_expression_missing_equals_error
)
}
EquationHasTooManyEqualsError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_more_than_one_equals
+ R.string.state_fragment_math_expression_more_than_one_equals_error
)
}
EquationMissingLhsOrRhsError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_hanging_equals
+ R.string.state_fragment_math_expression_hanging_equals_error
)
}
ExponentIsVariableExpressionError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_exponent_has_variable
+ R.string.state_fragment_math_expression_exponent_has_variable_error
)
}
ExponentTooLargeError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_exponent_too_large
+ R.string.state_fragment_math_expression_exponent_too_large_error
)
}
FunctionNameIncompleteError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_incomplete_function_name
+ R.string.state_fragment_math_expression_incomplete_function_name_error
)
}
GenericError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_generic
+ R.string.state_fragment_math_expression_generic_error
)
}
HangingSquareRootError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_hanging_square_root
+ R.string.state_fragment_math_expression_hanging_square_root_error
)
}
is InvalidFunctionInUseError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_unsupported_function, error.functionName
+ R.string.state_fragment_math_expression_unsupported_function_error,
+ error.functionName
)
}
is MultipleRedundantParenthesesError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_multiple_redundant_parentheses, error.rawExpression
+ R.string.state_fragment_math_expression_multiple_redundant_parentheses_error,
+ error.rawExpression
)
}
NestedExponentsError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_nested_exponent
+ R.string.state_fragment_math_expression_nested_exponent_error
)
}
is NoVariableOrNumberAfterBinaryOperatorError -> when (error.operator) {
UnaryOperator.ADD -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_rhs_for_addition_operator,
+ R.string.state_fragment_math_expression_missing_rhs_for_addition_error,
error.operatorSymbol
)
}
UnaryOperator.SUBTRACT -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_rhs_for_subtraction_operator,
+ R.string.state_fragment_math_expression_missing_rhs_for_subtraction_error,
error.operatorSymbol
)
}
UnaryOperator.MULTIPLY -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_rhs_for_multiplication_operator,
+ R.string.state_fragment_math_expression_missing_rhs_for_multiplication_error,
error.operatorSymbol
)
}
UnaryOperator.DIVIDE -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_rhs_for_division_operator,
+ R.string.state_fragment_math_expression_missing_rhs_for_division_error,
error.operatorSymbol
)
}
UnaryOperator.EXPONENTIATE -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_rhs_for_exponentiation_operator,
+ R.string.state_fragment_math_expression_missing_rhs_for_exponentiation_error,
error.operatorSymbol
)
}
UnaryOperator.OPERATOR_UNSPECIFIED, UnaryOperator.UNRECOGNIZED -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_generic
+ R.string.state_fragment_math_expression_generic_error
)
}
}
is NoVariableOrNumberBeforeBinaryOperatorError -> when (error.operator) {
UnaryOperator.ADD -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_lhs_for_addition_operator,
+ R.string.state_fragment_math_expression_missing_lhs_for_addition_error,
error.operatorSymbol
)
}
@@ -525,81 +527,83 @@ class MathExpressionInteractionsViewModel private constructor(
UnaryOperator.SUBTRACT -> error("This case should never happen.")
UnaryOperator.MULTIPLY -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_lhs_for_multiplication_operator,
+ R.string.state_fragment_math_expression_missing_lhs_for_multiplication_error,
error.operatorSymbol
)
}
UnaryOperator.DIVIDE -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_lhs_for_division_operator,
+ R.string.state_fragment_math_expression_missing_lhs_for_division_error,
error.operatorSymbol
)
}
UnaryOperator.EXPONENTIATE -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_missing_lhs_for_exponentiation_operator,
+ R.string.state_fragment_math_expression_missing_lhs_for_exponentiation_error,
error.operatorSymbol
)
}
UnaryOperator.OPERATOR_UNSPECIFIED, UnaryOperator.UNRECOGNIZED -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_generic
+ R.string.state_fragment_math_expression_generic_error
)
}
}
is NumberAfterVariableError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_number_after_var_term,
+ R.string.state_fragment_math_expression_number_after_var_error,
error.variable,
error.number.toPlainText()
)
}
is RedundantParenthesesForIndividualTermsError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_redundant_parentheses_individual_term,
+ R.string.state_fragment_math_expression_individual_redundant_parentheses_error,
error.rawExpression
)
}
is SingleRedundantParenthesesError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_single_redundant_parentheses, error.rawExpression
+ R.string.state_fragment_math_expression_single_redundant_parentheses_error,
+ error.rawExpression
)
}
SpacesBetweenNumbersError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_spaces_in_numerical_input
+ R.string.state_fragment_math_expression_space_error
)
}
is SubsequentBinaryOperatorsError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_consecutive_binary_operators,
+ R.string.state_fragment_math_expression_consecutive_binary_operators_error,
error.operator1,
error.operator2
)
}
is SubsequentUnaryOperatorsError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_consecutive_unary_operators
+ R.string.state_fragment_math_expression_consecutive_unary_operators_error
)
}
TermDividedByZeroError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_term_divided_by_zero
+ R.string.state_fragment_math_expression_divided_by_zero_error
)
}
UnbalancedParenthesesError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_unbalanced_parentheses
+ R.string.state_fragment_math_expression_unbalanced_parentheses_error
)
}
is UnnecessarySymbolsError -> {
appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.math_expression_error_unnecessary_symbols, error.invalidSymbol
+ R.string.state_fragment_math_expression_unnecessary_symbols_error,
+ error.invalidSymbol
)
}
VariableInNumericExpressionError -> {
appLanguageResourceHandler.getStringInLocale(
- R.string.math_expression_error_variable_in_numeric_expression
+ R.string.state_fragment_math_expression_variable_in_numeric_error
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/PreviousResponsesHeaderViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/PreviousResponsesHeaderViewModel.kt
index 2fbdb5d1d5e..0bf4707c196 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/PreviousResponsesHeaderViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/PreviousResponsesHeaderViewModel.kt
@@ -20,7 +20,7 @@ class PreviousResponsesHeaderViewModel(
/** Returns the user-readable header text for previous responses. */
fun computePreviousResponsesHeaderText(): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.previous_responses_header, previousAnswerCount.toString()
+ R.string.state_fragment_previous_responses_header, previousAnswerCount.toString()
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/SubmittedAnswerViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/SubmittedAnswerViewModel.kt
index 9e90beb624e..609acecdb59 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/SubmittedAnswerViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/SubmittedAnswerViewModel.kt
@@ -54,11 +54,11 @@ class SubmittedAnswerViewModel(
val answer = if (accessibleAnswer.isNullOrBlank()) submittedAnswer else accessibleAnswer
return if (isCorrectAnswer) {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.correct_submitted_answer_with_append, answer
+ R.string.state_fragment_correct_submitted_answer_with_append, answer
)
} else {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.incorrect_submitted_answer_with_append, answer
+ R.string.state_fragment_incorrect_submitted_answer_with_append, answer
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/TextInputViewModel.kt b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/TextInputViewModel.kt
index b3bdbba2ac0..09d93b66beb 100644
--- a/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/TextInputViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/player/state/itemviewmodel/TextInputViewModel.kt
@@ -90,7 +90,9 @@ class TextInputViewModel private constructor(
return when {
placeholder1.isNotEmpty() -> placeholder1
placeholder2.isNotEmpty() -> placeholder2
- else -> resourceHandler.getStringInLocale(R.string.text_input_default_hint_text)
+ else -> resourceHandler.getStringInLocale(
+ R.string.state_fragment_text_input_default_hint_text
+ )
}
}
diff --git a/app/src/main/java/org/oppia/android/app/player/stopplaying/ProgressDatabaseFullDialogFragment.kt b/app/src/main/java/org/oppia/android/app/player/stopplaying/ProgressDatabaseFullDialogFragment.kt
index 02e34e987eb..588ba2217b7 100644
--- a/app/src/main/java/org/oppia/android/app/player/stopplaying/ProgressDatabaseFullDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/player/stopplaying/ProgressDatabaseFullDialogFragment.kt
@@ -62,26 +62,26 @@ class ProgressDatabaseFullDialogFragment : InjectableDialogFragment() {
return AlertDialog
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
- .setTitle(R.string.progress_database_full_dialog_title)
+ .setTitle(R.string.stop_exploration_dialog_progress_full_title)
.setMessage(
resourceHandler.getStringInLocaleWithWrapping(
- R.string.progress_database_full_dialog_description, oldestSavedExplorationTitle
+ R.string.stop_exploration_dialog_progress_full_description, oldestSavedExplorationTitle
)
)
- .setPositiveButton(R.string.progress_database_full_dialog_continue_button) { _, _ ->
+ .setPositiveButton(R.string.stop_exploration_dialog_progress_full_continue_button) { _, _ ->
stopStatePlayingSessionListenerWithSavedProgressListener
.deleteOldestProgressAndStopSession()
dismiss()
}
.setNeutralButton(
- R.string.progress_database_full_dialog_leave_without_saving_progress_button
+ R.string.stop_exploration_dialog_progress_full_without_saving_button
) { _, _ ->
stopStatePlayingSessionListenerWithSavedProgressListener
.deleteCurrentProgressAndStopSession(isCompletion = false)
dismiss()
}
.setNegativeButton(
- R.string.progress_database_full_dialog_back_to_lesson_button
+ R.string.stop_exploration_dialog_progress_full_back_to_lesson_button
) { _, _ ->
dismiss()
}
diff --git a/app/src/main/java/org/oppia/android/app/player/stopplaying/StopExplorationDialogFragment.kt b/app/src/main/java/org/oppia/android/app/player/stopplaying/StopExplorationDialogFragment.kt
index 61e98b2cf59..3a5ec84b328 100644
--- a/app/src/main/java/org/oppia/android/app/player/stopplaying/StopExplorationDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/player/stopplaying/StopExplorationDialogFragment.kt
@@ -39,11 +39,11 @@ class StopExplorationDialogFragment : InjectableDialogFragment() {
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
.setTitle(R.string.stop_exploration_dialog_title)
.setMessage(R.string.stop_exploration_dialog_description)
- .setPositiveButton(R.string.stop_exploration_dialog_leave_button) { _, _ ->
+ .setPositiveButton(R.string.stop_exploration_dialog_leave_button_text) { _, _ ->
stopStatePlayingSessionListener.stopSession()
dismiss()
}
- .setNegativeButton(R.string.stop_exploration_dialog_cancel_button) { _, _ ->
+ .setNegativeButton(R.string.stop_exploration_dialog_cancel_button_text) { _, _ ->
dismiss()
}
.create()
diff --git a/app/src/main/java/org/oppia/android/app/player/stopplaying/UnsavedExplorationDialogFragment.kt b/app/src/main/java/org/oppia/android/app/player/stopplaying/UnsavedExplorationDialogFragment.kt
index 3e0c190c47e..0c7d44d73bb 100644
--- a/app/src/main/java/org/oppia/android/app/player/stopplaying/UnsavedExplorationDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/player/stopplaying/UnsavedExplorationDialogFragment.kt
@@ -39,12 +39,12 @@ class UnsavedExplorationDialogFragment : InjectableDialogFragment() {
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
.setTitle(R.string.unsaved_exploration_dialog_title)
.setMessage(R.string.unsaved_exploration_dialog_description)
- .setPositiveButton(R.string.unsaved_exploration_dialog_leave_button) { _, _ ->
+ .setPositiveButton(R.string.unsaved_exploration_dialog_leave_button_text) { _, _ ->
stopStatePlayingSessionWithSavedProgressListener
.deleteCurrentProgressAndStopSession(isCompletion = false)
dismiss()
}
- .setNegativeButton(R.string.unsaved_exploration_dialog_cancel_button) { _, _ ->
+ .setNegativeButton(R.string.unsaved_exploration_dialog_cancel_button_text) { _, _ ->
dismiss()
}
.create()
diff --git a/app/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt
index 917fe24f75a..681355aed90 100644
--- a/app/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/policies/PoliciesActivityPresenter.kt
@@ -44,9 +44,9 @@ class PoliciesActivityPresenter @Inject constructor(
toolbar.title = when (policyPage) {
PolicyPage.PRIVACY_POLICY ->
- resourceHandler.getStringInLocale(R.string.privacy_policy_title)
+ resourceHandler.getStringInLocale(R.string.policy_activity_privacy_policy_title)
PolicyPage.TERMS_OF_SERVICE ->
- resourceHandler.getStringInLocale(R.string.terms_of_service_title)
+ resourceHandler.getStringInLocale(R.string.policy_activity_terms_of_service_title)
PolicyPage.POLICY_PAGE_UNSPECIFIED,
PolicyPage.UNRECOGNIZED -> ""
}
diff --git a/app/src/main/java/org/oppia/android/app/policies/PoliciesFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/policies/PoliciesFragmentPresenter.kt
index 4fad16c9462..639008bf0b9 100644
--- a/app/src/main/java/org/oppia/android/app/policies/PoliciesFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/policies/PoliciesFragmentPresenter.kt
@@ -48,11 +48,11 @@ class PoliciesFragmentPresenter @Inject constructor(
if (policyPage == PolicyPage.PRIVACY_POLICY) {
policyDescription =
resourceHandler.getStringInLocale(R.string.privacy_policy_content)
- policyWebLink = resourceHandler.getStringInLocale(R.string.privacy_policy_web_link)
+ policyWebLink = resourceHandler.getStringInLocale(R.string.policy_activity_privacy_web_link)
} else if (policyPage == PolicyPage.TERMS_OF_SERVICE) {
policyDescription =
resourceHandler.getStringInLocale(R.string.terms_of_service_content)
- policyWebLink = resourceHandler.getStringInLocale(R.string.terms_of_service_web_link)
+ policyWebLink = resourceHandler.getStringInLocale(R.string.policy_activity_terms_web_link)
}
binding.policyDescriptionTextView.text = htmlParserFactory.create(
diff --git a/app/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt
index 75c8cc2e014..316ecf0b2cb 100644
--- a/app/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/AddProfileActivityPresenter.kt
@@ -79,10 +79,14 @@ class AddProfileActivityPresenter @Inject constructor(
}
val toolbar = activity.findViewById(R.id.add_profile_activity_toolbar) as Toolbar
activity.setSupportActionBar(toolbar)
- activity.supportActionBar?.title = resourceHandler.getStringInLocale(R.string.add_profile_title)
+ activity.supportActionBar?.title = resourceHandler.getStringInLocale(
+ R.string.add_profile_activity_title
+ )
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
activity.supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp)
- activity.supportActionBar?.setHomeActionContentDescription(R.string.admin_auth_close)
+ activity.supportActionBar?.setHomeActionContentDescription(
+ R.string.admin_auth_activity_tool_bar_content_desc
+ )
uploadImageView = binding.addProfileActivityUserImageView
Glide.with(activity)
@@ -250,7 +254,7 @@ class AddProfileActivityPresenter @Inject constructor(
if (name.isEmpty()) {
profileViewModel.nameErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_name_empty
+ R.string.add_profile_activity_name_empty_error_text
)
)
failed = true
@@ -258,7 +262,7 @@ class AddProfileActivityPresenter @Inject constructor(
if (pin.isNotEmpty() && pin.length < 3) {
profileViewModel.pinErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_pin_length
+ R.string.add_profile_activity_pin_length_error_text
)
)
failed = true
@@ -266,7 +270,7 @@ class AddProfileActivityPresenter @Inject constructor(
if (pin != confirmPin) {
profileViewModel.confirmPinErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_pin_confirm_wrong
+ R.string.add_profile_activity_wrong_confirm_pin_error_text
)
)
failed = true
@@ -289,13 +293,13 @@ class AddProfileActivityPresenter @Inject constructor(
is ProfileManagementController.ProfileNameNotUniqueException ->
profileViewModel.nameErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_name_not_unique
+ R.string.add_profile_activity_name_not_unique_error_text
)
)
is ProfileManagementController.ProfileNameOnlyLettersException ->
profileViewModel.nameErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_name_only_letters
+ R.string.add_profile_activity_name_only_letters_error_text
)
)
}
@@ -308,8 +312,8 @@ class AddProfileActivityPresenter @Inject constructor(
private fun showInfoDialog() {
profileViewModel.showInfoAlertPopup.set(true)
alertDialog = AlertDialog.Builder(activity as Context, R.style.OppiaAlertDialogTheme)
- .setMessage(R.string.add_profile_pin_info)
- .setPositiveButton(R.string.add_profile_close) { dialog, _ ->
+ .setMessage(R.string.add_profile_activity_pin_info_dialog_text)
+ .setPositiveButton(R.string.add_profile_activity_close_dialog_text) { dialog, _ ->
profileViewModel.showInfoAlertPopup.set(false)
dialog.dismiss()
}
diff --git a/app/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt
index 2651603478d..9c00ce5bda9 100644
--- a/app/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/AdminAuthActivityPresenter.kt
@@ -96,7 +96,7 @@ class AdminAuthActivityPresenter @Inject constructor(
}
} else if (inputPin.length == adminPin.length) {
authViewModel.errorMessage.set(
- resourceHandler.getStringInLocale(R.string.admin_auth_incorrect)
+ resourceHandler.getStringInLocale(R.string.admin_auth_activity_incorrect_pin_label)
)
}
}
@@ -108,21 +108,21 @@ class AdminAuthActivityPresenter @Inject constructor(
activity.title =
resourceHandler.getStringInLocale(R.string.admin_auth_activity_access_controls_title)
binding?.adminAuthToolbar?.title =
- resourceHandler.getStringInLocale(R.string.administrator_controls)
+ resourceHandler.getStringInLocale(R.string.administrator_controls_activity_title)
binding?.adminAuthHeadingTextview?.text =
- resourceHandler.getStringInLocale(R.string.admin_auth_heading)
+ resourceHandler.getStringInLocale(R.string.admin_auth_activity_heading_text)
binding?.adminAuthSubText?.text =
- resourceHandler.getStringInLocale(R.string.admin_auth_admin_controls_sub)
+ resourceHandler.getStringInLocale(R.string.admin_auth_activity_controls_subheading_text)
}
AdminAuthEnum.PROFILE_ADD_PROFILE.value -> {
activity.title =
resourceHandler.getStringInLocale(R.string.admin_auth_activity_add_profiles_title)
binding?.adminAuthToolbar?.title =
- resourceHandler.getStringInLocale(R.string.add_profile_title)
+ resourceHandler.getStringInLocale(R.string.add_profile_activity_title)
binding?.adminAuthHeadingTextview?.text =
- resourceHandler.getStringInLocale(R.string.admin_auth_heading)
+ resourceHandler.getStringInLocale(R.string.admin_auth_activity_heading_text)
binding?.adminAuthSubText?.text =
- resourceHandler.getStringInLocale(R.string.admin_auth_sub)
+ resourceHandler.getStringInLocale(R.string.admin_auth_activity_subheading_text)
}
}
}
diff --git a/app/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt
index 5ab5624b99f..1eca7c634e5 100644
--- a/app/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/AdminPinActivityPresenter.kt
@@ -45,7 +45,9 @@ class AdminPinActivityPresenter @Inject constructor(
activity.setSupportActionBar(binding.adminPinToolbar)
activity.supportActionBar?.setDisplayHomeAsUpEnabled(true)
activity.supportActionBar?.setHomeAsUpIndicator(R.drawable.ic_close_white_24dp)
- activity.supportActionBar?.setHomeActionContentDescription(R.string.admin_auth_close)
+ activity.supportActionBar?.setHomeActionContentDescription(
+ R.string.admin_auth_activity_tool_bar_content_desc
+ )
binding.apply {
lifecycleOwner = activity
@@ -95,7 +97,7 @@ class AdminPinActivityPresenter @Inject constructor(
if (inputPin.length < 5) {
adminViewModel.pinErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.admin_pin_error_pin_length
+ R.string.admin_pin_activity_pin_length_error
)
)
failed = true
@@ -103,7 +105,7 @@ class AdminPinActivityPresenter @Inject constructor(
if (inputPin != confirmPin) {
adminViewModel.confirmPinErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.admin_pin_error_pin_confirm_wrong
+ R.string.admin_pin_activity_wrong_pin_text
)
)
failed = true
diff --git a/app/src/main/java/org/oppia/android/app/profile/AdminSettingsDialogFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/AdminSettingsDialogFragmentPresenter.kt
index c0faded0563..1072e2ccecb 100644
--- a/app/src/main/java/org/oppia/android/app/profile/AdminSettingsDialogFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/AdminSettingsDialogFragmentPresenter.kt
@@ -58,11 +58,11 @@ class AdminSettingsDialogFragmentPresenter @Inject constructor(
}
val dialog = AlertDialog.Builder(activity, R.style.OppiaAlertDialogTheme)
- .setTitle(R.string.admin_settings_heading)
+ .setTitle(R.string.admin_settings_dialog_heading)
.setView(binding.root)
- .setMessage(R.string.admin_settings_sub)
- .setPositiveButton(R.string.admin_settings_submit, null)
- .setNegativeButton(R.string.admin_settings_cancel) { dialog, _ ->
+ .setMessage(R.string.admin_settings_dialog_message_text)
+ .setPositiveButton(R.string.admin_settings_dialog_submit_button_text, null)
+ .setNegativeButton(R.string.admin_settings_dialog_cancel_button_text) { dialog, _ ->
dialog.dismiss()
}
.create()
@@ -82,7 +82,7 @@ class AdminSettingsDialogFragmentPresenter @Inject constructor(
if (binding.adminSettingsInputPinEditText.text?.isEmpty()!!) {
adminViewModel.errorMessage.set(
resourceHandler.getStringInLocale(
- R.string.admin_auth_null
+ R.string.admin_auth_activity_null_pin_input_label
)
)
return@setOnClickListener
@@ -92,7 +92,7 @@ class AdminSettingsDialogFragmentPresenter @Inject constructor(
} else {
adminViewModel.errorMessage.set(
resourceHandler.getStringInLocale(
- R.string.admin_settings_incorrect
+ R.string.admin_settings_dialog_incorrect_pin_error_text
)
)
}
diff --git a/app/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt
index 57c999e2586..4f4593f8241 100644
--- a/app/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/PinPasswordActivityPresenter.kt
@@ -32,7 +32,8 @@ class PinPasswordActivityPresenter @Inject constructor(
private val viewModelProvider: ViewModelProvider,
private val resourceHandler: AppLanguageResourceHandler
) {
- @Inject lateinit var accessibilityService: AccessibilityService
+ @Inject
+ lateinit var accessibilityService: AccessibilityService
private val pinViewModel by lazy {
getPinPasswordViewModel()
}
@@ -103,7 +104,7 @@ class PinPasswordActivityPresenter @Inject constructor(
)
} else {
pinViewModel.errorMessage.set(
- resourceHandler.getStringInLocale(R.string.pin_password_incorrect_pin)
+ resourceHandler.getStringInLocale(R.string.pin_password_activity_incorrect_pin_error)
)
binding.pinPasswordInputPinEditText.startAnimation(
AnimationUtils.loadAnimation(
@@ -177,14 +178,16 @@ class PinPasswordActivityPresenter @Inject constructor(
pinViewModel.showAdminPinForgotPasswordPopUp.set(true)
val resetDataButtonText =
resourceHandler.getStringInLocaleWithWrapping(
- R.string.admin_forgot_pin_reset_app_data_button_text, appName
+ R.string.pin_password_activity_reset_app_data_button_text, appName
)
alertDialog = AlertDialog.Builder(activity, R.style.OppiaAlertDialogTheme)
- .setTitle(R.string.pin_password_forgot_title)
+ .setTitle(R.string.pin_password_activity_dialog_forgot_title)
.setMessage(
- resourceHandler.getStringInLocaleWithWrapping(R.string.admin_forgot_pin_message, appName)
+ resourceHandler.getStringInLocaleWithWrapping(
+ R.string.pin_password_activity_dialog_forgot_message, appName
+ )
)
- .setNegativeButton(R.string.admin_settings_cancel) { dialog, _ ->
+ .setNegativeButton(R.string.admin_settings_dialog_cancel_button_text) { dialog, _ ->
pinViewModel.showAdminPinForgotPasswordPopUp.set(false)
dialog.dismiss()
}
@@ -202,19 +205,23 @@ class PinPasswordActivityPresenter @Inject constructor(
alertDialog = AlertDialog.Builder(activity, R.style.OppiaAlertDialogTheme)
.setTitle(
resourceHandler.getStringInLocaleWithWrapping(
- R.string.admin_confirm_app_wipe_title, appName
+ R.string.pin_password_activity_reset_dialog_title, appName
)
)
.setMessage(
resourceHandler.getStringInLocaleWithWrapping(
- R.string.admin_confirm_app_wipe_message, appName
+ R.string.pin_password_activity_reset_dialog_message, appName
)
)
- .setNegativeButton(R.string.admin_confirm_app_wipe_negative_button_text) { dialog, _ ->
+ .setNegativeButton(
+ R.string.pin_password_activity_reset_dialog_negative_button_text
+ ) { dialog, _ ->
pinViewModel.showAdminPinForgotPasswordPopUp.set(false)
dialog.dismiss()
}
- .setPositiveButton(R.string.admin_confirm_app_wipe_positive_button_text) { dialog, _ ->
+ .setPositiveButton(
+ R.string.pin_password_activity_reset_dialog_postive_button_text
+ ) { dialog, _ ->
profileManagementController.deleteAllProfiles().toLiveData().observe(
activity,
{
@@ -244,8 +251,8 @@ class PinPasswordActivityPresenter @Inject constructor(
private fun showSuccessDialog() {
AlertDialog.Builder(activity, R.style.OppiaAlertDialogTheme)
- .setMessage(R.string.pin_password_success)
- .setPositiveButton(R.string.pin_password_close) { dialog, _ ->
+ .setMessage(R.string.pin_password_activity_success_text)
+ .setPositiveButton(R.string.pin_password_activity_close_text) { dialog, _ ->
dialog.dismiss()
}.create().show()
}
diff --git a/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt b/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt
index a448f9d67e8..3921b20a33b 100644
--- a/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/PinPasswordViewModel.kt
@@ -39,7 +39,9 @@ class PinPasswordViewModel @Inject constructor(
val helloText: LiveData by lazy {
Transformations.map(profile) { profile ->
- resourceHandler.getStringInLocaleWithWrapping(R.string.pin_password_hello, profile.name)
+ resourceHandler.getStringInLocaleWithWrapping(
+ R.string.pin_password_activity_hello_text, profile.name
+ )
}
}
diff --git a/app/src/main/java/org/oppia/android/app/profile/ResetPinDialogFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/profile/ResetPinDialogFragmentPresenter.kt
index bf81773b519..875df3c3bc2 100644
--- a/app/src/main/java/org/oppia/android/app/profile/ResetPinDialogFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/ResetPinDialogFragmentPresenter.kt
@@ -66,15 +66,15 @@ class ResetPinDialogFragmentPresenter @Inject constructor(
}
val dialog = AlertDialog.Builder(activity, R.style.OppiaAlertDialogTheme)
- .setTitle(R.string.reset_pin_enter)
+ .setTitle(R.string.pin_password_activity_reset_pin_dialog_title)
.setView(binding.root)
.setMessage(
resourceHandler.getStringInLocaleWithWrapping(
- R.string.reset_pin_enter_dialog_message, name
+ R.string.pin_password_activity_reset_pin_dialog_message, name
)
)
- .setPositiveButton(R.string.admin_settings_submit, null)
- .setNegativeButton(R.string.admin_settings_cancel) { dialog, _ ->
+ .setPositiveButton(R.string.admin_settings_dialog_submit_button_text, null)
+ .setNegativeButton(R.string.admin_settings_dialog_cancel_button_text) { dialog, _ ->
dialog.dismiss()
}
.create()
@@ -108,7 +108,7 @@ class ResetPinDialogFragmentPresenter @Inject constructor(
} else {
resetViewModel.errorMessage.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_pin_length
+ R.string.add_profile_activity_pin_length_error_text
)
)
}
diff --git a/app/src/main/java/org/oppia/android/app/profile/ResetPinViewModel.kt b/app/src/main/java/org/oppia/android/app/profile/ResetPinViewModel.kt
index 234a30a9f3c..b59a63abc92 100644
--- a/app/src/main/java/org/oppia/android/app/profile/ResetPinViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/profile/ResetPinViewModel.kt
@@ -25,7 +25,7 @@ class ResetPinViewModel @Inject constructor(
private fun computeResetPinInputPinHint(name: String): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.admin_settings_enter_user_new_pin, name
+ R.string.admin_settings_dialog_new_pin_text, name
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureEditDialogFragment.kt b/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureEditDialogFragment.kt
index f17a841929d..3b9331e94b0 100644
--- a/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureEditDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/profileprogress/ProfilePictureEditDialogFragment.kt
@@ -54,9 +54,9 @@ class ProfilePictureEditDialogFragment : InjectableDialogFragment() {
}
return AlertDialog
.Builder(ContextThemeWrapper(activity as Context, R.style.OppiaDialogFragmentTheme))
- .setTitle(R.string.profile_progress_edit_dialog_title)
+ .setTitle(R.string.profile_picture_edit_dialog_title)
.setView(view)
- .setNegativeButton(R.string.profile_picture_edit_alert_dialog_cancel_button) { _, _ ->
+ .setNegativeButton(R.string.profile_picture_edit_dialog_cancel_button_text) { _, _ ->
dismiss()
}
.create()
diff --git a/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.kt b/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.kt
index 562e38f3d9f..dcb48a74ebc 100644
--- a/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/profileprogress/ProfileProgressActivityPresenter.kt
@@ -36,7 +36,7 @@ class ProfileProgressActivityPresenter @Inject constructor(
R.id.profile_progress_activity_toolbar
) as Toolbar
activity.setSupportActionBar(toolbar)
- (activity.supportActionBar ?: return).setTitle(R.string.profile)
+ (activity.supportActionBar ?: return).setTitle(R.string.profile_progress_activity_profile_title)
(activity.supportActionBar ?: return).setDisplayShowHomeEnabled(true)
(activity.supportActionBar ?: return).setDisplayHomeAsUpEnabled(true)
toolbar.setNavigationOnClickListener {
diff --git a/app/src/main/java/org/oppia/android/app/profileprogress/RecentlyPlayedStorySummaryViewModel.kt b/app/src/main/java/org/oppia/android/app/profileprogress/RecentlyPlayedStorySummaryViewModel.kt
index fabe3eb83dc..940ba45f21a 100644
--- a/app/src/main/java/org/oppia/android/app/profileprogress/RecentlyPlayedStorySummaryViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/profileprogress/RecentlyPlayedStorySummaryViewModel.kt
@@ -40,7 +40,7 @@ class RecentlyPlayedStorySummaryViewModel(
fun computeLessonThumbnailContentDescription(): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.lesson_thumbnail_content_description, nextChapterTitle
+ R.string.home_activity_lesson_thumbnail_description, nextChapterTitle
)
}
diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
index 27b1914a650..23917136ef0 100644
--- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
+++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileEditDeletionDialogFragment.kt
@@ -48,12 +48,12 @@ class ProfileEditDeletionDialogFragment : InjectableDialogFragment() {
parentFragment as ProfileEditFragment
val alertDialog = AlertDialog.Builder(activity as Context, R.style.OppiaAlertDialogTheme)
- .setTitle(R.string.profile_edit_delete_dialog_title)
- .setMessage(R.string.profile_edit_delete_dialog_message)
- .setNegativeButton(R.string.profile_edit_delete_dialog_negative) { dialog, _ ->
+ .setTitle(R.string.profile_edit_activity_dialog_title)
+ .setMessage(R.string.profile_edit_activity_dialog_message)
+ .setNegativeButton(R.string.profile_edit_activity_dialog_negative_button) { dialog, _ ->
dialog.dismiss()
}
- .setPositiveButton(R.string.profile_edit_delete_dialog_positive) { dialog, _ ->
+ .setPositiveButton(R.string.profile_edit_activity_dialog_positive_button) { dialog, _ ->
profileEditDialogInterface.deleteProfileByInternalProfileId(internalProfileId)
}
.create()
diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentPresenter.kt
index 6350c2e4581..4ec0d2e7116 100644
--- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileRenameFragmentPresenter.kt
@@ -57,7 +57,7 @@ class ProfileRenameFragmentPresenter @Inject constructor(
.nameErrorMsg
.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_name_empty
+ R.string.add_profile_activity_name_empty_error_text
)
)
return@setOnClickListener
@@ -110,13 +110,13 @@ class ProfileRenameFragmentPresenter @Inject constructor(
is ProfileManagementController.ProfileNameNotUniqueException ->
renameViewModel.nameErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_name_not_unique
+ R.string.add_profile_activity_name_not_unique_error_text
)
)
is ProfileManagementController.ProfileNameOnlyLettersException ->
renameViewModel.nameErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_name_only_letters
+ R.string.add_profile_activity_name_only_letters_error_text
)
)
}
diff --git a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentPresenter.kt
index b4afe1d73e1..d2286eadd1a 100644
--- a/app/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/settings/profile/ProfileResetPinFragmentPresenter.kt
@@ -103,7 +103,7 @@ class ProfileResetPinFragmentPresenter @Inject constructor(
if (pin.length < 5) {
viewModel.pinErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.profile_reset_pin_error_admin_pin_length
+ R.string.profile_reset_pin_fragment_error_admin_pin_length
)
)
failed = true
@@ -112,7 +112,7 @@ class ProfileResetPinFragmentPresenter @Inject constructor(
if (pin.length < 3) {
viewModel.pinErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.profile_reset_pin_error_user_pin_length
+ R.string.profile_reset_pin_fragment_error_user_pin_length
)
)
failed = true
@@ -121,7 +121,7 @@ class ProfileResetPinFragmentPresenter @Inject constructor(
if (pin != confirmPin) {
viewModel.confirmErrorMsg.set(
resourceHandler.getStringInLocale(
- R.string.add_profile_error_pin_confirm_wrong
+ R.string.add_profile_activity_wrong_confirm_pin_error_text
)
)
failed = true
diff --git a/app/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.kt
index 2433999b826..86c2ddc76a6 100644
--- a/app/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/story/StoryFragmentPresenter.kt
@@ -183,7 +183,7 @@ class StoryFragmentPresenter @Inject constructor(
== ChapterPlayState.NOT_PLAYABLE_MISSING_PREREQUISITES
) {
val missingPrerequisiteSummary = resourceHandler.getStringInLocaleWithWrapping(
- R.string.chapter_prerequisite_title_label,
+ R.string.topic_fragment_lessons_chapter_prerequisite_label,
storyItemViewModel.index.toString(),
storyItemViewModel.missingPrerequisiteChapterTitle
)
diff --git a/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt b/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt
index 746af71c90b..8971a1ea1ac 100644
--- a/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/story/storyitemviewmodel/StoryChapterSummaryViewModel.kt
@@ -120,7 +120,7 @@ class StoryChapterSummaryViewModel(
chapterSummary.title, ephemeralChapterSummary.writtenTranslationContext
)
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.chapter_name, (index + 1).toString(), title
+ R.string.topic_fragment_lessons_chapter_play_name_text, (index + 1).toString(), title
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragmentPresenter.kt
index 8399bb9a0e5..01b5a4d9721 100644
--- a/app/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/survey/SurveyOutroDialogFragmentPresenter.kt
@@ -38,7 +38,7 @@ class SurveyOutroDialogFragmentPresenter @Inject constructor(
val appName = resourceHandler.getStringInLocale(R.string.app_name)
binding.surveyOnboardingText.text = resourceHandler.getStringInLocaleWithWrapping(
- R.string.survey_thank_you_message_text, appName
+ R.string.survey_activity_outer_dialog_thank_you_message, appName
)
binding.finishSurveyButton.setOnClickListener {
diff --git a/app/src/main/java/org/oppia/android/app/survey/SurveyViewModel.kt b/app/src/main/java/org/oppia/android/app/survey/SurveyViewModel.kt
index 0979177affe..58e398774da 100644
--- a/app/src/main/java/org/oppia/android/app/survey/SurveyViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/survey/SurveyViewModel.kt
@@ -68,22 +68,22 @@ class SurveyViewModel @Inject constructor(
val appName = resourceHandler.getStringInLocale(R.string.app_name)
return when (questionName) {
SurveyQuestionName.USER_TYPE -> resourceHandler.getStringInLocale(
- R.string.user_type_question
+ R.string.survey_fragment_user_type_question
)
SurveyQuestionName.MARKET_FIT -> resourceHandler.getStringInLocaleWithWrapping(
- R.string.market_fit_question, appName
+ R.string.survey_fragment_market_fit_question, appName
)
SurveyQuestionName.NPS -> resourceHandler.getStringInLocaleWithWrapping(
- R.string.nps_score_question, appName
+ R.string.survey_fragment_nps_score_question, appName
)
SurveyQuestionName.PROMOTER_FEEDBACK -> resourceHandler.getStringInLocaleWithWrapping(
- R.string.nps_promoter_feedback_question, appName
+ R.string.survey_fragment_nps_promoter_feedback_question, appName
)
SurveyQuestionName.PASSIVE_FEEDBACK -> resourceHandler.getStringInLocaleWithWrapping(
- R.string.nps_passive_feedback_question
+ R.string.survey_fragment_nps_passive_feedback_question
)
SurveyQuestionName.DETRACTOR_FEEDBACK -> resourceHandler.getStringInLocaleWithWrapping(
- R.string.nps_detractor_feedback_question
+ R.string.survey_fragment_nps_detractor_feedback_question
)
SurveyQuestionName.UNRECOGNIZED, SurveyQuestionName.QUESTION_NAME_UNSPECIFIED ->
DEFAULT_QUESTION
diff --git a/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/MarketFitItemsViewModel.kt b/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/MarketFitItemsViewModel.kt
index e2b7fe43a5e..eb6a577f0e8 100644
--- a/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/MarketFitItemsViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/MarketFitItemsViewModel.kt
@@ -104,7 +104,7 @@ class MarketFitItemsViewModel @Inject constructor(
when (marketFitAnswer) {
MarketFitAnswer.VERY_DISAPPOINTED -> MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.market_fit_answer_very_disappointed
+ R.string.survey_fragment_market_fit_answer_very_disappointed
),
index,
this
@@ -112,7 +112,7 @@ class MarketFitItemsViewModel @Inject constructor(
MarketFitAnswer.DISAPPOINTED -> MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.market_fit_answer_somewhat_disappointed
+ R.string.survey_fragment_market_fit_answer_somewhat_disappointed
),
index,
this
@@ -120,7 +120,7 @@ class MarketFitItemsViewModel @Inject constructor(
MarketFitAnswer.NOT_DISAPPOINTED -> MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.market_fit_answer_not_disappointed
+ R.string.survey_fragment_market_fit_answer_not_disappointed
),
index,
this
@@ -129,7 +129,7 @@ class MarketFitItemsViewModel @Inject constructor(
MarketFitAnswer.NOT_APPLICABLE_WONT_USE_OPPIA_ANYMORE ->
MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocaleWithWrapping(
- R.string.market_fit_answer_wont_use_oppia,
+ R.string.survey_fragment_market_fit_answer_wont_use_oppia,
appName
),
index,
diff --git a/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/UserTypeItemsViewModel.kt b/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/UserTypeItemsViewModel.kt
index 14482c2775e..76cb92c59a1 100644
--- a/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/UserTypeItemsViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/survey/surveyitemviewmodel/UserTypeItemsViewModel.kt
@@ -104,14 +104,14 @@ class UserTypeItemsViewModel @Inject constructor(
UserTypeAnswer.LEARNER ->
MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.user_type_answer_learner
+ R.string.survey_fragment_user_type_answer_learner
),
index,
this
)
UserTypeAnswer.TEACHER -> MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.user_type_answer_teacher
+ R.string.survey_fragment_user_type_answer_teacher
),
index,
this
@@ -120,7 +120,7 @@ class UserTypeItemsViewModel @Inject constructor(
UserTypeAnswer.PARENT ->
MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.user_type_answer_parent
+ R.string.survey_fragment_user_type_answer_parent
),
index,
this
@@ -129,7 +129,7 @@ class UserTypeItemsViewModel @Inject constructor(
UserTypeAnswer.OTHER ->
MultipleChoiceOptionContentViewModel(
resourceHandler.getStringInLocale(
- R.string.user_type_answer_other
+ R.string.survey_fragment_user_type_answer_other
),
index,
this
diff --git a/app/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt
index b7bb9548635..c423ded10f7 100644
--- a/app/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/TopicFragmentPresenter.kt
@@ -89,7 +89,7 @@ class TopicFragmentPresenter @Inject constructor(
lessonsTabView?.let { lessonsTabView ->
val lessonsTabSpotlightTarget = SpotlightTarget(
lessonsTabView,
- resourceHandler.getStringInLocale(R.string.topic_lessons_tab_spotlight_hint),
+ resourceHandler.getStringInLocale(R.string.topic_fragment_lessons_tab_spotlight_hint),
SpotlightShape.RoundedRectangle,
Spotlight.FeatureCase.TOPIC_LESSON_TAB
)
@@ -99,7 +99,9 @@ class TopicFragmentPresenter @Inject constructor(
val revisionTabView = tabLayout.getTabAt(computeTabPosition(TopicTab.REVISION))?.view
val revisionTabSpotlightTarget = SpotlightTarget(
revisionTabView!!,
- resourceHandler.getStringInLocale(R.string.topic_revision_tab_spotlight_hint),
+ resourceHandler.getStringInLocale(
+ R.string.topic_fragment_revision_tab_spotlight_hint
+ ),
SpotlightShape.RoundedRectangle,
Spotlight.FeatureCase.TOPIC_REVISION_TAB
)
diff --git a/app/src/main/java/org/oppia/android/app/topic/TopicTab.kt b/app/src/main/java/org/oppia/android/app/topic/TopicTab.kt
index 3fbcead8bb6..117b868e322 100644
--- a/app/src/main/java/org/oppia/android/app/topic/TopicTab.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/TopicTab.kt
@@ -15,30 +15,30 @@ enum class TopicTab(
INFO(
positionWithTwoTabs = -1,
positionWithFourTabs = 0,
- tabLabelResId = R.string.info,
+ tabLabelResId = R.string.topic_fragment_info,
tabIconResId = R.drawable.ic_info_icon_24dp,
- contentDescriptionResId = R.string.info_tab_content_description
+ contentDescriptionResId = R.string.topic_fragment_info_tab_content_description
),
LESSONS(
positionWithTwoTabs = 0,
positionWithFourTabs = 1,
- tabLabelResId = R.string.lessons,
+ tabLabelResId = R.string.topic_fragment_lessons,
tabIconResId = R.drawable.ic_lessons_icon_24dp,
- contentDescriptionResId = R.string.lessons_tab_content_description
+ contentDescriptionResId = R.string.topic_fragment_lessons_tab_content_description
),
PRACTICE(
positionWithTwoTabs = -1,
positionWithFourTabs = 2,
- tabLabelResId = R.string.practice,
+ tabLabelResId = R.string.topic_fragment_practice,
tabIconResId = R.drawable.ic_practice_icon_24dp,
- contentDescriptionResId = R.string.practice_tab_content_description
+ contentDescriptionResId = R.string.topic_fragment_practice_tab_content_description
),
REVISION(
positionWithTwoTabs = 1,
positionWithFourTabs = 3,
- tabLabelResId = R.string.revision,
+ tabLabelResId = R.string.topic_fragment_revision,
tabIconResId = R.drawable.ic_revision_icon_24dp,
- contentDescriptionResId = R.string.revision_tab_content_description
+ contentDescriptionResId = R.string.topic_fragment_revision_tab_content_description
);
companion object {
diff --git a/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt
index 5febc7267c4..baf2c2ff9d3 100644
--- a/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/TopicViewModel.kt
@@ -79,7 +79,7 @@ class TopicViewModel @Inject constructor(
translationController.extractString(
ephemeralTopic.topic.title, ephemeralTopic.writtenTranslationContext
)
- resourceHandler.getStringInLocaleWithWrapping(R.string.topic_name, topicTitle)
+ resourceHandler.getStringInLocaleWithWrapping(R.string.topic_fragment_name_text, topicTitle)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt
index b33e85cba61..5660c2e082e 100644
--- a/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/conceptcard/ConceptCardFragmentPresenter.kt
@@ -57,7 +57,7 @@ class ConceptCardFragmentPresenter @Inject constructor(
binding.conceptCardToolbar.setNavigationIcon(R.drawable.ic_close_white_24dp)
binding.conceptCardToolbar.setNavigationContentDescription(
- R.string.navigate_up
+ R.string.navigate_up_text
)
binding.conceptCardToolbar.setNavigationOnClickListener {
(fragment.requireActivity() as? ConceptCardListener)?.dismissConceptCard()
diff --git a/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoViewModel.kt
index edc1f4f38c2..7ef36615ca9 100644
--- a/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/info/TopicInfoViewModel.kt
@@ -76,7 +76,9 @@ class TopicInfoViewModel @Inject constructor(
}
} ?: resourceHandler.getStringInLocale(R.string.unknown_size)
topicSizeText.set(
- resourceHandler.getStringInLocaleWithWrapping(R.string.topic_download_text, sizeWithUnit)
+ resourceHandler.getStringInLocaleWithWrapping(
+ R.string.topic_fragment_download_text, sizeWithUnit
+ )
)
}
diff --git a/app/src/main/java/org/oppia/android/app/topic/lessons/ChapterSummaryViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/lessons/ChapterSummaryViewModel.kt
index 857bf87d91a..0d85cb8ffc9 100644
--- a/app/src/main/java/org/oppia/android/app/topic/lessons/ChapterSummaryViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/lessons/ChapterSummaryViewModel.kt
@@ -27,13 +27,15 @@ class ChapterSummaryViewModel(
return when (chapterPlayState) {
ChapterPlayState.COMPLETED -> {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.chapter_completed, (index + 1).toString(), chapterTitle
+ R.string.topic_fragment_lessons_chapter_completed_text,
+ (index + 1).toString(),
+ chapterTitle
)
}
ChapterPlayState.NOT_PLAYABLE_MISSING_PREREQUISITES -> {
if (previousChapterTitle != null) {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.chapter_locked_prerequisite_title_label,
+ R.string.topic_fragment_lessons_chapter_locked_prerequisite_label,
(index + 1).toString(),
chapterTitle,
index.toString(),
@@ -41,13 +43,15 @@ class ChapterSummaryViewModel(
)
} else {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.chapter_prerequisite_title_label_without_chapter_title
+ R.string.topic_fragment_lessons_without_chapter_prerequisite_label
)
}
}
else -> {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.chapter_in_progress, (index + 1).toString(), chapterTitle
+ R.string.topic_fragment_lessons_chapter_in_progress_text,
+ (index + 1).toString(),
+ chapterTitle
)
}
}
@@ -55,7 +59,7 @@ class ChapterSummaryViewModel(
fun computePlayChapterIndexText(): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.topic_play_chapter_index, (index + 1).toString()
+ R.string.topic_fragment_lessons_chapter_play_index, (index + 1).toString()
)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/topic/lessons/StorySummaryViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/lessons/StorySummaryViewModel.kt
index 6e0ef58019f..93cc3805a04 100644
--- a/app/src/main/java/org/oppia/android/app/topic/lessons/StorySummaryViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/lessons/StorySummaryViewModel.kt
@@ -55,16 +55,16 @@ class StorySummaryViewModel(
fun computeProgressContainerContentDescription(): String {
return if (storyPercentage.get()!! < 100) {
"${storyProgressPercentageText.get()} " +
- resourceHandler.getStringInLocale(R.string.status_in_progress)
+ resourceHandler.getStringInLocale(R.string.topic_fragment_lessons_story_status_in_progress)
} else {
"${storyProgressPercentageText.get()} " +
- resourceHandler.getStringInLocale(R.string.status_completed)
+ resourceHandler.getStringInLocale(R.string.topic_fragment_lessons_story_status_completed)
}
}
private fun computeStoryProgressPercentageText(storyPercentage: Int): String {
return resourceHandler.getStringInLocaleWithWrapping(
- R.string.topic_story_progress_percentage, storyPercentage.toString()
+ R.string.topic_fragment_lessons_story_progress_percentage, storyPercentage.toString()
)
}
diff --git a/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerViewModel.kt
index ee470eb7b66..65549025c84 100644
--- a/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/questionplayer/QuestionPlayerViewModel.kt
@@ -82,10 +82,12 @@ class QuestionPlayerViewModel @Inject constructor(
isAtEndOfSession: Boolean
): String {
return if (isAtEndOfSession) {
- resourceHandler.getStringInLocale(R.string.question_training_session_progress_finished)
+ resourceHandler.getStringInLocale(
+ R.string.topic_fragment_question_training_session_progress_finished
+ )
} else {
resourceHandler.getStringInLocaleWithWrapping(
- R.string.question_training_session_progress,
+ R.string.topic_fragment_question_training_session_progress,
currentQuestion.toString(),
questionCount.toString()
)
diff --git a/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt b/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt
index 3f0ef5010d3..80789cc8dbd 100755
--- a/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt
+++ b/app/src/main/java/org/oppia/android/app/topic/revisioncard/RevisionCardViewModel.kt
@@ -107,11 +107,11 @@ class RevisionCardViewModel private constructor(
fun computeContentDescriptionText(subtopicLiveData: LiveData): String {
return when (subtopicLiveData) {
previousSubtopicLiveData -> appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.previous_subtopic_talkback_text,
+ R.string.topic_fragment_revision_previous_subtopic_talkback_text,
computeTitleText(previousSubtopicLiveData.value)
)
nextSubtopicLiveData -> appLanguageResourceHandler.getStringInLocaleWithWrapping(
- R.string.next_subtopic_talkback_text,
+ R.string.topic_fragment_revision_next_subtopic_talkback_text,
computeTitleText(nextSubtopicLiveData.value)
)
else -> ""
diff --git a/app/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt b/app/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
index 43fb02e01c0..b3b9338e1c5 100644
--- a/app/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
+++ b/app/src/main/java/org/oppia/android/app/utility/datetime/DateTimeUtil.kt
@@ -18,13 +18,13 @@ class DateTimeUtil @Inject constructor(
return when (machineLocale.getCurrentTimeOfDay()) {
OppiaLocale.MachineLocale.TimeOfDay.MID_MORNING,
OppiaLocale.MachineLocale.TimeOfDay.EARLY_MORNING ->
- resourceHandler.getStringInLocale(R.string.home_screen_good_morning_greeting_fragment)
+ resourceHandler.getStringInLocale(R.string.home_activity_good_morning_greeting_text)
OppiaLocale.MachineLocale.TimeOfDay.AFTERNOON ->
- resourceHandler.getStringInLocale(R.string.home_screen_good_afternoon_greeting_fragment)
+ resourceHandler.getStringInLocale(R.string.home_activity_good_afternoon_greeting_text)
OppiaLocale.MachineLocale.TimeOfDay.EVENING,
OppiaLocale.MachineLocale.TimeOfDay.UNKNOWN,
OppiaLocale.MachineLocale.TimeOfDay.LATE_NIGHT ->
- resourceHandler.getStringInLocale(R.string.home_screen_good_evening_greeting_fragment)
+ resourceHandler.getStringInLocale(R.string.home_activity_good_evening_greeting_text)
}
}
diff --git a/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt
index 1b2658ba0ff..88e9bd7b9ee 100644
--- a/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/walkthrough/end/WalkthroughFinalFragmentPresenter.kt
@@ -79,7 +79,7 @@ class WalkthroughFinalFragmentPresenter @Inject constructor(
if (::walkthroughFinalViewModel.isInitialized && ::topicName.isInitialized) {
walkthroughFinalViewModel.topicTitle.set(
resourceHandler.getStringInLocaleWithWrapping(
- R.string.are_you_interested,
+ R.string.walkthrough_activity_are_you_interested_text,
topicName
)
)
diff --git a/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt b/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt
index 3c49e08cbc1..25bd988b277 100644
--- a/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt
+++ b/app/src/main/java/org/oppia/android/app/walkthrough/welcome/WalkthroughWelcomeFragmentPresenter.kt
@@ -102,7 +102,9 @@ class WalkthroughWelcomeFragmentPresenter @Inject constructor(
private fun setProfileName() {
if (::walkthroughWelcomeViewModel.isInitialized && ::profileName.isInitialized) {
walkthroughWelcomeViewModel.profileName.set(
- resourceHandler.getStringInLocaleWithWrapping(R.string.welcome, profileName)
+ resourceHandler.getStringInLocaleWithWrapping(
+ R.string.walkthrough_activity_welcome_text, profileName
+ )
)
}
}
diff --git a/app/src/main/res/layout-land/onboarding_fragment.xml b/app/src/main/res/layout-land/onboarding_fragment.xml
index 5b7c6f69e9b..55483cda7c6 100644
--- a/app/src/main/res/layout-land/onboarding_fragment.xml
+++ b/app/src/main/res/layout-land/onboarding_fragment.xml
@@ -41,7 +41,7 @@
android:minWidth="48dp"
android:minHeight="48dp"
android:onClick="@{(v) -> presenter.clickOnSkip()}"
- android:text="@string/skip"
+ android:text="@string/onboarding_activity_skip_text"
android:textAllCaps="true"
android:textColor="@color/component_color_shared_primary_text_color"
android:visibility="@{viewModel.slideNumber != 3 ? View.VISIBLE: View.GONE, default=visible}"
@@ -66,7 +66,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
- android:contentDescription="@string/next_arrow"
+ android:contentDescription="@string/onboarding_activity_next_arrow_text"
android:gravity="center"
android:minWidth="48dp"
android:minHeight="48dp"
diff --git a/app/src/main/res/layout-land/onboarding_slide_final.xml b/app/src/main/res/layout-land/onboarding_slide_final.xml
index a62021edc69..30450646095 100644
--- a/app/src/main/res/layout-land/onboarding_slide_final.xml
+++ b/app/src/main/res/layout-land/onboarding_slide_final.xml
@@ -44,7 +44,7 @@
android:layout_marginTop="80dp"
android:layout_marginEnd="28dp"
android:fontFamily="sans-serif-medium"
- android:text="@string/onboarding_slide_3_title"
+ android:text="@string/onboarding_activity_slide_3_title"
android:textColor="@color/component_color_shared_primary_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="1.0"
@@ -58,7 +58,7 @@
android:layout_marginStart="20dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="40dp"
- android:text="@string/onboarding_slide_3_description"
+ android:text="@string/onboarding_activity_slide_3_description"
android:textColor="@color/component_color_shared_secondary_1_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
@@ -76,7 +76,7 @@
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickOnGetStarted()}"
- android:text="@string/get_started"
+ android:text="@string/onboarding_activity_get_started_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
android:textAllCaps="false"
diff --git a/app/src/main/res/layout-land/profile_chooser_add_view.xml b/app/src/main/res/layout-land/profile_chooser_add_view.xml
index c8921f28044..49ed37b23ad 100644
--- a/app/src/main/res/layout-land/profile_chooser_add_view.xml
+++ b/app/src/main/res/layout-land/profile_chooser_add_view.xml
@@ -45,7 +45,7 @@
android:id="@+id/add_profile_text"
style="@style/Caption"
android:layout_gravity="center"
- android:text="@{hasProfileEverBeenAddedValue ? @string/profile_chooser_add : @string/set_up_multiple_profiles}"
+ android:text="@{hasProfileEverBeenAddedValue ? @string/profile_chooser_fragment_add_text : @string/profile_chooser_fragment_set_up_multiple_profiles}"
android:textColor="@color/component_color_shared_secondary_4_text_color" />
+ android:contentDescription="@string/profile_chooser_fragment_language_icon_description" />
@@ -103,7 +103,7 @@
style="@style/Subtitle1ViewCenter"
android:layout_marginBottom="24dp"
android:minHeight="48dp"
- android:text="@string/profile_chooser_administrator_controls"
+ android:text="@string/profile_chooser_fragment_administrator_controls_text"
android:textColor="@color/component_color_profile_chooser_activity_secondary_options_color" />
+ android:contentDescription="@string/profile_chooser_fragment_setting_icon_description" />
diff --git a/app/src/main/res/layout-land/profile_chooser_profile_view.xml b/app/src/main/res/layout-land/profile_chooser_profile_view.xml
index d150c4cfd0f..761f44d3f02 100644
--- a/app/src/main/res/layout-land/profile_chooser_profile_view.xml
+++ b/app/src/main/res/layout-land/profile_chooser_profile_view.xml
@@ -76,7 +76,7 @@
style="@style/SubtitleLight1Center"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/profile_chooser_admin"
+ android:text="@string/profile_chooser_fragment_admin_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:visibility="@{viewModel.profile.isAdmin ? View.VISIBLE : View.GONE}" />
diff --git a/app/src/main/res/layout-land/profile_edit_fragment.xml b/app/src/main/res/layout-land/profile_edit_fragment.xml
index 352b3c2ce86..a2ab759da8e 100644
--- a/app/src/main/res/layout-land/profile_edit_fragment.xml
+++ b/app/src/main/res/layout-land/profile_edit_fragment.xml
@@ -84,7 +84,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_rename"
+ android:text="@string/profile_edit_activity_rename_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
@@ -103,7 +103,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_reset"
+ android:text="@string/profile_edit_activity_reset_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
@@ -123,7 +123,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_mark_chapter_completion"
+ android:text="@string/profile_edit_activity_mark_chapters_for_completion_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
@@ -154,7 +154,7 @@
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="24dp"
- android:text="@string/profile_edit_enable_quick_lesson_language_switching_label"
+ android:text="@string/profile_edit_activity_switching_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_enable_in_lesson_language_switching_switch"
@@ -171,7 +171,7 @@
android:paddingStart="16dp"
android:paddingEnd="24dp"
android:paddingBottom="12dp"
- android:text="@string/profile_edit_enable_quick_lesson_language_switching_explanation"
+ android:text="@string/profile_edit_activity_switching_label_text"
android:textColor="@color/component_color_shared_secondary_3_text_color"
android:textSize="14sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_enable_in_lesson_language_switching_switch"
@@ -215,7 +215,7 @@
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="24dp"
- android:text="@string/profile_edit_allow_download_heading"
+ android:text="@string/profile_edit_activity_allow_download_heading"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintBottom_toBottomOf="parent"
@@ -232,7 +232,7 @@
android:paddingStart="16dp"
android:paddingEnd="24dp"
android:paddingBottom="12dp"
- android:text="@string/profile_edit_allow_download_sub"
+ android:text="@string/profile_edit_activity_allow_download_sub"
android:textColor="@color/component_color_shared_secondary_3_text_color"
android:textSize="14sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_allow_download_switch"
@@ -266,7 +266,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_delete"
+ android:text="@string/profile_edit_activity_delete_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_profile_edit_activity_delete_button_text_color"
android:textSize="16sp"
diff --git a/app/src/main/res/layout-land/profile_progress_header.xml b/app/src/main/res/layout-land/profile_progress_header.xml
index 994327f7beb..1b4224782d2 100644
--- a/app/src/main/res/layout-land/profile_progress_header.xml
+++ b/app/src/main/res/layout-land/profile_progress_header.xml
@@ -25,7 +25,7 @@
android:layout_width="160dp"
android:layout_height="160dp"
android:clickable="true"
- android:contentDescription="@string/current_profile_picture_content_description"
+ android:contentDescription="@string/add_profile_activity_edit_image_content_description"
android:focusable="true"
android:onClick="@{() -> viewModel.clickOnProfilePicture()}"
android:elevation="4dp"
@@ -39,7 +39,7 @@
@@ -157,7 +157,7 @@
android:layout_width="60dp"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
- android:text="@{viewModel.completedStoryCount != 1 ? @string/stories_completed : @string/story_completed}"
+ android:text="@{viewModel.completedStoryCount != 1 ? @string/profile_progress_activity_stories_completed_text : @string/profile_progress_activity_story_completed_text}"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="12sp" />
@@ -171,7 +171,7 @@
android:layout_marginTop="64dp"
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
- android:text="@string/recently_played_stories"
+ android:text="@string/home_activity_recently_played_stories"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="18sp"
android:visibility="@{viewModel.headerTextVisibility}"
@@ -187,7 +187,7 @@
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
android:onClick="@{() -> viewModel.clickOnViewAll()}"
- android:text="@string/view_all"
+ android:text="@string/home_activity_view_all_text"
android:textAllCaps="true"
android:textColor="@color/component_color_profile_progress_activity_view_all_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout-land/question_player_fragment.xml b/app/src/main/res/layout-land/question_player_fragment.xml
index 569625bc270..ad785b8bcba 100644
--- a/app/src/main/res/layout-land/question_player_fragment.xml
+++ b/app/src/main/res/layout-land/question_player_fragment.xml
@@ -27,7 +27,7 @@
android:layout_marginTop="28dp"
android:layout_marginEnd="28dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_header"
+ android:text="@string/topic_fragment_question_end_session_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp"
android:visibility="gone"
@@ -42,7 +42,7 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="28dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_message"
+ android:text="@string/topic_fragment_question_end_session_body_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
android:visibility="gone"
@@ -147,7 +147,7 @@
android:layout_height="6dp"
android:layout_gravity="top|end"
android:layout_margin="8dp"
- android:contentDescription="@string/new_hint_available"
+ android:contentDescription="@string/question_player_activity_new_hint_available_text"
android:visibility="@{viewModel.isHintOpenedAndUnRevealed() ? View.VISIBLE : View.GONE}"
app:srcCompat="@drawable/ic_dot_yellow_24dp" />
@@ -156,7 +156,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dp"
- android:contentDescription="@string/show_hints_and_solution"
+ android:contentDescription="@string/state_fragment_open_hint_content_description"
app:srcCompat="@drawable/ic_hint_bulb_white_24dp" />
diff --git a/app/src/main/res/layout-land/resume_lesson_fragment.xml b/app/src/main/res/layout-land/resume_lesson_fragment.xml
index e317a2eff27..9b979deb475 100644
--- a/app/src/main/res/layout-land/resume_lesson_fragment.xml
+++ b/app/src/main/res/layout-land/resume_lesson_fragment.xml
@@ -80,7 +80,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/start_over_lesson_button"
+ android:text="@string/resume_lessons_fragment_start_over_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_button_background_trim_color"
android:textSize="14sp"
@@ -99,7 +99,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/resume_lesson_button"
+ android:text="@string/resume_lessons_fragment_continue_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout-land/story_chapter_view.xml b/app/src/main/res/layout-land/story_chapter_view.xml
index 6c40a6758a7..fc1064c2b45 100644
--- a/app/src/main/res/layout-land/story_chapter_view.xml
+++ b/app/src/main/res/layout-land/story_chapter_view.xml
@@ -92,7 +92,7 @@
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginBottom="4dp"
- android:contentDescription="@{@string/chapter_completed}"
+ android:contentDescription="@{@string/topic_fragment_lessons_chapter_completed_text}"
android:visibility="@{viewModel.chapterSummary.chapterPlayState == ChapterPlayState.COMPLETED ? View.VISIBLE : View.GONE}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout-land/survey_fragment.xml b/app/src/main/res/layout-land/survey_fragment.xml
index d1358390ce6..21d8ef487cc 100644
--- a/app/src/main/res/layout-land/survey_fragment.xml
+++ b/app/src/main/res/layout-land/survey_fragment.xml
@@ -29,7 +29,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/component_color_shared_activity_toolbar_color"
- android:contentDescription="@string/survey_exit_button_description"
+ android:contentDescription="@string/survey_activity_exit_dialog_exit_button_description"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
app:navigationIcon="@drawable/ic_close_white_24dp">
@@ -125,7 +125,7 @@
style="@style/SurveyPreviousButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/survey_previous_button"
+ android:text="@string/survey_fragment_previous_button"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -136,7 +136,7 @@
android:layout_height="wrap_content"
android:background="@{viewModel.canMoveToNextQuestion ? @drawable/state_button_primary_background : @drawable/state_button_inactive_background}"
android:enabled="@{viewModel.canMoveToNextQuestion}"
- android:text="@string/next"
+ android:text="@string/next_text"
android:textColor="@{viewModel.canMoveToNextQuestion ? @color/component_color_shared_secondary_4_text_color : @color/component_color_survey_disabled_button_text_color}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout-land/survey_welcome_dialog_fragment.xml b/app/src/main/res/layout-land/survey_welcome_dialog_fragment.xml
index 9a41b4cf558..86943c2ade3 100644
--- a/app/src/main/res/layout-land/survey_welcome_dialog_fragment.xml
+++ b/app/src/main/res/layout-land/survey_welcome_dialog_fragment.xml
@@ -9,7 +9,7 @@
diff --git a/app/src/main/res/layout-land/topic_info_fragment.xml b/app/src/main/res/layout-land/topic_info_fragment.xml
index 6ebd9c406d1..cc8336c870f 100644
--- a/app/src/main/res/layout-land/topic_info_fragment.xml
+++ b/app/src/main/res/layout-land/topic_info_fragment.xml
@@ -83,7 +83,7 @@
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickSeeMore()}"
android:paddingTop="8dp"
- android:text="@{viewModel.isDescriptionExpanded() ? @string/see_less : @string/see_more}"
+ android:text="@{viewModel.isDescriptionExpanded() ? @string/topic_fragment_info_see_less_text : @string/topic_fragment_info_see_more_text}"
android:textColor="@color/component_color_shared_active_text_color"
android:textSize="16sp"
android:textStyle="bold"
@@ -106,7 +106,7 @@
app:layout_constraintTop_toBottomOf="@+id/see_more_text_view"
app:srcCompat="@{viewModel.downloadStatusIndicatorDrawableResourceId, default=@drawable/ic_available_offline_primary_24dp}"
app:tint="@color/component_color_topic_info_fragment_download_status_image_color"
- android:contentDescription="@string/download_status_image_content_description" />
+ android:contentDescription="@string/topic_fragment_info_download_status_image_description" />
@@ -67,7 +67,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:fontFamily="sans-serif"
- android:text="@string/pick_a_different_topic"
+ android:text="@string/walkthrough_activity_pick_different_topic_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="12sp" />
@@ -89,7 +89,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:fontFamily="sans-serif"
- android:text="@string/yes"
+ android:text="@string/walkthrough_activity_yes_text"
android:textColor="@color/component_color_shared_secondary_6_text_color"
android:textSize="20sp" />
@@ -100,7 +100,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:fontFamily="sans-serif"
- android:text="@string/lets_get_started"
+ android:text="@string/walkthrough_activity_get_started_text"
android:textColor="@color/component_color_shared_secondary_6_text_color"
android:textSize="12sp" />
@@ -126,7 +126,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
- android:text="@string/great"
+ android:text="@string/walkthrough_activity_final_title_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout-land/walkthrough_welcome_fragment.xml b/app/src/main/res/layout-land/walkthrough_welcome_fragment.xml
index 06c4ed0447f..879b00a58bd 100644
--- a/app/src/main/res/layout-land/walkthrough_welcome_fragment.xml
+++ b/app/src/main/res/layout-land/walkthrough_welcome_fragment.xml
@@ -46,7 +46,7 @@
android:layout_marginTop="16dp"
android:layout_marginEnd="56dp"
android:fontFamily="sans-serif"
- android:text="@string/walkthrough_welcome_description"
+ android:text="@string/walkthrough_activity_welcome_description"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -71,7 +71,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
android:onClick="@{(v) -> presenter.changePage()}"
- android:text="@string/next"
+ android:text="@string/next_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/walkthrough_welcome_image_view"
diff --git a/app/src/main/res/layout-sw600dp-land/faq_single_activity.xml b/app/src/main/res/layout-sw600dp-land/faq_single_activity.xml
index 1c8f2e70045..49e55f6563e 100644
--- a/app/src/main/res/layout-sw600dp-land/faq_single_activity.xml
+++ b/app/src/main/res/layout-sw600dp-land/faq_single_activity.xml
@@ -23,7 +23,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout-sw600dp-land/onboarding_fragment.xml b/app/src/main/res/layout-sw600dp-land/onboarding_fragment.xml
index 4899d438355..7ed723095cf 100644
--- a/app/src/main/res/layout-sw600dp-land/onboarding_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-land/onboarding_fragment.xml
@@ -69,7 +69,7 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="12dp"
- android:contentDescription="@string/next_arrow"
+ android:contentDescription="@string/onboarding_activity_next_arrow_text"
android:gravity="center"
android:minWidth="48dp"
android:minHeight="48dp"
@@ -89,7 +89,7 @@
android:minWidth="48dp"
android:minHeight="48dp"
android:onClick="@{(v) -> presenter.clickOnSkip()}"
- android:text="@string/skip"
+ android:text="@string/onboarding_activity_skip_text"
android:textAllCaps="true"
android:textColor="@color/component_color_shared_primary_text_color"
android:visibility="@{viewModel.slideNumber != (viewModel.totalNumberOfSlides - 1) ? View.VISIBLE: View.GONE, default=visible}"
diff --git a/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml b/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml
index b33f3480486..1d9134137bb 100644
--- a/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml
+++ b/app/src/main/res/layout-sw600dp-land/onboarding_slide_final.xml
@@ -41,7 +41,7 @@
android:layout_width="0dp"
android:layout_marginBottom="12dp"
android:fontFamily="sans-serif-medium"
- android:text="@string/onboarding_slide_3_title"
+ android:text="@string/onboarding_activity_slide_3_title"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="32sp"
app:layout_constraintBottom_toTopOf="@+id/guideline2"
@@ -54,7 +54,7 @@
style="@style/Subtitle1ViewCenterHorizontal"
android:layout_width="0dp"
android:layout_marginTop="12dp"
- android:text="@string/onboarding_slide_3_description"
+ android:text="@string/onboarding_activity_slide_3_description"
android:textColor="@color/component_color_shared_secondary_1_text_color"
android:textSize="24sp"
app:layout_constraintEnd_toStartOf="@+id/guideline3"
@@ -70,7 +70,7 @@
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickOnGetStarted()}"
- android:text="@string/get_started"
+ android:text="@string/onboarding_activity_get_started_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
android:textAllCaps="false"
diff --git a/app/src/main/res/layout-sw600dp-land/profile_chooser_add_view.xml b/app/src/main/res/layout-sw600dp-land/profile_chooser_add_view.xml
index b4fe8b3ba79..bf9235861f9 100644
--- a/app/src/main/res/layout-sw600dp-land/profile_chooser_add_view.xml
+++ b/app/src/main/res/layout-sw600dp-land/profile_chooser_add_view.xml
@@ -59,7 +59,7 @@
@@ -69,7 +69,7 @@
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:fontFamily="sans-serif"
- android:text="@string/set_up_multiple_profiles_description"
+ android:text="@string/profile_chooser_fragment_add_profile_description_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="16sp"
android:visibility="@{hasProfileEverBeenAddedValue ? View.GONE : View.VISIBLE}" />
diff --git a/app/src/main/res/layout-sw600dp-land/profile_chooser_profile_view.xml b/app/src/main/res/layout-sw600dp-land/profile_chooser_profile_view.xml
index f70c2bbf2fa..9b27b150db0 100644
--- a/app/src/main/res/layout-sw600dp-land/profile_chooser_profile_view.xml
+++ b/app/src/main/res/layout-sw600dp-land/profile_chooser_profile_view.xml
@@ -90,7 +90,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:gravity="@{hasProfileEverBeenAddedValue ? Gravity.CENTER_HORIZONTAL : Gravity.CENTER_VERTICAL}"
- android:text="@string/profile_chooser_admin"
+ android:text="@string/profile_chooser_fragment_admin_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:visibility="@{viewModel.profile.isAdmin ? View.VISIBLE : View.GONE}"
app:layoutMarginTop="@{hasProfileEverBeenAddedValue ? @dimen/profile_chooser_profile_view_is_admin_margin_top_profile_already_added : @dimen/space_0dp}" />
diff --git a/app/src/main/res/layout-sw600dp-land/question_player_fragment.xml b/app/src/main/res/layout-sw600dp-land/question_player_fragment.xml
index c720268b937..1954f8b05a4 100644
--- a/app/src/main/res/layout-sw600dp-land/question_player_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-land/question_player_fragment.xml
@@ -29,7 +29,7 @@
android:layout_marginTop="40dp"
android:layout_marginEnd="192dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_header"
+ android:text="@string/topic_fragment_question_end_session_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp"
android:visibility="gone"
@@ -44,7 +44,7 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="192dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_message"
+ android:text="@string/topic_fragment_question_end_session_body_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
android:visibility="gone"
@@ -151,7 +151,7 @@
android:layout_height="6dp"
android:layout_gravity="top|end"
android:layout_margin="8dp"
- android:contentDescription="@string/new_hint_available"
+ android:contentDescription="@string/question_player_activity_new_hint_available_text"
android:visibility="@{viewModel.isHintOpenedAndUnRevealed() ? View.VISIBLE : View.GONE}"
app:srcCompat="@drawable/ic_dot_yellow_24dp" />
@@ -160,7 +160,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dp"
- android:contentDescription="@string/show_hints_and_solution"
+ android:contentDescription="@string/state_fragment_open_hint_content_description"
app:srcCompat="@drawable/ic_hint_bulb_white_24dp" />
diff --git a/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml b/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml
index 5997f1069a4..0295e092bd8 100644
--- a/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-land/resume_lesson_fragment.xml
@@ -110,7 +110,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/start_over_lesson_button"
+ android:text="@string/resume_lessons_fragment_start_over_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_button_background_trim_color"
android:textSize="14sp"
@@ -129,7 +129,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/resume_lesson_button"
+ android:text="@string/resume_lessons_fragment_continue_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout-sw600dp-land/topic_info_fragment.xml b/app/src/main/res/layout-sw600dp-land/topic_info_fragment.xml
index 2f4129184af..5e28f76167e 100644
--- a/app/src/main/res/layout-sw600dp-land/topic_info_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-land/topic_info_fragment.xml
@@ -79,7 +79,7 @@
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickSeeMore()}"
android:paddingTop="8dp"
- android:text="@{viewModel.isDescriptionExpanded() ? @string/see_less : @string/see_more}"
+ android:text="@{viewModel.isDescriptionExpanded() ? @string/topic_fragment_info_see_less_text : @string/topic_fragment_info_see_more_text}"
android:textColor="@color/component_color_shared_active_text_color"
android:textSize="16sp"
android:textStyle="bold"
@@ -100,7 +100,7 @@
app:layout_constraintTop_toBottomOf="@+id/see_more_text_view"
app:srcCompat="@{viewModel.downloadStatusIndicatorDrawableResourceId, default=@drawable/ic_available_offline_primary_24dp}"
app:tint="@color/component_color_topic_info_fragment_download_status_image_color"
- android:contentDescription="@string/download_status_image_content_description" />
+ android:contentDescription="@string/topic_fragment_info_download_status_image_description" />
@@ -142,7 +142,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
- android:contentDescription="@{isListExpanded ? @string/hide_chapter_list : @string/show_chapter_list}"
+ android:contentDescription="@{isListExpanded ? @string/topic_fragment_lessons_hide_chapter_list : @string/topic_fragment_lessons_show_chapter_list}"
app:isRotationAnimationClockwise="@{isListExpanded}"
app:rotationAnimationAngle="@{180f}"
app:srcCompat="@drawable/ic_arrow_drop_down_black_24dp"
diff --git a/app/src/main/res/layout-sw600dp-port/onboarding_fragment.xml b/app/src/main/res/layout-sw600dp-port/onboarding_fragment.xml
index 18b1555cbcc..6182a571f23 100644
--- a/app/src/main/res/layout-sw600dp-port/onboarding_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-port/onboarding_fragment.xml
@@ -68,7 +68,7 @@
android:layout_marginTop="12dp"
android:layout_marginEnd="32dp"
android:layout_marginBottom="12dp"
- android:contentDescription="@string/next_arrow"
+ android:contentDescription="@string/onboarding_activity_next_arrow_text"
android:gravity="center"
android:minWidth="48dp"
android:minHeight="48dp"
@@ -89,7 +89,7 @@
android:minWidth="48dp"
android:minHeight="48dp"
android:onClick="@{(v) -> presenter.clickOnSkip()}"
- android:text="@string/skip"
+ android:text="@string/onboarding_activity_skip_text"
android:textAllCaps="true"
android:textColor="@color/component_color_shared_primary_text_color"
android:visibility="@{viewModel.slideNumber != (viewModel.totalNumberOfSlides - 1) ? View.VISIBLE: View.GONE, default=visible}"
diff --git a/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml b/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml
index 7d56635942f..8499020e970 100644
--- a/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml
+++ b/app/src/main/res/layout-sw600dp-port/onboarding_slide_final.xml
@@ -43,7 +43,7 @@
android:layout_marginEnd="160dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_horizontal"
- android:text="@string/onboarding_slide_3_title"
+ android:text="@string/onboarding_activity_slide_3_title"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="32sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -59,7 +59,7 @@
android:layout_marginEnd="192dp"
android:maxLines="2"
android:minLines="2"
- android:text="@string/onboarding_slide_3_description"
+ android:text="@string/onboarding_activity_slide_3_description"
android:textColor="@color/component_color_shared_secondary_1_text_color"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -77,7 +77,7 @@
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickOnGetStarted()}"
- android:text="@string/get_started"
+ android:text="@string/onboarding_activity_get_started_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="20sp"
android:textAllCaps="false"
diff --git a/app/src/main/res/layout-sw600dp-port/profile_chooser_add_view.xml b/app/src/main/res/layout-sw600dp-port/profile_chooser_add_view.xml
index af4cad46d7c..57353dea378 100644
--- a/app/src/main/res/layout-sw600dp-port/profile_chooser_add_view.xml
+++ b/app/src/main/res/layout-sw600dp-port/profile_chooser_add_view.xml
@@ -58,7 +58,7 @@
@@ -68,7 +68,7 @@
android:layout_gravity="center"
android:layout_marginTop="4dp"
android:fontFamily="sans-serif"
- android:text="@string/set_up_multiple_profiles_description"
+ android:text="@string/profile_chooser_fragment_add_profile_description_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="16sp"
android:visibility="@{hasProfileEverBeenAddedValue ? View.GONE : View.VISIBLE}" />
diff --git a/app/src/main/res/layout-sw600dp-port/profile_chooser_profile_view.xml b/app/src/main/res/layout-sw600dp-port/profile_chooser_profile_view.xml
index 969ca5372d8..e5d691dc417 100644
--- a/app/src/main/res/layout-sw600dp-port/profile_chooser_profile_view.xml
+++ b/app/src/main/res/layout-sw600dp-port/profile_chooser_profile_view.xml
@@ -89,7 +89,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="4dp"
android:gravity="@{hasProfileEverBeenAddedValue ? Gravity.CENTER_HORIZONTAL : Gravity.CENTER_VERTICAL}"
- android:text="@string/profile_chooser_admin"
+ android:text="@string/profile_chooser_fragment_admin_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:visibility="@{viewModel.profile.isAdmin ? View.VISIBLE : View.GONE}" />
diff --git a/app/src/main/res/layout-sw600dp-port/question_player_fragment.xml b/app/src/main/res/layout-sw600dp-port/question_player_fragment.xml
index 760a1e8c305..1f8fd6426d2 100644
--- a/app/src/main/res/layout-sw600dp-port/question_player_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-port/question_player_fragment.xml
@@ -29,7 +29,7 @@
android:layout_marginTop="40dp"
android:layout_marginEnd="128dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_header"
+ android:text="@string/topic_fragment_question_end_session_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp"
android:visibility="gone"
@@ -44,7 +44,7 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="128dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_message"
+ android:text="@string/topic_fragment_question_end_session_body_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
android:visibility="gone"
@@ -151,7 +151,7 @@
android:layout_height="6dp"
android:layout_gravity="top|end"
android:layout_margin="8dp"
- android:contentDescription="@string/new_hint_available"
+ android:contentDescription="@string/question_player_activity_new_hint_available_text"
android:visibility="@{viewModel.isHintOpenedAndUnRevealed() ? View.VISIBLE : View.GONE}"
app:srcCompat="@drawable/ic_dot_yellow_24dp" />
@@ -160,7 +160,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dp"
- android:contentDescription="@string/show_hints_and_solution"
+ android:contentDescription="@string/state_fragment_open_hint_content_description"
app:srcCompat="@drawable/ic_hint_bulb_white_24dp" />
diff --git a/app/src/main/res/layout-sw600dp-port/resume_lesson_fragment.xml b/app/src/main/res/layout-sw600dp-port/resume_lesson_fragment.xml
index 44454b975c0..1a1d6f19d45 100644
--- a/app/src/main/res/layout-sw600dp-port/resume_lesson_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-port/resume_lesson_fragment.xml
@@ -95,7 +95,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/start_over_lesson_button"
+ android:text="@string/resume_lessons_fragment_start_over_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_button_background_trim_color"
android:textSize="14sp"
@@ -113,7 +113,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/resume_lesson_button"
+ android:text="@string/resume_lessons_fragment_continue_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout-sw600dp-port/topic_info_fragment.xml b/app/src/main/res/layout-sw600dp-port/topic_info_fragment.xml
index e683f6b64e3..ec4f23ff187 100644
--- a/app/src/main/res/layout-sw600dp-port/topic_info_fragment.xml
+++ b/app/src/main/res/layout-sw600dp-port/topic_info_fragment.xml
@@ -100,7 +100,7 @@
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickSeeMore()}"
android:paddingTop="8dp"
- android:text="@{viewModel.isDescriptionExpanded() ? @string/see_less : @string/see_more}"
+ android:text="@{viewModel.isDescriptionExpanded() ? @string/topic_fragment_info_see_less_text : @string/topic_fragment_info_see_more_text}"
android:textColor="@color/component_color_shared_active_text_color"
android:textSize="16sp"
android:textStyle="bold"
@@ -120,7 +120,7 @@
app:layout_constraintTop_toBottomOf="@+id/see_more_text_view"
app:srcCompat="@{viewModel.downloadStatusIndicatorDrawableResourceId, default=@drawable/ic_available_offline_primary_24dp}"
app:tint="@color/component_color_topic_info_fragment_download_status_image_color"
- android:contentDescription="@string/download_status_image_content_description" />
+ android:contentDescription="@string/topic_fragment_info_download_status_image_description" />
+ android:contentDescription="@string/profile_chooser_fragment_language_icon_description" />
+ android:contentDescription="@string/profile_chooser_fragment_setting_icon_description" />
diff --git a/app/src/main/res/layout-sw600dp/profile_progress_header.xml b/app/src/main/res/layout-sw600dp/profile_progress_header.xml
index 9ca97de20d1..9f0e1dab9dc 100644
--- a/app/src/main/res/layout-sw600dp/profile_progress_header.xml
+++ b/app/src/main/res/layout-sw600dp/profile_progress_header.xml
@@ -24,7 +24,7 @@
android:layout_height="160dp"
android:layout_marginStart="@dimen/profile_edit_image_layout_margin_start"
android:clickable="true"
- android:contentDescription="@string/current_profile_picture_content_description"
+ android:contentDescription="@string/add_profile_activity_edit_image_content_description"
android:elevation="4dp"
android:focusable="true"
android:onClick="@{() -> viewModel.clickOnProfilePicture()}"
@@ -38,7 +38,7 @@
@@ -157,7 +157,7 @@
android:layout_width="60dp"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
- android:text="@{viewModel.completedStoryCount != 1 ? @string/stories_completed : @string/story_completed}"
+ android:text="@{viewModel.completedStoryCount != 1 ? @string/profile_progress_activity_stories_completed_text : @string/profile_progress_activity_story_completed_text}"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="12sp" />
@@ -172,7 +172,7 @@
android:layout_marginTop="76dp"
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
- android:text="@string/recently_played_stories"
+ android:text="@string/home_activity_recently_played_stories"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="18sp"
android:visibility="@{viewModel.headerTextVisibility}"
@@ -190,7 +190,7 @@
android:gravity="center_vertical"
android:minHeight="48dp"
android:onClick="@{() -> viewModel.clickOnViewAll()}"
- android:text="@string/view_all"
+ android:text="@string/home_activity_view_all_text"
android:textAllCaps="true"
android:textColor="@color/component_color_profile_progress_activity_view_all_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout-sw600dp/revision_card_fragment.xml b/app/src/main/res/layout-sw600dp/revision_card_fragment.xml
index 2aa0649856d..6b2b8adad54 100644
--- a/app/src/main/res/layout-sw600dp/revision_card_fragment.xml
+++ b/app/src/main/res/layout-sw600dp/revision_card_fragment.xml
@@ -50,7 +50,7 @@
android:layout_height="wrap_content"
android:layout_marginStart="28dp"
android:layout_marginEnd="28dp"
- android:text="@string/revision_navigation_cards_header"
+ android:text="@string/revision_card_fragment_continue_studying_text"
android:textAlignment="@{viewModel.subtopicId == 1 ? View.TEXT_ALIGNMENT_TEXT_END : View.TEXT_ALIGNMENT_TEXT_START}"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="20sp"
diff --git a/app/src/main/res/layout-sw600dp/story_chapter_view.xml b/app/src/main/res/layout-sw600dp/story_chapter_view.xml
index 64800254214..04e7a50f255 100644
--- a/app/src/main/res/layout-sw600dp/story_chapter_view.xml
+++ b/app/src/main/res/layout-sw600dp/story_chapter_view.xml
@@ -116,7 +116,7 @@
app:layout_constraintStart_toStartOf="@id/chapter_thumbnail"
app:layout_constraintTop_toTopOf="@id/chapter_thumbnail"
app:srcCompat="@drawable/ic_baseline_lock_24"
- android:contentDescription="@string/lock_icon_content_description" />
+ android:contentDescription="@string/story_fragment_lock_icon_content_description" />
+ android:text="@string/home_activity_topic_play_text" />
diff --git a/app/src/main/res/layout-w600dp/survey_welcome_dialog_fragment.xml b/app/src/main/res/layout-w600dp/survey_welcome_dialog_fragment.xml
index d140d187690..4b90fe35343 100644
--- a/app/src/main/res/layout-w600dp/survey_welcome_dialog_fragment.xml
+++ b/app/src/main/res/layout-w600dp/survey_welcome_dialog_fragment.xml
@@ -9,7 +9,7 @@
diff --git a/app/src/main/res/layout/activity_input_interaction_view_test.xml b/app/src/main/res/layout/activity_input_interaction_view_test.xml
index dba00bfb1e8..6c4eda71844 100644
--- a/app/src/main/res/layout/activity_input_interaction_view_test.xml
+++ b/app/src/main/res/layout/activity_input_interaction_view_test.xml
@@ -122,7 +122,7 @@
android:layout_margin="8dp"
android:background="@drawable/edit_text_background"
android:focusable="true"
- android:hint="@string/test_number_input_interaction_hint"
+ android:hint="@string/input_interaction_view_test_activity_number_input_hint"
android:textColor="@color/component_color_shared_primary_text_color"
android:textColorHint="@color/component_color_shared_edit_text_hint_color"
android:longClickable="false"
@@ -154,7 +154,7 @@
android:layout_margin="8dp"
android:background="@drawable/edit_text_background"
android:focusable="true"
- android:hint="@string/test_text_input_interaction_hint"
+ android:hint="@string/input_interaction_view_test_activity_text_input_hint"
android:inputType="text"
android:longClickable="false"
android:maxLength="200"
@@ -181,7 +181,7 @@
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:onClick="getPendingAnswerErrorOnSubmitClick"
- android:text="@string/submit_button_text"
+ android:text="@string/input_interaction_view_test_activity_submit_button"
android:textColor="@color/component_color_shared_secondary_4_text_color" />
diff --git a/app/src/main/res/layout/add_profile_activity.xml b/app/src/main/res/layout/add_profile_activity.xml
index a3c2adc51e9..e390eb9f125 100644
--- a/app/src/main/res/layout/add_profile_activity.xml
+++ b/app/src/main/res/layout/add_profile_activity.xml
@@ -49,7 +49,7 @@
android:layout_width="120dp"
android:layout_height="120dp"
android:clickable="true"
- android:contentDescription="@string/current_profile_picture_content_description"
+ android:contentDescription="@string/add_profile_activity_edit_image_content_description"
android:elevation="4dp"
android:focusable="true"
app:add_shadow="true"
@@ -64,7 +64,7 @@
android:id="@+id/add_profile_activity_edit_user_image_view"
android:layout_width="48dp"
android:layout_height="48dp"
- android:contentDescription="@string/edit_profile_picture_content_description"
+ android:contentDescription="@string/add_profile_activity_edit_user_image_content_description"
android:elevation="4dp"
android:paddingStart="12dp"
android:paddingEnd="0dp"
@@ -79,9 +79,9 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:hint="@string/add_profile_input_name"
+ android:hint="@string/add_profile_activity_input_name_hint"
app:errorMessage="@{viewModel.nameErrorMsg}"
- app:helperText="@string/add_profile_required"
+ app:helperText="@string/add_profile_activity_user_name_helper_text"
app:helperTextEnabled="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -105,7 +105,7 @@
android:layout_marginTop="@dimen/add_profile_pin_checkbox_margin_top"
android:buttonTint="@color/component_color_shared_checkbox_selector"
android:minHeight="48dp"
- android:text="@string/add_profile_create_a_3_digit_pin"
+ android:text="@string/add_profile_activity_pin_check_box_text"
android:textColor="@color/component_color_shared_secondary_1_text_color"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/add_profile_activity_user_name" />
@@ -114,7 +114,7 @@
android:id="@+id/add_profile_activity_info_image_view"
android:layout_width="48dp"
android:layout_height="48dp"
- android:contentDescription="@string/add_profile_info_content_description"
+ android:contentDescription="@string/add_profile_activity_info_image_content_description"
android:padding="12dp"
android:tint="@color/component_color_add_profile_activity_info_icon_color"
app:layout_constraintEnd_toEndOf="parent"
@@ -137,9 +137,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="24dp"
- android:hint="@string/add_profile_input_pin"
+ android:hint="@string/add_profile_activity_input_pin_hint"
app:errorMessage="@{viewModel.pinErrorMsg}"
- app:helperText="@string/add_profile_required"
+ app:helperText="@string/add_profile_activity_user_name_helper_text"
app:helperTextEnabled="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -162,9 +162,9 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/add_profile_confirm_pin_margin_top"
- android:hint="@string/add_profile_input_confirm_pin"
+ android:hint="@string/add_profile_activity_input_confirm_pin_hint"
app:errorMessage="@{viewModel.confirmPinErrorMsg}"
- app:helperText="@string/add_profile_required"
+ app:helperText="@string/add_profile_activity_user_name_helper_text"
app:helperTextEnabled="true"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -198,7 +198,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
- android:text="@string/add_profile_allow_download_heading"
+ android:text="@string/add_profile_activity_allow_download_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
@@ -210,7 +210,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
- android:text="@string/add_profile_allow_download_sub"
+ android:text="@string/add_profile_activity_allow_download_sub_text"
android:textColor="@color/component_color_shared_secondary_2_text_color"
android:textSize="14sp"
app:layout_constraintStart_toStartOf="parent"
@@ -237,7 +237,7 @@
android:background="@{viewModel.isButtonActive() ? @drawable/state_button_primary_background : @drawable/start_button_transparent_background}"
android:enabled="@{viewModel.isButtonActive()}"
android:gravity="center"
- android:text="@string/add_profile_create_btn"
+ android:text="@string/add_profile_activity_create_button_text"
android:textColor="@{viewModel.isButtonActive() ? @color/component_color_shared_secondary_4_text_color : @color/component_color_shared_button_inactive_text_color }"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/add_profile_activity_pin_constraint_layout" />
diff --git a/app/src/main/res/layout/admin_auth_activity.xml b/app/src/main/res/layout/admin_auth_activity.xml
index 37b381f214a..7b22ca74753 100644
--- a/app/src/main/res/layout/admin_auth_activity.xml
+++ b/app/src/main/res/layout/admin_auth_activity.xml
@@ -31,9 +31,9 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/admin_auth_close"
+ app:navigationContentDescription="@string/admin_auth_activity_tool_bar_content_desc"
app:navigationIcon="@drawable/ic_close_white_24dp"
- app:title="@string/admin_auth_toolbar"
+ app:title="@string/admin_auth_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance"
app:titleTextColor="@color/component_color_shared_activity_toolbar_text_color" />
@@ -67,7 +67,7 @@
android:layout_marginTop="40dp"
android:layout_marginEnd="@dimen/admin_auth_activity_admin_pin_main_text_view_margin_end"
android:maxLines="2"
- android:text="@string/admin_auth_heading"
+ android:text="@string/admin_auth_activity_heading_text"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -78,7 +78,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
- android:text="@string/admin_auth_sub"
+ android:text="@string/admin_auth_activity_subheading_text"
android:textColor="@color/component_color_shared_secondary_2_text_color"
app:layout_constraintEnd_toEndOf="@id/admin_auth_heading_textview"
app:layout_constraintStart_toStartOf="@id/admin_auth_heading_textview"
@@ -90,7 +90,7 @@
android:layout_width="@dimen/admin_auth_activity_input_width"
android:layout_height="wrap_content"
android:layout_marginTop="48dp"
- android:hint="@string/admin_auth_pin"
+ android:hint="@string/admin_auth_activity_input_pin_hint_text"
app:errorMessage="@{viewModel.errorMessage}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -116,7 +116,7 @@
android:background="@{viewModel.isSubmitButtonActive ? @drawable/state_button_primary_background :@drawable/start_button_transparent_background}"
android:enabled="@{viewModel.isSubmitButtonActive}"
android:minHeight="48dp"
- android:text="@string/admin_auth_submit"
+ android:text="@string/admin_auth_activity_submit_button_text"
android:textColor="@{viewModel.isSubmitButtonActive() ? @color/component_color_shared_secondary_4_text_color : @color/component_color_shared_button_inactive_text_color }"
app:layout_constraintEnd_toEndOf="@id/admin_auth_input_pin"
app:layout_constraintHorizontal_bias="1.0"
diff --git a/app/src/main/res/layout/admin_pin_activity.xml b/app/src/main/res/layout/admin_pin_activity.xml
index f22760b80dd..513dcdd38d6 100644
--- a/app/src/main/res/layout/admin_pin_activity.xml
+++ b/app/src/main/res/layout/admin_pin_activity.xml
@@ -57,7 +57,7 @@
android:layout_marginStart="@dimen/admin_pin_activity_admin_pin_main_text_view_margin_start"
android:layout_marginTop="32dp"
android:layout_marginEnd="@dimen/admin_pin_activity_admin_pin_main_text_view_margin_end"
- android:text="@string/admin_pin_requirement_description"
+ android:text="@string/admin_pin_activity_requirement_description_text"
android:textColor="@color/component_color_shared_secondary_1_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -69,7 +69,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:text="@string/admin_pin_pin_description"
+ android:text="@string/admin_pin_activity_warning_text"
android:textColor="@color/component_color_shared_secondary_1_text_color"
app:layout_constraintEnd_toEndOf="@id/admin_pin_main_text"
app:layout_constraintStart_toStartOf="@+id/admin_pin_main_text"
@@ -81,7 +81,7 @@
android:layout_width="@dimen/admin_pin_activity_input_width"
android:layout_height="wrap_content"
android:layout_marginTop="28dp"
- android:hint="@string/admin_pin_new_pin"
+ android:hint="@string/admin_pin_activity_input_new_pin_hint"
app:errorMessage="@{viewModel.pinErrorMsg}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -104,7 +104,7 @@
android:layout_width="@dimen/admin_pin_activity_input_width"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:hint="@string/admin_pin_new_confirm"
+ android:hint="@string/admin_pin_activity_input_confirm_pin_hint"
app:errorMessage="@{viewModel.confirmPinErrorMsg}"
app:layout_constraintEnd_toEndOf="@id/admin_pin_input_pin"
app:layout_constraintStart_toStartOf="@id/admin_pin_input_pin"
@@ -133,7 +133,7 @@
android:clickable="@{viewModel.isButtonActive()}"
android:enabled="@{viewModel.isButtonActive()}"
android:minHeight="48dp"
- android:text="@string/save"
+ android:text="@string/admin_pin_activity_submit_button_text"
android:textColor="@{viewModel.isButtonActive() ? @color/component_color_shared_secondary_4_text_color : @color/component_color_shared_button_inactive_text_color }"
app:layout_constraintEnd_toEndOf="@id/admin_pin_input_confirm_pin"
app:layout_constraintTop_toBottomOf="@+id/admin_pin_input_confirm_pin" />
diff --git a/app/src/main/res/layout/admin_settings_dialog.xml b/app/src/main/res/layout/admin_settings_dialog.xml
index 8e3100fef5b..8b732c10562 100755
--- a/app/src/main/res/layout/admin_settings_dialog.xml
+++ b/app/src/main/res/layout/admin_settings_dialog.xml
@@ -22,7 +22,7 @@
android:layout_marginTop="32dp"
android:layout_marginEnd="24dp"
android:layout_marginBottom="20dp"
- android:hint="@string/admin_settings_label"
+ android:hint="@string/admin_settings_dialog_input_pin_hint"
app:errorMessage="@{viewModel.errorMessage}">
@@ -60,7 +60,7 @@
android:id="@+id/topic_update_on_wifi_description_text_view"
style="@style/Subtitle2ViewStart"
android:layout_width="0dp"
- android:text="@string/administrator_controls_update_on_wifi_message"
+ android:text="@string/administrator_controls_fragment_topic_update_on_wifi_description"
android:textColor="@color/component_color_shared_secondary_3_text_color"
app:layout_constraintEnd_toStartOf="@id/topic_update_on_wifi_switch"
app:layout_constraintStart_toStartOf="parent"
@@ -116,7 +116,7 @@
android:id="@+id/auto_update_topic_title_text_view"
style="@style/Body"
android:paddingBottom="4dp"
- android:text="@string/administrator_controls_auto_update_title"
+ android:text="@string/administrator_controls_fragment_auto_update_topic_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -125,7 +125,7 @@
android:id="@+id/auto_update_topic_description_text_view"
style="@style/Subtitle2ViewStart"
android:layout_width="0dp"
- android:text="@string/administrator_controls_auto_update_message"
+ android:text="@string/administrator_controls_fragment_auto_update_topic_description"
android:textColor="@color/component_color_shared_secondary_3_text_color"
app:layout_constraintEnd_toStartOf="@id/auto_update_topic_switch"
app:layout_constraintHorizontal_weight="1"
diff --git a/app/src/main/res/layout/administrator_controls_general_view.xml b/app/src/main/res/layout/administrator_controls_general_view.xml
index 9b815b48f14..7c84c3b126c 100644
--- a/app/src/main/res/layout/administrator_controls_general_view.xml
+++ b/app/src/main/res/layout/administrator_controls_general_view.xml
@@ -22,7 +22,7 @@
android:paddingTop="@dimen/administrator_controls_general_view_general_text_view_padding_top"
android:paddingEnd="@dimen/administrator_controls_general_view_general_text_view_padding_end"
android:paddingBottom="20dp"
- android:text="@string/administrator_controls_general_label"
+ android:text="@string/administrator_controls_fragment_general_label"
android:textColor="@color/component_color_shared_active_text_color"
app:layout_constraintBottom_toTopOf="@id/edit_account_text_view"
app:layout_constraintEnd_toEndOf="parent"
@@ -38,7 +38,7 @@
android:paddingTop="20dp"
android:paddingEnd="@dimen/administrator_controls_general_view_edit_account_text_view_padding_end"
android:paddingBottom="20dp"
- android:text="@string/administrator_controls_edit_account"
+ android:text="@string/administrator_controls_fragment_edit_account_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/administrator_controls_learner_analytics_view.xml b/app/src/main/res/layout/administrator_controls_learner_analytics_view.xml
index 2a761c6b17a..4c00c5c394f 100644
--- a/app/src/main/res/layout/administrator_controls_learner_analytics_view.xml
+++ b/app/src/main/res/layout/administrator_controls_learner_analytics_view.xml
@@ -22,7 +22,7 @@
android:paddingTop="28dp"
android:paddingEnd="16dp"
android:paddingBottom="20dp"
- android:text="@string/learner_analytics_label_text"
+ android:text="@string/administrator_controls_activity_learner_analytics_text"
android:textColor="@color/component_color_shared_active_text_color"
app:layout_constraintBottom_toTopOf="@id/profile_and_device_id_text_view"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/administrator_controls_profile_view.xml b/app/src/main/res/layout/administrator_controls_profile_view.xml
index b214eaa6d90..1650c3bf340 100644
--- a/app/src/main/res/layout/administrator_controls_profile_view.xml
+++ b/app/src/main/res/layout/administrator_controls_profile_view.xml
@@ -22,7 +22,7 @@
android:paddingTop="28dp"
android:paddingEnd="@dimen/administrator_controls_profile_view_profile_management_text_view_padding_end"
android:paddingBottom="20dp"
- android:text="@string/administrator_controls_profile_management_label"
+ android:text="@string/administrator_controls_fragment_profile_management_label"
android:textColor="@color/component_color_shared_active_text_color"
app:layout_constraintBottom_toTopOf="@id/edit_profiles_text_view"
app:layout_constraintEnd_toEndOf="parent"
@@ -39,7 +39,7 @@
android:paddingTop="20dp"
android:paddingEnd="@dimen/administrator_controls_profile_view_edit_profiles_text_view_padding_end"
android:paddingBottom="20dp"
- android:text="@string/administrator_controls_edit_profiles"
+ android:text="@string/administrator_controls_fragment_edit_profiles_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/all_topics.xml b/app/src/main/res/layout/all_topics.xml
index 6d6d101d3dd..38ab9601e7d 100644
--- a/app/src/main/res/layout/all_topics.xml
+++ b/app/src/main/res/layout/all_topics.xml
@@ -22,7 +22,7 @@
android:layout_marginEnd="@dimen/all_topics_text_margin_end"
android:layout_marginBottom="@dimen/all_topics_text_margin_bottom"
android:fontFamily="sans-serif-medium"
- android:text="@string/select_a_topic_to_start"
+ android:text="@string/home_activity_all_topics_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="18sp" />
diff --git a/app/src/main/res/layout/app_language_activity.xml b/app/src/main/res/layout/app_language_activity.xml
index cc731dac72d..9ea35764481 100644
--- a/app/src/main/res/layout/app_language_activity.xml
+++ b/app/src/main/res/layout/app_language_activity.xml
@@ -22,7 +22,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/app_language_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/app_version_activity.xml b/app/src/main/res/layout/app_version_activity.xml
index 7a81c2647a2..f7f85e8e535 100644
--- a/app/src/main/res/layout/app_version_activity.xml
+++ b/app/src/main/res/layout/app_version_activity.xml
@@ -22,10 +22,10 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:textSize="20sp"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
- app:title="@string/administrator_controls_app_version"
+ app:title="@string/administrator_controls_fragment_app_version_text"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/app_version_fragment.xml b/app/src/main/res/layout/app_version_fragment.xml
index 32ddf6d236f..5ef839682a2 100644
--- a/app/src/main/res/layout/app_version_fragment.xml
+++ b/app/src/main/res/layout/app_version_fragment.xml
@@ -41,7 +41,7 @@
app:layout_constraintTop_toTopOf="@id/app_last_update_date_text_view"
app:srcCompat="@drawable/ic_info_icon_gray_24dp"
app:tint="@color/component_color_app_version_activity_info_icon_color"
- android:contentDescription="@string/app_info_icon_content_description" />
+ android:contentDescription="@string/app_version_fragment_app_info_icon_description" />
diff --git a/app/src/main/res/layout/beta_notice_dialog_content.xml b/app/src/main/res/layout/beta_notice_dialog_content.xml
index 8a5a5a39b6f..354ca63962f 100755
--- a/app/src/main/res/layout/beta_notice_dialog_content.xml
+++ b/app/src/main/res/layout/beta_notice_dialog_content.xml
@@ -13,7 +13,7 @@
android:layout_height="wrap_content"
android:autoLink="email"
android:fontFamily="sans-serif"
- android:text="@string/beta_notice_dialog_message"
+ android:text="@string/beta_notice_dialog_message_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textColorLink="@color/component_color_shared_link_text_color"
android:textSize="16sp"
@@ -28,7 +28,7 @@
android:buttonTint="@color/component_color_shared_checkbox_selector"
android:fontFamily="sans-serif"
android:minHeight="48dp"
- android:text="@string/beta_notice_dialog_do_not_show_again_text"
+ android:text="@string/beta_notice_dialog_preference_checkbox_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/layout/bottom_left_overlay.xml b/app/src/main/res/layout/bottom_left_overlay.xml
index d716c007616..4228b3677a3 100644
--- a/app/src/main/res/layout/bottom_left_overlay.xml
+++ b/app/src/main/res/layout/bottom_left_overlay.xml
@@ -26,7 +26,7 @@
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_rounded_arrow_up_right"
app:tint="@color/component_color_shared_spotlight_overlay_arrow_color"
- android:contentDescription="@string/spotlight_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_close_button_content_description" />
diff --git a/app/src/main/res/layout/bottom_right_overlay.xml b/app/src/main/res/layout/bottom_right_overlay.xml
index 9e300abdf98..7e7048c1371 100644
--- a/app/src/main/res/layout/bottom_right_overlay.xml
+++ b/app/src/main/res/layout/bottom_right_overlay.xml
@@ -27,7 +27,7 @@
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_rounded_arrow_up_right"
app:tint="@color/component_color_shared_spotlight_overlay_arrow_color"
- android:contentDescription="@string/spotlight_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_close_button_content_description" />
diff --git a/app/src/main/res/layout/bottom_sheet_options_menu_fragment.xml b/app/src/main/res/layout/bottom_sheet_options_menu_fragment.xml
index fe98ab51455..029f7f478b2 100644
--- a/app/src/main/res/layout/bottom_sheet_options_menu_fragment.xml
+++ b/app/src/main/res/layout/bottom_sheet_options_menu_fragment.xml
@@ -18,7 +18,7 @@
android:drawableTint="@color/component_color_shared_multipane_icon_color"
android:gravity="center_vertical"
android:minHeight="48dp"
- android:text="@string/menu_options"
+ android:text="@string/menu_options_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
android:textSize="20sp"
app:drawableStartCompat="@drawable/ic_options_icon_grey_24dp" />
@@ -31,7 +31,7 @@
android:drawableTint="@color/component_color_shared_multipane_icon_color"
android:gravity="center_vertical"
android:minHeight="48dp"
- android:text="@string/menu_help"
+ android:text="@string/menu_help_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
android:textSize="20sp"
app:drawableStartCompat="@drawable/ic_baseline_help_outline_24" />
@@ -44,7 +44,7 @@
android:drawableTint="@color/component_color_shared_multipane_icon_color"
android:gravity="center_vertical"
android:minHeight="48dp"
- android:text="@string/bottom_sheet_options_menu_close"
+ android:text="@string/exploration_activity_options_menu_close_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
android:textSize="20sp"
app:drawableStartCompat="@drawable/ic_baseline_close_24" />
diff --git a/app/src/main/res/layout/cellular_data_dialog.xml b/app/src/main/res/layout/cellular_data_dialog.xml
index 5715d0370e0..b93a28c80f6 100755
--- a/app/src/main/res/layout/cellular_data_dialog.xml
+++ b/app/src/main/res/layout/cellular_data_dialog.xml
@@ -15,7 +15,7 @@
android:paddingTop="@dimen/cellular_data_dialog_padding"
android:paddingEnd="16dp"
android:paddingBottom="@dimen/cellular_data_dialog_padding"
- android:text="@string/cellular_data_alert_dialog_checkbox"
+ android:text="@string/cellular_audio_dialog_checkboxes_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/completed_story_list_fragment.xml b/app/src/main/res/layout/completed_story_list_fragment.xml
index c1d2f5c0a9b..c964abe9beb 100644
--- a/app/src/main/res/layout/completed_story_list_fragment.xml
+++ b/app/src/main/res/layout/completed_story_list_fragment.xml
@@ -30,7 +30,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/completed_story_list_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance"
@@ -56,7 +56,7 @@
android:paddingEnd="@dimen/completed_story_list_fragment_recyclerview_padding_end"
android:paddingBottom="@dimen/completed_story_list_fragment_recyclerview_padding_bottom"
android:scrollbars="none"
- android:tag="@string/completed_story_list_recyclerview_tag"
+ android:tag="@string/completed_story_list_fragment_recyclerview_tag"
app:data="@{viewModel.completedStoryListLiveData}" />
diff --git a/app/src/main/res/layout/concept_card_fragment_test_activity.xml b/app/src/main/res/layout/concept_card_fragment_test_activity.xml
index 9f8586d5570..0f016c79b0d 100644
--- a/app/src/main/res/layout/concept_card_fragment_test_activity.xml
+++ b/app/src/main/res/layout/concept_card_fragment_test_activity.xml
@@ -7,13 +7,13 @@
android:id="@+id/open_dialog_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/concept_card_one_button_text"
+ android:text="@string/concept_card_test_activity_button_one_text"
android:textAllCaps="false"/>
diff --git a/app/src/main/res/layout/continue_interaction_item.xml b/app/src/main/res/layout/continue_interaction_item.xml
index 5ebab739f3d..318b1c98eb4 100644
--- a/app/src/main/res/layout/continue_interaction_item.xml
+++ b/app/src/main/res/layout/continue_interaction_item.xml
@@ -47,7 +47,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/component_color_shared_back_forward_arrow_button_color"
- android:contentDescription="@string/previous_state_navigation_button_content_description" />
+ android:contentDescription="@string/state_fragment_previous_navigation_button_description" />
+ android:contentDescription="@string/state_fragment_previous_navigation_button_description" />
diff --git a/app/src/main/res/layout/drawer_fragment.xml b/app/src/main/res/layout/drawer_fragment.xml
index 31558550a83..10a3d346aa4 100644
--- a/app/src/main/res/layout/drawer_fragment.xml
+++ b/app/src/main/res/layout/drawer_fragment.xml
@@ -68,7 +68,7 @@
android:layout_gravity="center_vertical"
app:srcCompat="@drawable/ic_baseline_code_24"
android:tint="@{footerViewModel.isDeveloperOptionsSelected ? @color/component_color_drawer_fragment_developer_options_selected_image_color : @color/component_color_shared_primary_dark_text_color}"
- android:contentDescription="@string/developer_options_icon_content_description" />
+ android:contentDescription="@string/navigation_drawer_fragment_developer_options_icon_description" />
@@ -100,7 +100,7 @@
android:layout_gravity="center_vertical"
android:tint="@{footerViewModel.isAdministratorControlsSelected ? @color/component_color_drawer_fragment_admin_controls_selected_image_color : @color/component_color_shared_primary_dark_text_color}"
app:srcCompat="@drawable/ic_admin_settings_icon_brown_24dp"
- android:contentDescription="@string/administrator_controls_icon_content_description" />
+ android:contentDescription="@string/navigation_drawer_fragment_administrator_controls_icon_description" />
diff --git a/app/src/main/res/layout/exploration_activity.xml b/app/src/main/res/layout/exploration_activity.xml
index 39d0e3356dc..4c14d79d0b7 100755
--- a/app/src/main/res/layout/exploration_activity.xml
+++ b/app/src/main/res/layout/exploration_activity.xml
@@ -51,7 +51,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_gravity="end"
- android:contentDescription="@{viewModel.isAudioStreamingOn ? @string/audio_player_on : @string/audio_player_off}"
+ android:contentDescription="@{viewModel.isAudioStreamingOn ? @string/exploration_activity_audio_player_on_text : @string/exploration_activity_audio_player_off_text}"
android:scaleType="center"
android:visibility="@{viewModel.showAudioButton ? View.VISIBLE : View.GONE}"
app:srcCompat="@{viewModel.isAudioStreamingOn ? @drawable/ic_baseline_headset_24 : @drawable/ic_baseline_headset_off_24}" />
diff --git a/app/src/main/res/layout/exploration_test_activity.xml b/app/src/main/res/layout/exploration_test_activity.xml
index 19a0bc3a9c5..8aef0e682c9 100644
--- a/app/src/main/res/layout/exploration_test_activity.xml
+++ b/app/src/main/res/layout/exploration_test_activity.xml
@@ -10,7 +10,7 @@
android:id="@+id/play_exploration_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/play_exploration_button_text"
+ android:text="@string/exploration_activity_play_button_text"
android:textAllCaps="false"/>
diff --git a/app/src/main/res/layout/faq_single_activity.xml b/app/src/main/res/layout/faq_single_activity.xml
index 57ff8b42939..e2ca1e5d67c 100644
--- a/app/src/main/res/layout/faq_single_activity.xml
+++ b/app/src/main/res/layout/faq_single_activity.xml
@@ -23,7 +23,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/force_network_type_fragment.xml b/app/src/main/res/layout/force_network_type_fragment.xml
index 52f3c74d35b..024b4bdfd02 100644
--- a/app/src/main/res/layout/force_network_type_fragment.xml
+++ b/app/src/main/res/layout/force_network_type_fragment.xml
@@ -31,7 +31,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:textSize="20sp"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/developer_options_force_network_type"
diff --git a/app/src/main/res/layout/hint_summary.xml b/app/src/main/res/layout/hint_summary.xml
index f25a4fa3774..750ba2f0bfd 100644
--- a/app/src/main/res/layout/hint_summary.xml
+++ b/app/src/main/res/layout/hint_summary.xml
@@ -77,7 +77,7 @@
android:paddingTop="8dp"
android:paddingEnd="16dp"
android:paddingBottom="8dp"
- android:text="@string/reveal_hint"
+ android:text="@string/hint_solution_dialog_reveal_hint_text"
android:textColor="@color/component_color_hints_and_solution_summary_button_text_color"
android:textSize="14sp"
android:textAllCaps="false"
@@ -98,7 +98,7 @@
android:layout_marginEnd="8dp"
android:layout_marginBottom="4dp"
android:background="@color/component_color_shared_transparent_background_color"
- android:contentDescription="@{isListExpanded? @string/hide_hint : @string/reveal_hint}"
+ android:contentDescription="@{isListExpanded? @string/hint_solution_dialog_hide_hint_description : @string/hint_solution_dialog_reveal_hint_text}"
android:minWidth="48dp"
android:minHeight="48dp"
android:padding="8dp"
diff --git a/app/src/main/res/layout/hints_and_solution_fragment.xml b/app/src/main/res/layout/hints_and_solution_fragment.xml
index e1d9dba6d20..80bcff2317a 100644
--- a/app/src/main/res/layout/hints_and_solution_fragment.xml
+++ b/app/src/main/res/layout/hints_and_solution_fragment.xml
@@ -30,7 +30,7 @@
android:background="@color/component_color_hints_and_solutions_fragment_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:title="@string/hints_toolbar_title"
+ app:title="@string/state_fragment_hint_bar_title"
app:titleTextAppearance="@style/ToolbarTextAppearance"
app:titleTextColor="@color/component_color_shared_activity_toolbar_text_color" />
diff --git a/app/src/main/res/layout/license_text_viewer_activity.xml b/app/src/main/res/layout/license_text_viewer_activity.xml
index 27ae57ad76a..8cb0184e35a 100644
--- a/app/src/main/res/layout/license_text_viewer_activity.xml
+++ b/app/src/main/res/layout/license_text_viewer_activity.xml
@@ -21,7 +21,7 @@
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator">
+ android:contentDescription="@string/state_fragment_previous_button_description" />
+ android:contentDescription="@string/state_fragment_next_button_description" />
diff --git a/app/src/main/res/layout/numeric_input_interaction_item.xml b/app/src/main/res/layout/numeric_input_interaction_item.xml
index 2666f370985..27326e6b504 100644
--- a/app/src/main/res/layout/numeric_input_interaction_item.xml
+++ b/app/src/main/res/layout/numeric_input_interaction_item.xml
@@ -24,7 +24,7 @@
android:id="@+id/numeric_input_interaction_view"
style="@style/InputInteractionEditText"
android:digits="0123456789.-"
- android:hint="@string/numeric_input_hint"
+ android:hint="@string/state_fragment_numeric_input_interaction_hint"
android:inputType="numberDecimal"
android:text="@={viewModel.answerText}"
android:textColorHint="@color/component_color_shared_edit_text_hint_color"
diff --git a/app/src/main/res/layout/onboarding_fragment.xml b/app/src/main/res/layout/onboarding_fragment.xml
index d8e747840c3..ab5b9dbd2c9 100644
--- a/app/src/main/res/layout/onboarding_fragment.xml
+++ b/app/src/main/res/layout/onboarding_fragment.xml
@@ -67,7 +67,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="20dp"
- android:contentDescription="@string/next_arrow"
+ android:contentDescription="@string/onboarding_activity_next_arrow_text"
android:gravity="center"
android:minWidth="48dp"
android:minHeight="48dp"
@@ -87,7 +87,7 @@
android:minWidth="48dp"
android:minHeight="48dp"
android:onClick="@{(v) -> presenter.clickOnSkip()}"
- android:text="@string/skip"
+ android:text="@string/onboarding_activity_skip_text"
android:textAllCaps="true"
android:textColor="@color/component_color_shared_primary_text_color"
android:visibility="@{viewModel.slideNumber != (viewModel.totalNumberOfSlides - 1) ? View.VISIBLE: View.GONE, default=visible}"
diff --git a/app/src/main/res/layout/onboarding_slide_final.xml b/app/src/main/res/layout/onboarding_slide_final.xml
index ee4bc712c2b..84bc48fa59e 100644
--- a/app/src/main/res/layout/onboarding_slide_final.xml
+++ b/app/src/main/res/layout/onboarding_slide_final.xml
@@ -45,7 +45,7 @@
android:layout_marginBottom="16dp"
android:fontFamily="sans-serif-medium"
android:gravity="center_horizontal"
- android:text="@string/onboarding_slide_3_title"
+ android:text="@string/onboarding_activity_slide_3_title"
android:textColor="@color/component_color_shared_primary_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -60,7 +60,7 @@
android:layout_marginEnd="48dp"
android:maxLines="2"
android:minLines="2"
- android:text="@string/onboarding_slide_3_description"
+ android:text="@string/onboarding_activity_slide_3_description"
android:textColor="@color/component_color_shared_secondary_1_text_color"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -78,7 +78,7 @@
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
android:onClick="@{(v) -> viewModel.clickOnGetStarted()}"
- android:text="@string/get_started"
+ android:text="@string/onboarding_activity_get_started_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
android:textAllCaps="false"
diff --git a/app/src/main/res/layout/ongoing_topic_list_fragment.xml b/app/src/main/res/layout/ongoing_topic_list_fragment.xml
index d30aaf063cc..d37dc6b9fcb 100644
--- a/app/src/main/res/layout/ongoing_topic_list_fragment.xml
+++ b/app/src/main/res/layout/ongoing_topic_list_fragment.xml
@@ -30,9 +30,9 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
- app:title="@string/topics_in_progress"
+ app:title="@string/ongoing_topic_list_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance"
app:titleTextColor="@color/component_color_shared_activity_toolbar_text_color" />
@@ -56,7 +56,7 @@
android:paddingEnd="@dimen/ongoing_topic_list_fragment_padding_end"
android:paddingBottom="@dimen/ongoing_topic_list_fragment_padding_bottom"
android:scrollbars="none"
- android:tag="@string/ongoing_recycler_view_tag"
+ android:tag="@string/ongoing_topic_list_fragment_recycler_view_tag"
app:data="@{viewModel.ongoingTopicListViewModelLiveData}" />
@@ -88,7 +88,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="12dp"
- android:text="@{viewModel.profile.isAdmin ? @string/pin_password_admin_enter : @string/pin_password_user_enter}"
+ android:text="@{viewModel.profile.isAdmin ? @string/pin_password_activity_enter_text : @string/pin_password_activity_user_enter_text}"
android:textColor="@color/component_color_shared_secondary_2_text_color"
app:layout_constraintEnd_toEndOf="@+id/hello_text_view"
app:layout_constraintStart_toStartOf="@+id/hello_text_view"
@@ -108,7 +108,7 @@
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
- android:hint="@{viewModel.profile.isAdmin ? @string/input_pin_password_as_admin : @string/input_pin_password_as_user}"
+ android:hint="@{viewModel.profile.isAdmin ? @string/pin_password_activity_admin_input_pin_text : @string/pin_password_activity_user_input_pin_text}"
android:minHeight="56dp"
app:errorMessage="@{viewModel.errorMessage}"
app:layout_constraintEnd_toStartOf="@id/show_pin"
@@ -134,7 +134,7 @@
android:layout_marginTop="24dp"
android:minHeight="48dp"
android:paddingTop="8dp"
- android:text="@string/pin_password_forgot_pin"
+ android:text="@string/pin_password_activity_forgot_pin_text"
android:textAllCaps="true"
android:textColor="@color/component_color_pin_password_activity_forgot_pin_color"
app:layout_constraintEnd_toEndOf="parent"
@@ -160,7 +160,7 @@
android:layout_width="32dp"
android:layout_height="32dp"
android:layout_gravity="center_horizontal"
- android:contentDescription="@{viewModel.showPassword ? @string/password_shown_icon : @string/password_hidden_icon}"
+ android:contentDescription="@{viewModel.showPassword ? @string/pin_password_activity_shown_icon_content_description : @string/pin_password_activity_hidden_icon_content_description}"
app:srcCompat="@{viewModel.showPassword ? @drawable/ic_show_eye_icon : @drawable/ic_hide_eye_icon}"
app:tint="@color/component_color_pin_password_activity_show_hide_color" />
@@ -172,7 +172,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="4dp"
android:fontFamily="sans-serif-medium"
- android:text="@{viewModel.showPassword ? @string/pin_password_hide : @string/pin_password_show}"
+ android:text="@{viewModel.showPassword ? @string/pin_password_activity_hide_pin_text : @string/pin_password_activity_show_pin_text}"
android:textAllCaps="true"
android:textColor="@color/component_color_pin_password_activity_show_hide_color"
android:textSize="12sp" />
diff --git a/app/src/main/res/layout/policies_activity.xml b/app/src/main/res/layout/policies_activity.xml
index 2dd1a2dc8e0..2374db79cd8 100644
--- a/app/src/main/res/layout/policies_activity.xml
+++ b/app/src/main/res/layout/policies_activity.xml
@@ -21,7 +21,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="@drawable/ic_arrow_back_white_24dp"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/previous_button_item.xml b/app/src/main/res/layout/previous_button_item.xml
index 38865b2aac9..00ab3f85d30 100644
--- a/app/src/main/res/layout/previous_button_item.xml
+++ b/app/src/main/res/layout/previous_button_item.xml
@@ -45,6 +45,6 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/component_color_shared_back_forward_arrow_button_color"
- android:contentDescription="@string/previous_button_content_description" />
+ android:contentDescription="@string/state_fragment_previous_button_description" />
diff --git a/app/src/main/res/layout/profile_and_device_id_activity.xml b/app/src/main/res/layout/profile_and_device_id_activity.xml
index 89e0702eebd..e72631df05e 100644
--- a/app/src/main/res/layout/profile_and_device_id_activity.xml
+++ b/app/src/main/res/layout/profile_and_device_id_activity.xml
@@ -22,7 +22,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:textSize="20sp"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/profile_and_device_id_activity_title"
diff --git a/app/src/main/res/layout/profile_chooser_add_view.xml b/app/src/main/res/layout/profile_chooser_add_view.xml
index a9d528a2c4e..ef53182da14 100644
--- a/app/src/main/res/layout/profile_chooser_add_view.xml
+++ b/app/src/main/res/layout/profile_chooser_add_view.xml
@@ -53,7 +53,7 @@
+ android:contentDescription="@string/profile_chooser_fragment_language_icon_description" />
@@ -103,7 +103,7 @@
style="@style/Subtitle1ViewCenter"
android:layout_marginBottom="24dp"
android:minHeight="48dp"
- android:text="@string/profile_chooser_administrator_controls"
+ android:text="@string/profile_chooser_fragment_administrator_controls_text"
android:textColor="@color/component_color_profile_chooser_activity_secondary_options_color" />
+ android:contentDescription="@string/profile_chooser_fragment_setting_icon_description" />
diff --git a/app/src/main/res/layout/profile_chooser_profile_view.xml b/app/src/main/res/layout/profile_chooser_profile_view.xml
index 2a3fdfb8881..20b42980c07 100644
--- a/app/src/main/res/layout/profile_chooser_profile_view.xml
+++ b/app/src/main/res/layout/profile_chooser_profile_view.xml
@@ -84,7 +84,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/profile_chooser_profile_view_is_admin_margin_top"
android:gravity="@{hasProfileEverBeenAddedValue ? Gravity.CENTER_HORIZONTAL : Gravity.CENTER_VERTICAL}"
- android:text="@string/profile_chooser_admin"
+ android:text="@string/profile_chooser_fragment_admin_text"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:visibility="@{viewModel.profile.isAdmin ? View.VISIBLE : View.GONE}" />
diff --git a/app/src/main/res/layout/profile_edit_activity.xml b/app/src/main/res/layout/profile_edit_activity.xml
index 37cf5d2bfe2..92c79100f17 100644
--- a/app/src/main/res/layout/profile_edit_activity.xml
+++ b/app/src/main/res/layout/profile_edit_activity.xml
@@ -22,7 +22,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:textSize="20sp"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/profile_edit_fragment.xml b/app/src/main/res/layout/profile_edit_fragment.xml
index 6bcf79c0286..7e88a038a3e 100644
--- a/app/src/main/res/layout/profile_edit_fragment.xml
+++ b/app/src/main/res/layout/profile_edit_fragment.xml
@@ -88,7 +88,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_rename"
+ android:text="@string/profile_edit_activity_rename_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
@@ -107,7 +107,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_reset"
+ android:text="@string/profile_edit_activity_reset_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
@@ -126,7 +126,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_mark_chapter_completion"
+ android:text="@string/profile_edit_activity_mark_chapters_for_completion_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
@@ -156,7 +156,7 @@
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="24dp"
- android:text="@string/profile_edit_enable_quick_lesson_language_switching_label"
+ android:text="@string/profile_edit_activity_switching_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_enable_in_lesson_language_switching_switch"
@@ -173,7 +173,7 @@
android:paddingStart="16dp"
android:paddingEnd="24dp"
android:paddingBottom="12dp"
- android:text="@string/profile_edit_enable_quick_lesson_language_switching_explanation"
+ android:text="@string/profile_edit_activity_switching_label_text"
android:textColor="@color/component_color_shared_secondary_3_text_color"
android:textSize="14sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_enable_in_lesson_language_switching_switch"
@@ -217,7 +217,7 @@
android:paddingStart="16dp"
android:paddingTop="12dp"
android:paddingEnd="24dp"
- android:text="@string/profile_edit_allow_download_heading"
+ android:text="@string/profile_edit_activity_allow_download_heading"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_allow_download_switch"
@@ -234,7 +234,7 @@
android:paddingStart="16dp"
android:paddingEnd="24dp"
android:paddingBottom="12dp"
- android:text="@string/profile_edit_allow_download_sub"
+ android:text="@string/profile_edit_activity_allow_download_sub"
android:textColor="@color/component_color_shared_secondary_3_text_color"
android:textSize="14sp"
app:layout_constraintEnd_toStartOf="@+id/profile_edit_allow_download_switch"
@@ -269,7 +269,7 @@
android:minHeight="48dp"
android:paddingStart="16dp"
android:paddingEnd="16dp"
- android:text="@string/profile_edit_delete"
+ android:text="@string/profile_edit_activity_delete_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_profile_edit_activity_delete_button_text_color"
android:textSize="16sp"
diff --git a/app/src/main/res/layout/profile_list_fragment.xml b/app/src/main/res/layout/profile_list_fragment.xml
index edbeb1d6cbc..409124a52e0 100644
--- a/app/src/main/res/layout/profile_list_fragment.xml
+++ b/app/src/main/res/layout/profile_list_fragment.xml
@@ -29,7 +29,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/profile_list_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/profile_list_profile_view.xml b/app/src/main/res/layout/profile_list_profile_view.xml
index 12c57793c30..fb906d8e72b 100644
--- a/app/src/main/res/layout/profile_list_profile_view.xml
+++ b/app/src/main/res/layout/profile_list_profile_view.xml
@@ -56,7 +56,7 @@
android:layout_marginStart="20dp"
android:layout_marginEnd="20dp"
android:fontFamily="sans-serif"
- android:text="@string/profile_chooser_admin"
+ android:text="@string/profile_chooser_fragment_admin_text"
android:textColor="@color/component_color_profile_list_activity_profile_view_designation_text_color"
android:textSize="12sp"
android:textStyle="italic"
diff --git a/app/src/main/res/layout/profile_picture_activity.xml b/app/src/main/res/layout/profile_picture_activity.xml
index 82932006341..496ff44fc0a 100644
--- a/app/src/main/res/layout/profile_picture_activity.xml
+++ b/app/src/main/res/layout/profile_picture_activity.xml
@@ -31,7 +31,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:textSize="20sp"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/profile_picture_activity_title"
@@ -49,7 +49,7 @@
app:layout_constraintTop_toBottomOf="@id/profile_picture_activity_app_bar_layout"
profile:src="@{viewModel.profileAvatar}"
tools:src="@drawable/ic_default_avatar"
- android:contentDescription="@string/profile_picture_image_view_content_description" />
+ android:contentDescription="@string/profile_picture_activity_profile_picture_description" />
@@ -28,7 +28,7 @@
android:fontFamily="sans-serif"
android:paddingTop="12dp"
android:paddingBottom="16dp"
- android:text="@string/profile_picture_edit_alert_dialog_choose_from_library"
+ android:text="@string/profile_picture_edit_dialog_change_picture_text"
android:textColor="@color/component_color_shared_primary_dark_text_color"
android:textSize="16sp" />
diff --git a/app/src/main/res/layout/profile_progress_header.xml b/app/src/main/res/layout/profile_progress_header.xml
index b00c0202333..7a3d6c7188b 100644
--- a/app/src/main/res/layout/profile_progress_header.xml
+++ b/app/src/main/res/layout/profile_progress_header.xml
@@ -25,7 +25,7 @@
android:layout_width="100dp"
android:layout_height="100dp"
android:clickable="true"
- android:contentDescription="@string/current_profile_picture_content_description"
+ android:contentDescription="@string/add_profile_activity_edit_image_content_description"
android:elevation="4dp"
android:focusable="true"
android:onClick="@{() -> viewModel.clickOnProfilePicture()}"
@@ -40,7 +40,7 @@
@@ -161,7 +161,7 @@
android:layout_height="wrap_content"
android:fontFamily="sans-serif"
android:minWidth="60dp"
- android:text="@{viewModel.completedStoryCount != 1 ? @string/stories_completed : @string/story_completed}"
+ android:text="@{viewModel.completedStoryCount != 1 ? @string/profile_progress_activity_stories_completed_text : @string/profile_progress_activity_story_completed_text}"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="12sp" />
@@ -176,7 +176,7 @@
android:layout_marginTop="64dp"
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
- android:text="@string/recently_played_stories"
+ android:text="@string/home_activity_recently_played_stories"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="18sp"
android:visibility="@{viewModel.headerTextVisibility}"
@@ -195,7 +195,7 @@
android:fontFamily="sans-serif-medium"
android:minHeight="48dp"
android:onClick="@{() -> viewModel.clickOnViewAll()}"
- android:text="@string/view_all"
+ android:text="@string/home_activity_view_all_text"
android:textAllCaps="true"
android:textColor="@color/component_color_profile_progress_activity_view_all_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout/profile_rename_activity.xml b/app/src/main/res/layout/profile_rename_activity.xml
index 8e480b44eb0..bde248fd3aa 100644
--- a/app/src/main/res/layout/profile_rename_activity.xml
+++ b/app/src/main/res/layout/profile_rename_activity.xml
@@ -22,7 +22,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/profile_rename_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/profile_rename_fragment.xml b/app/src/main/res/layout/profile_rename_fragment.xml
index 2c78c153a4b..b8cc4a32f76 100644
--- a/app/src/main/res/layout/profile_rename_fragment.xml
+++ b/app/src/main/res/layout/profile_rename_fragment.xml
@@ -33,7 +33,7 @@
android:layout_marginStart="@dimen/profile_rename_activity_profile_rename_input_margin_start"
android:layout_marginTop="@dimen/profile_rename_activity_profile_rename_input_margin_top"
android:layout_marginEnd="@dimen/profile_rename_activity_profile_rename_input_margin_end"
- android:hint="@string/profile_rename_label"
+ android:hint="@string/profile_rename_activity_rename_input_hint"
app:errorMessage="@{viewModel.nameErrorMsg}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -60,7 +60,7 @@
android:background="@{viewModel.inputName.length > 0 ? @drawable/state_button_primary_background : @drawable/start_button_transparent_background}"
android:clickable="@{viewModel.inputName.length > 0}"
android:enabled="@{viewModel.inputName.length > 0}"
- android:text="@string/profile_rename_save"
+ android:text="@string/profile_rename_activity_rename_save_button"
android:textColor="@{viewModel.inputName.length > 0 ? @color/component_color_shared_secondary_4_text_color : @color/component_color_shared_button_inactive_text_color }"
android:textSize="14sp"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/profile_reset_pin_activity.xml b/app/src/main/res/layout/profile_reset_pin_activity.xml
index e0db12b742a..65aef56b5db 100644
--- a/app/src/main/res/layout/profile_reset_pin_activity.xml
+++ b/app/src/main/res/layout/profile_reset_pin_activity.xml
@@ -23,7 +23,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/profile_reset_pin_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/profile_reset_pin_fragment.xml b/app/src/main/res/layout/profile_reset_pin_fragment.xml
index 009f5ca5388..a472f00f879 100644
--- a/app/src/main/res/layout/profile_reset_pin_fragment.xml
+++ b/app/src/main/res/layout/profile_reset_pin_fragment.xml
@@ -39,7 +39,7 @@
android:layout_marginTop="36dp"
android:paddingStart="@dimen/profile_reset_pin_activity_profile_reset_pin_main_padding_start"
android:paddingEnd="@dimen/profile_reset_pin_activity_profile_reset_pin_main_padding_end"
- android:text="@string/profile_reset_pin_main"
+ android:text="@string/profile_reset_pin_fragment_reset_pin_main_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -54,7 +54,7 @@
android:layout_marginStart="@dimen/profile_reset_pin_activity_profile_reset_input_pin_margin_start"
android:layout_marginTop="@dimen/profile_reset_pin_activity_profile_reset_input_pin_margin_top"
android:layout_marginEnd="@dimen/profile_reset_pin_activity_profile_reset_input_pin_margin_end"
- android:hint="@{viewModel.isAdmin ? @string/profile_reset_pin_admin_pin_label : @string/profile_reset_pin_user_pin_label}"
+ android:hint="@{viewModel.isAdmin ? @string/profile_reset_pin_fragment_admin_pin_text : @string/profile_reset_pin_fragment_user_pin_text}"
app:errorMessage="@{viewModel.pinErrorMsg}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -78,7 +78,7 @@
android:layout_marginStart="@dimen/profile_reset_pin_activity_profile_reset_input_confirm_pin_margin_start"
android:layout_marginTop="@dimen/profile_reset_pin_activity_profile_reset_input_confirm_pin_margin_top"
android:layout_marginEnd="@dimen/profile_reset_pin_activity_profile_reset_input_confirm_pin_margin_end"
- android:hint="@{viewModel.isAdmin ? @string/profile_reset_pin_admin_confirm_label : @string/profile_reset_pin_user_confirm_label}"
+ android:hint="@{viewModel.isAdmin ? @string/profile_reset_pin_fragment_admin_confirm_text : @string/profile_reset_pin_fragment_user_confirm_text}"
app:errorMessage="@{viewModel.confirmErrorMsg}"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
@@ -104,7 +104,7 @@
android:background="@{viewModel.isButtonActive() ? @drawable/state_button_primary_background : @drawable/start_button_transparent_background}"
android:clickable="@{viewModel.isButtonActive()}"
android:enabled="@{viewModel.isButtonActive()}"
- android:text="@string/profile_rename_save"
+ android:text="@string/profile_rename_activity_rename_save_button"
android:textColor="@{viewModel.isButtonActive() ? @color/component_color_shared_secondary_4_text_color : @color/component_color_shared_button_inactive_text_color }"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/profile_reset_input_confirm_pin" />
diff --git a/app/src/main/res/layout/promoted_story_list.xml b/app/src/main/res/layout/promoted_story_list.xml
index 786d5a0d4ca..da042ab8982 100644
--- a/app/src/main/res/layout/promoted_story_list.xml
+++ b/app/src/main/res/layout/promoted_story_list.xml
@@ -46,7 +46,7 @@
android:gravity="center_vertical"
android:minHeight="48dp"
android:onClick="@{() -> viewModel.clickOnViewAll()}"
- android:text="@string/view_all"
+ android:text="@string/home_activity_view_all_text"
android:textAllCaps="true"
android:textColor="@color/component_color_home_activity_view_all_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout/question_player_activity.xml b/app/src/main/res/layout/question_player_activity.xml
index 3f48a39174c..deb9fcc7866 100644
--- a/app/src/main/res/layout/question_player_activity.xml
+++ b/app/src/main/res/layout/question_player_activity.xml
@@ -24,7 +24,7 @@
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
app:navigationIcon="@drawable/ic_close_white_24dp"
- app:title="@string/question_player_title"
+ app:title="@string/exploration_activity_question_player_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/question_player_fragment.xml b/app/src/main/res/layout/question_player_fragment.xml
index 0cf3ffeec1b..2297258519f 100644
--- a/app/src/main/res/layout/question_player_fragment.xml
+++ b/app/src/main/res/layout/question_player_fragment.xml
@@ -29,7 +29,7 @@
android:layout_marginTop="28dp"
android:layout_marginEnd="28dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_header"
+ android:text="@string/topic_fragment_question_end_session_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp"
android:visibility="gone"
@@ -44,7 +44,7 @@
android:layout_marginTop="8dp"
android:layout_marginEnd="28dp"
android:fontFamily="sans-serif"
- android:text="@string/question_training_session_finished_message"
+ android:text="@string/topic_fragment_question_end_session_body_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="16sp"
android:visibility="gone"
@@ -127,7 +127,7 @@
android:layout_height="6dp"
android:layout_gravity="top|end"
android:layout_margin="8dp"
- android:contentDescription="@string/new_hint_available"
+ android:contentDescription="@string/question_player_activity_new_hint_available_text"
android:visibility="@{viewModel.isHintOpenedAndUnRevealed() ? View.VISIBLE : View.GONE}"
app:srcCompat="@drawable/ic_dot_yellow_24dp" />
@@ -136,7 +136,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="12dp"
- android:contentDescription="@string/show_hints_and_solution"
+ android:contentDescription="@string/state_fragment_open_hint_content_description"
app:srcCompat="@drawable/ic_hint_bulb_white_24dp" />
diff --git a/app/src/main/res/layout/reading_text_size_activity.xml b/app/src/main/res/layout/reading_text_size_activity.xml
index b669ced61ed..0f74af478f1 100644
--- a/app/src/main/res/layout/reading_text_size_activity.xml
+++ b/app/src/main/res/layout/reading_text_size_activity.xml
@@ -20,9 +20,9 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
- app:title="@string/title_reading_text_size"
+ app:title="@string/reading_text_size_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/recently_played_activity.xml b/app/src/main/res/layout/recently_played_activity.xml
index 16da7a9042b..14247d62950 100644
--- a/app/src/main/res/layout/recently_played_activity.xml
+++ b/app/src/main/res/layout/recently_played_activity.xml
@@ -22,9 +22,9 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
- app:title="@string/recently_played_activity"
+ app:title="@string/recently_played_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/replay_button_item.xml b/app/src/main/res/layout/replay_button_item.xml
index 83ac66ed6b7..dbe422b690a 100644
--- a/app/src/main/res/layout/replay_button_item.xml
+++ b/app/src/main/res/layout/replay_button_item.xml
@@ -26,7 +26,7 @@
android:onClick="@{(v) -> buttonViewModel.replayButtonListener.onReplayButtonClicked()}"
android:paddingStart="24dp"
android:paddingEnd="24dp"
- android:text="@string/lesson_replay_button_text"
+ android:text="@string/state_fragment_replay_button_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
diff --git a/app/src/main/res/layout/resume_lesson_activity.xml b/app/src/main/res/layout/resume_lesson_activity.xml
index f15c5c409b0..3948eeac9f0 100644
--- a/app/src/main/res/layout/resume_lesson_activity.xml
+++ b/app/src/main/res/layout/resume_lesson_activity.xml
@@ -21,7 +21,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:title="@string/resume_lesson_activity_title"
app:titleTextAppearance="@style/ToolbarTextAppearance" />
diff --git a/app/src/main/res/layout/resume_lesson_fragment.xml b/app/src/main/res/layout/resume_lesson_fragment.xml
index 9b07c7743ba..61acada3db5 100644
--- a/app/src/main/res/layout/resume_lesson_fragment.xml
+++ b/app/src/main/res/layout/resume_lesson_fragment.xml
@@ -95,7 +95,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/start_over_lesson_button"
+ android:text="@string/resume_lessons_fragment_start_over_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_button_background_trim_color"
android:textSize="14sp"
@@ -113,7 +113,7 @@
android:gravity="center"
android:minWidth="144dp"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/resume_lesson_button"
+ android:text="@string/resume_lessons_fragment_continue_button_text"
android:textAllCaps="false"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="14sp"
diff --git a/app/src/main/res/layout/return_to_lesson_button_item.xml b/app/src/main/res/layout/return_to_lesson_button_item.xml
index 7ad7a8b0826..f9b4849c3af 100644
--- a/app/src/main/res/layout/return_to_lesson_button_item.xml
+++ b/app/src/main/res/layout/return_to_lesson_button_item.xml
@@ -20,5 +20,5 @@
android:paddingTop="8dp"
android:paddingEnd="24dp"
android:paddingBottom="8dp"
- android:text="@string/return_to_lesson" />
+ android:text="@string/hint_solution_dialog_return_to_lesson_button" />
diff --git a/app/src/main/res/layout/return_to_topic_button_item.xml b/app/src/main/res/layout/return_to_topic_button_item.xml
index 1ac496459a9..324e8a646e4 100644
--- a/app/src/main/res/layout/return_to_topic_button_item.xml
+++ b/app/src/main/res/layout/return_to_topic_button_item.xml
@@ -28,7 +28,7 @@
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:tint="@color/component_color_shared_back_forward_arrow_button_color"
- android:contentDescription="@string/previous_button_content_description" />
+ android:contentDescription="@string/state_fragment_previous_button_description" />
diff --git a/app/src/main/res/layout/revision_card_activity.xml b/app/src/main/res/layout/revision_card_activity.xml
index be55a492996..9c06766ad5c 100644
--- a/app/src/main/res/layout/revision_card_activity.xml
+++ b/app/src/main/res/layout/revision_card_activity.xml
@@ -26,7 +26,7 @@
android:gravity="center_vertical"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator">
diff --git a/app/src/main/res/layout/splash_activity.xml b/app/src/main/res/layout/splash_activity.xml
index 14b1e498474..098e539333d 100644
--- a/app/src/main/res/layout/splash_activity.xml
+++ b/app/src/main/res/layout/splash_activity.xml
@@ -48,7 +48,7 @@
style="@style/Heading2ViewStart"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@{isOnAlphaFlavor ? @string/splash_screen_alpha_label : isOnBetaFlavor ? @string/splash_screen_beta_label : @string/splash_screen_developer_label}"
+ android:text="@{isOnAlphaFlavor ? @string/splash_activity_build_alpha_label : isOnBetaFlavor ? @string/splash_activity_build_beta_label : @string/splash_activity_build_developer_label}"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="24sp"
android:visibility="@{(isOnDeveloperFlavor || isOnAlphaFlavor || isOnBetaFlavor) ? View.VISIBLE : View.GONE}"
diff --git a/app/src/main/res/layout/spotlight_fragment_test_activity.xml b/app/src/main/res/layout/spotlight_fragment_test_activity.xml
index 371d51c0430..c57e8062a6d 100644
--- a/app/src/main/res/layout/spotlight_fragment_test_activity.xml
+++ b/app/src/main/res/layout/spotlight_fragment_test_activity.xml
@@ -15,7 +15,7 @@
android:id="@+id/sample_spotlight_target"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:text="@string/sample_text_view_text"
+ android:text="@string/spotlight_fragment_test_sample_view_text"
style="@style/TextViewStart"
android:layout_marginTop="80dp"
android:layout_marginStart="80dp"
diff --git a/app/src/main/res/layout/state_fragment.xml b/app/src/main/res/layout/state_fragment.xml
index dda21b4db6b..edfec47b8df 100755
--- a/app/src/main/res/layout/state_fragment.xml
+++ b/app/src/main/res/layout/state_fragment.xml
@@ -151,7 +151,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
- android:contentDescription="@{viewModel.isHintOpenedAndUnRevealed() ? @string/new_hint_available : @string/no_new_hint_available}"
+ android:contentDescription="@{viewModel.isHintOpenedAndUnRevealed() ? @string/question_player_activity_new_hint_available_text : @string/state_fragment_hint_bulb_content_description}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
@@ -162,7 +162,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
- android:text="@string/hints_toolbar_title"
+ android:text="@string/state_fragment_hint_bar_title"
android:textColor="@color/component_color_shared_secondary_4_text_color"
android:textSize="24sp"
app:layout_constraintBottom_toBottomOf="parent"
@@ -174,7 +174,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="8dp"
- android:contentDescription="@string/show_hints_and_solution"
+ android:contentDescription="@string/state_fragment_open_hint_content_description"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
diff --git a/app/src/main/res/layout/state_fragment_test_activity.xml b/app/src/main/res/layout/state_fragment_test_activity.xml
index 300bfc41478..8cc7a2d8fd6 100644
--- a/app/src/main/res/layout/state_fragment_test_activity.xml
+++ b/app/src/main/res/layout/state_fragment_test_activity.xml
@@ -31,7 +31,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
- android:text="@string/play_exploration_button_text"
+ android:text="@string/exploration_activity_play_button_text"
android:textAllCaps="false"
android:visibility="@{viewModel.hasExplorationStarted ? View.GONE : View.VISIBLE}" />
diff --git a/app/src/main/res/layout/story_chapter_view.xml b/app/src/main/res/layout/story_chapter_view.xml
index e606cc13c39..4f6b8bcb503 100644
--- a/app/src/main/res/layout/story_chapter_view.xml
+++ b/app/src/main/res/layout/story_chapter_view.xml
@@ -74,7 +74,7 @@
app:layout_constraintStart_toStartOf="@id/chapter_thumbnail"
app:layout_constraintTop_toTopOf="@id/chapter_thumbnail"
app:srcCompat="@drawable/ic_baseline_lock_24"
- android:contentDescription="@string/lock_icon_content_description" />
+ android:contentDescription="@string/story_fragment_lock_icon_content_description" />
+ android:contentDescription="@string/state_fragment_previous_button_description" />
diff --git a/app/src/main/res/layout/survey_nps_score_layout.xml b/app/src/main/res/layout/survey_nps_score_layout.xml
index 8f84603de25..50dd070a21b 100644
--- a/app/src/main/res/layout/survey_nps_score_layout.xml
+++ b/app/src/main/res/layout/survey_nps_score_layout.xml
@@ -17,7 +17,7 @@
android:id="@+id/not_likely_text_view"
style="@style/SurveyNpsHintTextStyle"
android:fontFamily="sans-serif-light"
- android:text="@string/survey_nps_not_at_all_likely_label"
+ android:text="@string/survey_activity_nps_score_not_likely_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -32,7 +32,7 @@
diff --git a/app/src/main/res/layout/survey_outro_dialog_fragment.xml b/app/src/main/res/layout/survey_outro_dialog_fragment.xml
index 0b1719efc04..990c3fd72d4 100644
--- a/app/src/main/res/layout/survey_outro_dialog_fragment.xml
+++ b/app/src/main/res/layout/survey_outro_dialog_fragment.xml
@@ -9,7 +9,7 @@
@@ -46,7 +46,7 @@
style="@style/SurveyPrimaryButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
- android:text="@string/survey_exit_survey_button"
+ android:text="@string/survey_activity_outer_dialog_finish_button"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/survey_onboarding_text"
diff --git a/app/src/main/res/layout/survey_welcome_dialog_fragment.xml b/app/src/main/res/layout/survey_welcome_dialog_fragment.xml
index abbd11759a7..06924f21cf1 100644
--- a/app/src/main/res/layout/survey_welcome_dialog_fragment.xml
+++ b/app/src/main/res/layout/survey_welcome_dialog_fragment.xml
@@ -9,7 +9,7 @@
@@ -39,7 +39,7 @@
style="@style/SurveyPopupMessageStyle"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
- android:text="@string/survey_onboarding_message_text"
+ android:text="@string/survey_activity_exit_dialog_onboarding_text"
app:layout_constraintTop_toTopOf="@id/survey_onboarding_center_guide" />
diff --git a/app/src/main/res/layout/test_margin_bindable_adapter_activity.xml b/app/src/main/res/layout/test_margin_bindable_adapter_activity.xml
index c86ec3b2257..4ca58d5e35e 100644
--- a/app/src/main/res/layout/test_margin_bindable_adapter_activity.xml
+++ b/app/src/main/res/layout/test_margin_bindable_adapter_activity.xml
@@ -10,7 +10,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="sans-serif-medium"
- android:text="@string/select_a_topic_to_start"
+ android:text="@string/home_activity_all_topics_text"
android:padding="10dp"
android:background="@color/component_color_test_margin_bindable_adapter_activity_background_color"
android:textColor="@color/component_color_shared_primary_text_color"
diff --git a/app/src/main/res/layout/text_input_interaction_item.xml b/app/src/main/res/layout/text_input_interaction_item.xml
index e204f674cf6..5f6d5f50051 100644
--- a/app/src/main/res/layout/text_input_interaction_item.xml
+++ b/app/src/main/res/layout/text_input_interaction_item.xml
@@ -23,7 +23,7 @@
android:id="@+id/text_input_interaction_view"
style="@style/InputInteractionEditText"
android:hint="@{viewModel.hintText}"
- android:contentDescription="@{viewModel.hintText.length() == 0 ? @string/text_input_default_content_description : ``}"
+ android:contentDescription="@{viewModel.hintText.length() == 0 ? @string/state_fragment_text_input_interaction_content_description : ``}"
android:inputType="text"
android:text="@={viewModel.answerText}"
android:textColorHint="@color/component_color_shared_edit_text_hint_color"
diff --git a/app/src/main/res/layout/top_left_overlay.xml b/app/src/main/res/layout/top_left_overlay.xml
index d005ea8287c..015344e7555 100644
--- a/app/src/main/res/layout/top_left_overlay.xml
+++ b/app/src/main/res/layout/top_left_overlay.xml
@@ -25,7 +25,7 @@
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_rounded_arrow_up_right"
app:tint="@color/component_color_shared_spotlight_overlay_arrow_color"
- android:contentDescription="@string/spotlight_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_close_button_content_description" />
diff --git a/app/src/main/res/layout/top_right_overlay.xml b/app/src/main/res/layout/top_right_overlay.xml
index 9043b9bd3d8..24bc4405657 100644
--- a/app/src/main/res/layout/top_right_overlay.xml
+++ b/app/src/main/res/layout/top_right_overlay.xml
@@ -26,7 +26,7 @@
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_rounded_arrow_up_right"
app:tint="@color/component_color_shared_spotlight_overlay_arrow_color"
- android:contentDescription="@string/spotlight_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_overlay_arrow_content_description" />
+ android:contentDescription="@string/spotlight_fragment_close_button_content_description" />
diff --git a/app/src/main/res/layout/topic_fragment.xml b/app/src/main/res/layout/topic_fragment.xml
index 3e743f27b1d..dc64f50d08c 100644
--- a/app/src/main/res/layout/topic_fragment.xml
+++ b/app/src/main/res/layout/topic_fragment.xml
@@ -32,7 +32,7 @@
android:fontFamily="sans-serif"
android:minHeight="?attr/actionBarSize"
android:theme="@style/Widget.AppCompat.ActionBar"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator">
+ android:contentDescription="@string/topic_fragment_info_download_status_image_description" />
@@ -139,7 +139,7 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal|bottom"
- android:contentDescription="@{isListExpanded ? @string/hide_chapter_list : @string/show_chapter_list}"
+ android:contentDescription="@{isListExpanded ? @string/topic_fragment_lessons_hide_chapter_list : @string/topic_fragment_lessons_show_chapter_list}"
app:isRotationAnimationClockwise="@{isListExpanded}"
app:rotationAnimationAngle="@{180f}"
app:srcCompat="@drawable/ic_arrow_drop_down_black_24dp"
diff --git a/app/src/main/res/layout/topic_lessons_title.xml b/app/src/main/res/layout/topic_lessons_title.xml
index 438402ead67..12fffd3e0c5 100644
--- a/app/src/main/res/layout/topic_lessons_title.xml
+++ b/app/src/main/res/layout/topic_lessons_title.xml
@@ -20,6 +20,6 @@
android:layout_marginStart="@dimen/topic_lessons_title_margin_start"
android:layout_marginTop="@dimen/topic_lessons_title_margin_top"
android:layout_marginEnd="@dimen/topic_lessons_title_margin_end"
- android:text="@string/stories_you_can_play" />
+ android:text="@string/home_activity_topic_play_text" />
diff --git a/app/src/main/res/layout/topic_practice_footer_view.xml b/app/src/main/res/layout/topic_practice_footer_view.xml
index e2f704048f3..a4bd77a9909 100644
--- a/app/src/main/res/layout/topic_practice_footer_view.xml
+++ b/app/src/main/res/layout/topic_practice_footer_view.xml
@@ -30,7 +30,7 @@
android:enabled="@{isSubmitButtonActive}"
android:fontFamily="sans-serif-medium"
android:minHeight="@dimen/clickable_item_min_height"
- android:text="@string/topic_practice_start"
+ android:text="@string/topic_fragment_practice_start_button"
android:textColor="@{isSubmitButtonActive ? @color/component_color_shared_submit_text_active_color : @color/component_color_shared_submit_text_inactive_color}"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/topic_practice_header_view.xml b/app/src/main/res/layout/topic_practice_header_view.xml
index 7d187b30063..e2624bdf9a1 100644
--- a/app/src/main/res/layout/topic_practice_header_view.xml
+++ b/app/src/main/res/layout/topic_practice_header_view.xml
@@ -28,7 +28,7 @@
android:id="@+id/master_skills_text_view"
style="@style/Heading2ViewStart"
android:layout_marginEnd="@dimen/master_skills_text_view_margin_end"
- android:text="@string/topic_practice_master_these_skills"
+ android:text="@string/topic_fragment_practice_master_skills_text"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
@@ -36,7 +36,7 @@
android:id="@+id/skills_description_text_view"
style="@style/Subtitle1ViewStart"
android:layout_marginTop="4dp"
- android:text="@string/topic_practice_skills_description"
+ android:text="@string/topic_fragment_practice_skills_description"
android:textColor="@color/component_color_topic_practice_header_view_description_text_color"
app:layout_constraintStart_toStartOf="@+id/master_skills_text_view"
app:layout_constraintTop_toBottomOf="@+id/master_skills_text_view" />
diff --git a/app/src/main/res/layout/topic_revision_fragment.xml b/app/src/main/res/layout/topic_revision_fragment.xml
index 2f2e852f774..8f4c065fcf4 100755
--- a/app/src/main/res/layout/topic_revision_fragment.xml
+++ b/app/src/main/res/layout/topic_revision_fragment.xml
@@ -21,6 +21,6 @@
android:paddingEnd="@dimen/topic_revision_fragment_padding_end"
android:paddingBottom="@dimen/topic_revision_fragment_padding_bottom"
android:scrollbars="none"
- android:tag="@string/topic_revision_recyclerview_tag"
+ android:tag="@string/topic_fragment_revision_recyclerview_tag"
app:data="@{viewModel.subtopicLiveData}" />
diff --git a/app/src/main/res/layout/view_event_logs_fragment.xml b/app/src/main/res/layout/view_event_logs_fragment.xml
index 3d15a7a6b01..ef62640123a 100644
--- a/app/src/main/res/layout/view_event_logs_fragment.xml
+++ b/app/src/main/res/layout/view_event_logs_fragment.xml
@@ -31,7 +31,7 @@
android:background="@color/component_color_shared_activity_toolbar_color"
android:minHeight="?attr/actionBarSize"
android:textSize="20sp"
- app:navigationContentDescription="@string/navigate_up"
+ app:navigationContentDescription="@string/navigate_up_text"
app:navigationIcon="?attr/homeAsUpIndicator"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"
app:title="@string/developer_options_event_logs"
diff --git a/app/src/main/res/layout/walkthrough_activity.xml b/app/src/main/res/layout/walkthrough_activity.xml
index a9bf56e40ca..12f9ae91f64 100644
--- a/app/src/main/res/layout/walkthrough_activity.xml
+++ b/app/src/main/res/layout/walkthrough_activity.xml
@@ -33,7 +33,7 @@
android:layout_width="48dp"
android:layout_height="48dp"
android:clickable="true"
- android:contentDescription="@string/back_button"
+ android:contentDescription="@string/walkthrough_activity_back_button_text"
android:focusable="true"
android:onClick="@{(v) -> presenter.moveToPreviousPage(viewModel.currentProgress)}"
android:padding="16dp"
diff --git a/app/src/main/res/layout/walkthrough_final_fragment.xml b/app/src/main/res/layout/walkthrough_final_fragment.xml
index a393fc72813..4747ef5701a 100644
--- a/app/src/main/res/layout/walkthrough_final_fragment.xml
+++ b/app/src/main/res/layout/walkthrough_final_fragment.xml
@@ -61,7 +61,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:fontFamily="sans-serif"
- android:text="@string/no"
+ android:text="@string/walkthrough_activity_no_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="20sp" />
@@ -72,7 +72,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:fontFamily="sans-serif"
- android:text="@string/pick_a_different_topic"
+ android:text="@string/walkthrough_activity_pick_different_topic_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="12sp" />
@@ -94,7 +94,7 @@
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:fontFamily="sans-serif"
- android:text="@string/yes"
+ android:text="@string/walkthrough_activity_yes_text"
android:textColor="@color/component_color_shared_secondary_6_text_color"
android:textSize="20sp" />
@@ -105,7 +105,7 @@
android:layout_gravity="center_horizontal"
android:layout_marginTop="40dp"
android:fontFamily="sans-serif"
- android:text="@string/lets_get_started"
+ android:text="@string/walkthrough_activity_get_started_text"
android:textColor="@color/component_color_shared_secondary_6_text_color"
android:textSize="12sp" />
@@ -134,7 +134,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:fontFamily="sans-serif"
- android:text="@string/great"
+ android:text="@string/walkthrough_activity_final_title_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp"
app:layout_constraintEnd_toEndOf="parent"
diff --git a/app/src/main/res/layout/walkthrough_topic_header_view.xml b/app/src/main/res/layout/walkthrough_topic_header_view.xml
index 91a413dbac4..c0b0a46c554 100644
--- a/app/src/main/res/layout/walkthrough_topic_header_view.xml
+++ b/app/src/main/res/layout/walkthrough_topic_header_view.xml
@@ -17,7 +17,7 @@
android:layout_marginEnd="28dp"
android:layout_marginBottom="16dp"
android:fontFamily="sans-serif-medium"
- android:text="@string/what_do_you_want_to_learn"
+ android:text="@string/walkthrough_activity_topic_header_text"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="24sp" />
diff --git a/app/src/main/res/layout/walkthrough_welcome_fragment.xml b/app/src/main/res/layout/walkthrough_welcome_fragment.xml
index 9543ab9a2e1..aa09f27ea2d 100644
--- a/app/src/main/res/layout/walkthrough_welcome_fragment.xml
+++ b/app/src/main/res/layout/walkthrough_welcome_fragment.xml
@@ -46,7 +46,7 @@
android:layout_marginTop="16dp"
android:layout_marginEnd="32dp"
android:fontFamily="sans-serif"
- android:text="@string/walkthrough_welcome_description"
+ android:text="@string/walkthrough_activity_welcome_description"
android:textColor="@color/component_color_shared_primary_text_color"
android:textSize="20sp"
app:layout_constraintEnd_toEndOf="parent"
@@ -71,7 +71,7 @@
android:layout_height="wrap_content"
android:layout_marginTop="32dp"
android:onClick="@{(v) -> presenter.changePage()}"
- android:text="@string/next"
+ android:text="@string/next_text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
diff --git a/app/src/main/res/menu/navigation_drawer_menu.xml b/app/src/main/res/menu/navigation_drawer_menu.xml
index aa4dc482ee3..11f6fa55491 100644
--- a/app/src/main/res/menu/navigation_drawer_menu.xml
+++ b/app/src/main/res/menu/navigation_drawer_menu.xml
@@ -10,19 +10,19 @@
+ android:title="@string/menu_options_text" />
+ android:title="@string/menu_help_text" />
+ android:title="@string/navigation_drawer_fragment_switch_profile" />
diff --git a/app/src/main/res/values-ar/strings.xml b/app/src/main/res/values-ar/strings.xml
index 5cf88b6abee..d5b3a266c08 100644
--- a/app/src/main/res/values-ar/strings.xml
+++ b/app/src/main/res/values-ar/strings.xml
@@ -8,159 +8,145 @@
* Seanlip
-->
- أعلى قائمة التنقل
- خيارات
- التنزيلات
- مساعدة
+ خيارات
+ التنزيلات
+ مساعدةمشغل رحلة الاستكشافالمساعدة
- أغلق
- تغيير الملف الشخصي
- خيارات المطورين
- أدوات تحكم المشرف
- فتح قائمة التنقل
- غلق قائمة التنقل
- تشغيل الصوت
- إيقاف الصوت مؤقتًا
- صوت %s غير متوفر.
- موافق
- إلغاء
- لغة الصوت
- غير متصل بالإنترنت
- من فضلك تأكد من وجود اتصال بالإنترنت عن طريق شبكة الوايفاي أو بيانات الهاتف، ثم حاول مرة أخرى.
- حسنًا
- موافق
- إلغاء
- متصل بالإنترنت عن طريق بيانات الهاتف
- تشغيل الصوت عبر الإنترنت قد يستخدم الكثير من بيانات الهاتف.
- لا تُظهِر هذه الرسالة مُجددًا
- بطاقة المفهوم
- بطاقة المراجعة
+ أغلق
+ تغيير الملف الشخصي
+ خيارات المطورين
+ أدوات تحكم المشرف
+ فتح قائمة التنقل
+ غلق قائمة التنقل
+ تشغيل الصوت
+ إيقاف الصوت مؤقتًا
+ صوت %s غير متوفر.
+ موافق
+ إلغاء
+ لغة الصوت
+ غير متصل بالإنترنت
+ من فضلك تأكد من وجود اتصال بالإنترنت عن طريق شبكة الوايفاي أو بيانات الهاتف، ثم حاول مرة أخرى.
+ حسنًا
+ موافق
+ إلغاء
+ متصل بالإنترنت عن طريق بيانات الهاتف
+ تشغيل الصوت عبر الإنترنت قد يستخدم الكثير من بيانات الهاتف.
+ لا تُظهِر هذه الرسالة مُجددًا
+ بطاقة المفهومهل تريد المغادرة إلى صفحة الموضوع؟لن يتم حفظ تقدمك.
- مغادرة
- إلغاء
+ مغادرة
+ إلغاءهل تريد المغادرة إلى صفحة الموضوع؟لن يتم حفظ تقدمك.
- إلغاء
- مغادرة
- اخرج في أي وقت باستخدام هذا الزر. سنحفظ تقدمك.
- هل ترغب في أن يقرأ %s لك؟ اضغط على هذا الزر لتجربته!
- انقر لتغيير لغة التعليق الصوتي.
- تم الوصول إلى الحد الأقصى من سعة التخزين
- سوف يتم حذف تقدمك في درس %s
- استمرار
- المغادرة بدون حفظ التقدم
- العودة إلى الدرس
- أتقن هذه المهارات
- النسب والاستدلال النسبي
- قم باختيار المهارات التي تريد أن تتدرب عليها.
- ابدأ
- تفاصيل حول الموضوع.
- راجع المفاهيم المدروسة من الدروس المكتملة هنا.
- تدرب على المفاهيم المكتسبة من الدروس المكتملة.
- انقر هنا لبدء تشغيل درس.
- ابحث عن كل دروسك هنا.
- راجع المفاهيم المكتسبة من الدروس المكتملة هنا.
- انقر هنا لبدء تشغيل درس.
- استمرار
- تقديم
- التوجه إلى البطاقة السابقة
- التوجه إلى البطاقة القادمة
- تقديم
- إعادة التشغيل
- العودة إلى الموضوع
- الردود السابقة (%s)
- يضغط على %s
- تعلم مرة أخرى
- اعرض المزيد
- اعرض أقل
- الأسئلة المتكررة
- الأسئلة المميزة
- الأسئلة المتكررة
+ إلغاء
+ مغادرة
+ اخرج في أي وقت باستخدام هذا الزر. سنحفظ تقدمك.
+ هل ترغب في أن يقرأ %s لك؟ اضغط على هذا الزر لتجربته!
+ انقر لتغيير لغة التعليق الصوتي.
+ تم الوصول إلى الحد الأقصى من سعة التخزين
+ سوف يتم حذف تقدمك في درس %s
+ استمرار
+ المغادرة بدون حفظ التقدم
+ العودة إلى الدرس
+ أتقن هذه المهارات
+ قم باختيار المهارات التي تريد أن تتدرب عليها.
+ ابدأ
+ تفاصيل حول الموضوع.
+ راجع المفاهيم المدروسة من الدروس المكتملة هنا.
+ تدرب على المفاهيم المكتسبة من الدروس المكتملة.
+ انقر هنا لبدء تشغيل درس.
+ ابحث عن كل دروسك هنا.
+ راجع المفاهيم المكتسبة من الدروس المكتملة هنا.
+ انقر هنا لبدء تشغيل درس.
+ استمرار
+ التوجه إلى البطاقة السابقة
+ التوجه إلى البطاقة القادمة
+ تقديم
+ إعادة التشغيل
+ العودة إلى الموضوع
+ الردود السابقة (%s)
+ يضغط على %s
+ اعرض المزيد
+ اعرض أقل
+ الأسئلة المتكررة
+ الأسئلة المميزةالأسئلة المتكررةالتحقق من رقم التعريف الشخصيمقدمة
- الأسئلة الأكثر تكرارا
- معلومات
- الدروس
- ممارسة
- مراجعة
- أدوات تحكم المشرف
- صفحة الموضوع
- الموضوع: %s
- موضوع
+ الأسئلة الأكثر تكرارا
+ معلومات
+ الدروس
+ ممارسة
+ مراجعة
+ صفحة الموضوع
+ الموضوع: %sالمواضيع قيد التقدم
- فصل %s: %s
- تم انهاء الفصل %s الذي يحمل عنوان %s
- الفصل %s الذي يحمل عنوان %s ما زال قيد التقدم
- قم بإنهاء الفصل %s: %s لكي تفتح هذا الفصل.
- أكمل الفصل السابق لفتح هذا الفصل.
- أدخل النص.
- أدخل كسر عشري في الصيغة (بسط/مقام)، أو عدد كسري في الصيغة (عدد بسط/مقام).
- أدخل كسر عشري في الصيغة بسط/مقام.
- أدخل رقم.
- أدخل أرقام بالوحدات هنا.
- اكتب تعبيرا هنا ، باستخدام الأرقام فقط.
- اكتب تعبيرا هنا.
- اكتب معادلة هنا.
- يرجى إزالة المسافات بين الأرقام في إجابتك.
- الرجاء إغلاق أو إزالة الأقواس.
- الرجاء إزالة الأقواس حول الإجابة بالكامل: \' %s \'.
- الرجاء إزالة الأقواس الزائدة حول \"( %1$s )\" ، على سبيل المثال: \" %1$s \".
- الرجاء إزالة الأقواس الزائدة حول \'( %1$s )\' ، على سبيل المثال: \' %1$s \'.
- يوجد \' %s \' غير صالح في الإجابة. يرجى إزالته.
- الرجاء إعادة ترتيب ترتيب %1$s و %2$s . على سبيل المثال: %2$s% 1 $ s.
- يجب فصل %1$s و %2$s برقم أو متغير.
- الرجاء إزالة الرموز الإضافية في إجابتك.
- هل هناك رقم أو متغير مفقود قبل أو بعد رمز الإضافة \' %1$s \'؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
- هل هناك رقم أو متغير مفقود قبل أو بعد رمز الضرب \' %1$s \'؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
- هل هناك رقم أو متغير مفقود قبل أو بعد رمز القسمة \' %1$s \'؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
- هل هناك رقم أو متغير مفقود قبل رمز الأسي \" %1$s \" أو بعده؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
- يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الإضافة \' %s \'.
- يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الطرح \' %s \'.
- يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الضرب \' %s \'.
- يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز القسمة \' %s \'.
- يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الأس \' %s \'.
- عذرًا ، المتغيرات في الأس لا يدعمها التطبيق. يرجى مراجعة إجابتك.
- عذرًا ، لا يدعم التطبيق القوى الأعلى من 5. يرجى مراجعة إجابتك.
- عذرًا ، لا يدعم التطبيق الصلاحيات / الأسس المتكررة. الرجاء قصر إجابتك على قوة واحدة.
- إدخال مفقود للجذر التربيعي.
- القسمة على الصفر غير صالحة. يرجى مراجعة إجابتك.
- يبدو أنك أدخلت بعض المتغيرات. يرجى التأكد من أن إجابتك تحتوي على أرقام فقط وإزالة أي متغيرات من إجابتك.
- الرجاء استخدام المتغيرات المحددة في السؤال وليس %s .
- تفتقد معادلتك علامة \'=\'.
- تحتوي معادلتك على عدد كبير جدًا من علامات \'=\'. يجب أن يكون لها واحد فقط.
- أحد جوانب \"=\" في معادلتك فارغ.
- الوظيفة \' %s \' غير مدعومة. يرجى مراجعة إجابتك.
- هل تقصد sqrt؟ إذا لم يكن كذلك ، يرجى فصل المتغيرات برموز الضرب.
- عذرا ، لم نستطع فهم إجابتك. يرجى التحقق منه للتأكد من عدم وجود أية أخطاء.
- تفعيل التعليق الصوتي لهذا الدرس.
- القصص التي تم تشغيلها مؤخرًا
- آخر القصص التي تم تشغيلها
- عرض الكل
- تم تشغيلها خلال الأسبوع الماضي
- تم تشغيلها خلال الشهر الماضي
+ فصل %s: %s
+ تم انهاء الفصل %s الذي يحمل عنوان %s
+ الفصل %s الذي يحمل عنوان %s ما زال قيد التقدم
+ قم بإنهاء الفصل %s: %s لكي تفتح هذا الفصل.
+ أكمل الفصل السابق لفتح هذا الفصل.
+ أدخل النص.
+ أدخل كسر عشري في الصيغة (بسط/مقام)، أو عدد كسري في الصيغة (عدد بسط/مقام).
+ أدخل كسر عشري في الصيغة بسط/مقام.
+ أدخل رقم.
+ اكتب تعبيرا هنا ، باستخدام الأرقام فقط.
+ اكتب تعبيرا هنا.
+ اكتب معادلة هنا.
+ يرجى إزالة المسافات بين الأرقام في إجابتك.
+ الرجاء إغلاق أو إزالة الأقواس.
+ الرجاء إزالة الأقواس حول الإجابة بالكامل: \' %s \'.
+ الرجاء إزالة الأقواس الزائدة حول \"( %1$s )\" ، على سبيل المثال: \" %1$s \".
+ الرجاء إزالة الأقواس الزائدة حول \'( %1$s )\' ، على سبيل المثال: \' %1$s \'.
+ يوجد \' %s \' غير صالح في الإجابة. يرجى إزالته.
+ الرجاء إعادة ترتيب ترتيب %1$s و %2$s . على سبيل المثال: %2$s% 1 $ s.
+ يجب فصل %1$s و %2$s برقم أو متغير.
+ الرجاء إزالة الرموز الإضافية في إجابتك.
+ هل هناك رقم أو متغير مفقود قبل أو بعد رمز الإضافة \' %1$s \'؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
+ هل هناك رقم أو متغير مفقود قبل أو بعد رمز الضرب \' %1$s \'؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
+ هل هناك رقم أو متغير مفقود قبل أو بعد رمز القسمة \' %1$s \'؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
+ هل هناك رقم أو متغير مفقود قبل رمز الأسي \" %1$s \" أو بعده؟ إذا لم يكن كذلك ، يرجى إزالة \' %1$s \' الإضافي.
+ يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الإضافة \' %s \'.
+ يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الطرح \' %s \'.
+ يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الضرب \' %s \'.
+ يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز القسمة \' %s \'.
+ يبدو أن هناك رقمًا أو متغيرًا مفقودًا بعد رمز الأس \' %s \'.
+ عذرًا ، المتغيرات في الأس لا يدعمها التطبيق. يرجى مراجعة إجابتك.
+ عذرًا ، لا يدعم التطبيق القوى الأعلى من 5. يرجى مراجعة إجابتك.
+ عذرًا ، لا يدعم التطبيق الصلاحيات / الأسس المتكررة. الرجاء قصر إجابتك على قوة واحدة.
+ إدخال مفقود للجذر التربيعي.
+ القسمة على الصفر غير صالحة. يرجى مراجعة إجابتك.
+ يبدو أنك أدخلت بعض المتغيرات. يرجى التأكد من أن إجابتك تحتوي على أرقام فقط وإزالة أي متغيرات من إجابتك.
+ الرجاء استخدام المتغيرات المحددة في السؤال وليس %s .
+ تفتقد معادلتك علامة \'=\'.
+ تحتوي معادلتك على عدد كبير جدًا من علامات \'=\'. يجب أن يكون لها واحد فقط.
+ أحد جوانب \"=\" في معادلتك فارغ.
+ الوظيفة \' %s \' غير مدعومة. يرجى مراجعة إجابتك.
+ هل تقصد sqrt؟ إذا لم يكن كذلك ، يرجى فصل المتغيرات برموز الضرب.
+ عذرا ، لم نستطع فهم إجابتك. يرجى التحقق منه للتأكد من عدم وجود أية أخطاء.
+ القصص التي تم تشغيلها مؤخرًا
+ آخر القصص التي تم تشغيلها
+ عرض الكل
+ تم تشغيلها خلال الأسبوع الماضي
+ تم تشغيلها خلال الشهر الماضيقائمة الفصول
- صورة %s
- القصص التي باستطاعتك تشغيلها
- العودة للسابق
- القصص التي تم تشغيلها مؤخرًا
- المواضيع التي تم تنزيلها
- تم التنزيل
- وضع الممارسة
- السؤال %s من أصل %s
- تمّ
- تم الإنتهاء
- تم الإنتهاء من جميع الأسئلة! يمكنك بدأ مجموعة أسئلة أخرى، أو العودة للموضوع.
- في تقدم
- مكتمل
- عرض قائمة الفصول
- إخفاء قائمة الفصول
- تشغيل/إيقاف مؤقت للصوت
- التفضيلات
+ صورة %s
+ القصص التي باستطاعتك تشغيلها
+ العودة للسابق
+ القصص التي تم تشغيلها مؤخرًا
+ المواضيع التي تم تنزيلها
+ وضع الممارسة
+ السؤال %s من أصل %s
+ تمّ
+ تم الإنتهاء
+ تم الإنتهاء من جميع الأسئلة! يمكنك بدأ مجموعة أسئلة أخرى، أو العودة للموضوع.
+ في تقدم
+ مكتمل
+ عرض قائمة الفصول
+ إخفاء قائمة الفصولصفحة تقدم الملف الشخصي
- بحثمن فضلك قم باستخدام أرقام، أو مسافات، أو الرمز (/)من فضلك أدخل كسر عشري صالح (5/3 أو 1 2/3 على سبيل المثال)من فضلك لا تضع 0 في المقام
@@ -179,7 +165,6 @@
%s م.ب%s ج.بصحيح!
- الموضوع: %sو لا فصلفصلًا واحدًا
@@ -228,276 +213,263 @@
%s موضوع في تقدم%s موضوع في تقدم
- صفحة اختيار الملف الشخصي
- المشرف
- اختر الملف الشخصي
- إضافة ملف شخصي
- إعداد العديد من الملفات الشخصية
- أضف حتى 10 مستخدمين إلى حسابك. مثالي للعائلات والفصول الدراسية.
- أدوات تحكم المشرف
- اللغة
- أدوات تحكم المشرف
+ صفحة اختيار الملف الشخصي
+ المشرف
+ اختر الملف الشخصي
+ إضافة ملف شخصي
+ إعداد العديد من الملفات الشخصية
+ أضف حتى 10 مستخدمين إلى حسابك. مثالي للعائلات والفصول الدراسية.
+ أدوات تحكم المشرف
+ اللغة
+ أدوات تحكم المشرفأمّن الحساب لإضافة ملفات شخصيةأمّن الحساب للوصول إلى أدوات تحكم المشرف
- إذن المشرف مطلوب
- أدخل رقم التعريف الشخصي الخاص بالمشرف لكي تُنشئ حسابًا جديدًا.
- أدخل رقم التعريف الشخصي الخاص بالمشرف لكي تصل إلى أدوات تحكم المشرف.
- رقم التعريف الشخصي الخاص بالمشرف
- رقم التعريف الشخصي الخاص بالمشرف غير صحيح. من فضلك حاول مجددًا.
- من فضلك أدخل رقم التعريف الشخصي الخاص بالمشرف.
- تقديم
- إغلاق
- قبل أن نضيف ملفات شخصية، نريد أن نحمي حسابك الشخصي عن طريق إنشاء رقم تعريف شخصي. هذا يمكنك من السماح بالتنزيلات وإدارة الملفات الشخصية على الجهاز.
- لا تستخدم رقم تعريف شخصي استخدمته من قبل لحسابات الشخصية مثل حساب البنك أو حساب الضمان الإجتماعي.
- رقم تعريف شخصي جديد مكون من 5 أرقام
- تأكيد رقم التعريف الشخصي المكون من 5 أرقام
- رقم التعريف الشخصي يجب أن يتكون من 5 أرقام.
- برجاء التأكد من تطابق رقمي التعريف الشخصي.
- حفظ
+ إذن المشرف مطلوب
+ أدخل رقم التعريف الشخصي الخاص بالمشرف لكي تُنشئ حسابًا جديدًا.
+ أدخل رقم التعريف الشخصي الخاص بالمشرف لكي تصل إلى أدوات تحكم المشرف.
+ رقم التعريف الشخصي الخاص بالمشرف
+ رقم التعريف الشخصي الخاص بالمشرف غير صحيح. من فضلك حاول مجددًا.
+ من فضلك أدخل رقم التعريف الشخصي الخاص بالمشرف.
+ تقديم
+ إغلاق
+ قبل أن نضيف ملفات شخصية، نريد أن نحمي حسابك الشخصي عن طريق إنشاء رقم تعريف شخصي. هذا يمكنك من السماح بالتنزيلات وإدارة الملفات الشخصية على الجهاز.
+ لا تستخدم رقم تعريف شخصي استخدمته من قبل لحسابات الشخصية مثل حساب البنك أو حساب الضمان الإجتماعي.
+ رقم تعريف شخصي جديد مكون من 5 أرقام
+ تأكيد رقم التعريف الشخصي المكون من 5 أرقام
+ رقم التعريف الشخصي يجب أن يتكون من 5 أرقام.
+ برجاء التأكد من تطابق رقمي التعريف الشخصي.
+ حفظأمّن الحساب لإضافة ملفات شخصية
- إضافة ملف شخصي
- إضافة ملف شخصي
- الاسم
- رقم تعريف شخصي مكون من 3 أرقام
- تأكيد رقم التعريف الشخصي المكون من 3 أرقام
- السماح بالوصول للتنزيل
- المستخدم قادر على تنزيل ومسح المحتوى بدون رقم التعريف الشخصي الخاص بالمشرف.
- إنشاء
- إغلاق
- مع وجود رقم التعريف الشخصي، لا يمكن لأي شخص آخر الوصول إلى الملف الشخصي بخلاف هذا المستخدم.
- فشلنا في حفظ الصورة. برجاء المحاولة مجددًا.
- هذا الاسم مستخدَم بالفعل من قبل ملف شخصي آخر.
- من فضلك أدخل اسمًا لهذا الملف الشخصي.
- يمكن أن يحتوي الاسم على أحرفٍ فقط، جرّب اسمًا آخر؟
- رقم التعريف الشخصي يجب أن يتكون من 3 أرقام.
- برجاء التأكد من تطابق رقمي التعريف الشخصي.
- المزيد من المعلومات عن رقم التعريف الشخصي المكون من 3 أرقام.
- صورة الملف الشخصي الحالية.
- تعديل صورة الملف الشخصي
- مرحبًا بكم في %s
- تعلّم أي شيءٍ تريده بطريقة فعّالة وممتعة.
- أضف مستخدمين إلى حسابك.
- شارك الخبرة وأنشئ حتى 10 ملفات شخصية.
- تنزيل لحالة عدم وجود الإنترنت.
- استمرّ في تعلّم دروسك بدون اتصال بالإنترنت.
- استمتع!
- استمتع بمغامراتك التعليمية مع دروسنا الفعّالة المجانية.
- تخطي
- التالي
- ابدأ
- شاشة العرض %s من %s
- أهلًا، %s!
- من فضلك أدخل رقم التعريف الشخصي الخاص بالمشرف.
- من فضلك أدخل رقم التعريف الشخصي الخاص بك.
- رقم التعريف الشخصي للمسؤول المكون من 5 أرقام.
- رقم التعريف الشخصي المكون من 3 أرقام للمستخدم.
- نسيت رقم التعريف الشخصي الخاص بي.
- رقم تعريف شخصي غير صحيح.
- عرض
- إخفاء
- إغلاق
- تم تغيير رقم التعريف الشخصي بنجاح
- نسيت رقم التعريف الشخصي؟
- لإعادة ضبط رقم التعريف الشخصي PIN الخاص بك، إحذف تطبيق %s وأعد تثبيته مرة أخرى.\n\nضع في اعتبارك أنه إذا لم يكن الجهاز متصلاً بالإنترنت ، فقد تفقد تقدم المستخدم في حسابات متعددة.
- إعادة تعيين بيانات %s
- تأكيد إعادة تعيين بيانات %s
- هل أنت متأكد من أنك تريد حذف كافة ملفات تعريف %s على هذا الجهاز؟ هذه العملية لا يمكن التراجع عنها.
- نعم
- لا
- إظهار/إخفاء أيقونة كلمة السر
- أيقونة كلمة المرور ظاهرة.
- أيقونة كلمة المرور مخفية.
- أدخل رقم التعريف الشخصي الخاص بك
- أدخل رقم التعريف الشخصي
- رقم التعريف الشخصي الخاص بالمشرف
- الوصول إلى إعدادات المشرف
- رقم التعريف الشخصي الخاص بالمشرف مطلوب لتغيير رقم التعريف الشخصي الخاص بالمستخدم
- إلغاء
- تقديم
- رقم التعريف الشخصي الخاص بالمشرف غير صحيح. من فضلك حاول مجددًا.
- رقم التعريف الشخصي الجديد الخاص ب%1$s.
- أدخل رقم تعريف شخصي جديد
- سيكون رقم التعريف الشخصي هذا هو رقم التعريف الشخصي الجديد لـ %s وسيكون مطلوبًا عند تسجيل الدخول.
+ إضافة ملف شخصي
+ الاسم
+ رقم تعريف شخصي مكون من 3 أرقام
+ تأكيد رقم التعريف الشخصي المكون من 3 أرقام
+ السماح بالوصول للتنزيل
+ المستخدم قادر على تنزيل ومسح المحتوى بدون رقم التعريف الشخصي الخاص بالمشرف.
+ إنشاء
+ إغلاق
+ مع وجود رقم التعريف الشخصي، لا يمكن لأي شخص آخر الوصول إلى الملف الشخصي بخلاف هذا المستخدم.
+ هذا الاسم مستخدَم بالفعل من قبل ملف شخصي آخر.
+ من فضلك أدخل اسمًا لهذا الملف الشخصي.
+ يمكن أن يحتوي الاسم على أحرفٍ فقط، جرّب اسمًا آخر؟
+ رقم التعريف الشخصي يجب أن يتكون من 3 أرقام.
+ برجاء التأكد من تطابق رقمي التعريف الشخصي.
+ المزيد من المعلومات عن رقم التعريف الشخصي المكون من 3 أرقام.
+ صورة الملف الشخصي الحالية.
+ تعديل صورة الملف الشخصي
+ مرحبًا بكم في %s
+ تعلّم أي شيءٍ تريده بطريقة فعّالة وممتعة.
+ أضف مستخدمين إلى حسابك.
+ شارك الخبرة وأنشئ حتى 10 ملفات شخصية.
+ تنزيل لحالة عدم وجود الإنترنت.
+ استمرّ في تعلّم دروسك بدون اتصال بالإنترنت.
+ استمتع!
+ استمتع بمغامراتك التعليمية مع دروسنا الفعّالة المجانية.
+ تخطي
+ التالي
+ ابدأ
+ شاشة العرض %s من %s
+ أهلًا، %s!
+ من فضلك أدخل رقم التعريف الشخصي الخاص بالمشرف.
+ من فضلك أدخل رقم التعريف الشخصي الخاص بك.
+ رقم التعريف الشخصي للمسؤول المكون من 5 أرقام.
+ رقم التعريف الشخصي المكون من 3 أرقام للمستخدم.
+ نسيت رقم التعريف الشخصي الخاص بي.
+ رقم تعريف شخصي غير صحيح.
+ عرض
+ إخفاء
+ إغلاق
+ تم تغيير رقم التعريف الشخصي بنجاح
+ نسيت رقم التعريف الشخصي؟
+ لإعادة ضبط رقم التعريف الشخصي PIN الخاص بك، إحذف تطبيق %s وأعد تثبيته مرة أخرى.\n\nضع في اعتبارك أنه إذا لم يكن الجهاز متصلاً بالإنترنت ، فقد تفقد تقدم المستخدم في حسابات متعددة.
+ إعادة تعيين بيانات %s
+ تأكيد إعادة تعيين بيانات %s
+ هل أنت متأكد من أنك تريد حذف كافة ملفات تعريف %s على هذا الجهاز؟ هذه العملية لا يمكن التراجع عنها.
+ نعم
+ لا
+ أيقونة كلمة المرور ظاهرة.
+ أيقونة كلمة المرور مخفية.
+ أدخل رقم التعريف الشخصي
+ رقم التعريف الشخصي الخاص بالمشرف
+ الوصول إلى إعدادات المشرف
+ رقم التعريف الشخصي الخاص بالمشرف مطلوب لتغيير رقم التعريف الشخصي الخاص بالمستخدم
+ إلغاء
+ تقديم
+ رقم التعريف الشخصي الخاص بالمشرف غير صحيح. من فضلك حاول مجددًا.
+ رقم التعريف الشخصي الجديد الخاص ب%1$s.
+ أدخل رقم تعريف شخصي جديد
+ سيكون رقم التعريف الشخصي هذا هو رقم التعريف الشخصي الجديد لـ %s وسيكون مطلوبًا عند تسجيل الدخول.تنزيلاتي
- التنزيلات
- التحديثات (2)
+ التنزيلات
+ التحديثات (2)هل تريد الخروج من ملفك الشخصي؟
- إلغاء
- خروج
+ إلغاء
+ خروجالصفحة الرئيسية
- من الآن يمكنك مشاهدة الدروس المقترحة لك هنا.
- حدد موضوعًا للبدء
+ من الآن يمكنك مشاهدة الدروس المقترحة لك هنا.
+ حدد موضوعًا للبدءالملفات الشخصيةتعديل الملفات الشخصية
- تم الإنشاء في %s
- آخر استخدام
- تغيير الاسم
- إعادة ضبط رقم التعريف الشخصي
- علم الفصول المكتملة
- شغل مبدل اللغات السريع
- السماح لهذا المستخدم بالتبديل بسرعة بين اللغة الإنجليزية والسواحيلية ضمن درس.
- حذف الملف الشخصي
- هل تريد حذف هذا الملف الشخصي نهائيًا؟
- سيتم حذف كل التقدم ولن تتمكن من استعادته.
- حذف
- إلغاء
- السماح بالوصول للتنزيل
- المستخدم قادر على تنزيل ومسح المحتوى بدون كلمة السر الخاصة بالمشرف.
+ تم الإنشاء في %s
+ آخر استخدام
+ تغيير الاسم
+ إعادة ضبط رقم التعريف الشخصي
+ علم الفصول المكتملة
+ شغل مبدل اللغات السريع
+ السماح لهذا المستخدم بالتبديل بسرعة بين اللغة الإنجليزية والسواحيلية ضمن درس.
+ حذف الملف الشخصي
+ هل تريد حذف هذا الملف الشخصي نهائيًا؟
+ سيتم حذف كل التقدم ولن تتمكن من استعادته.
+ حذف
+ إلغاء
+ السماح بالوصول للتنزيل
+ المستخدم قادر على تنزيل ومسح المحتوى بدون كلمة السر الخاصة بالمشرف.صورة الملف الشخصي
- صورة الملف الشخصي
- إلغاء
- عرض صورة الملف الشخصي
- اختيار من المعرض
+ صورة الملف الشخصي
+ إلغاء
+ عرض صورة الملف الشخصي
+ اختيار من المعرضإعادة تسمية الملف الشخصي
- الاسم الجديد
- حفظ
+ الاسم الجديد
+ حفظإعادة ضبط رقم التعريف الشخصي
- أدخل رقم تعريف شخصي جديد للمستخدم كي يستخدمه عند الدخول إلى ملفه الشخصي.
- رقم تعريف شخصي مكون من 3 أرقام
- رقم تعريف شخصي مكون من 5 أرقام
- تأكيد رقم التعريف الشخصي المكون من 3 أرقام
- تأكيد رقم التعريف الشخصي المكون من 5 أرقام
- رقم التعريف الشخصي يجب أن يتكون من 3 أرقام.
- رقم التعريف الشخصي يجب أن يتكون من 5 أرقام.
- إنشاء رقم تعريف شخصي مكون من 3 أرقام
- مطلوب
- زر العودة
- التالي
- عام
- تعديل الحساب
- إدارة الملف الشخصي
- تعديل الملفات الشخصية
- أُذونات التنزيل
- تنزيل وتحديث عن طريق شبكة الوايفاي فقط
- سيتم تحميل وتحديث المواضيع عن طريق شبكة الوايفاي فقط. أي تنزيلات أو تحديثات عن طريق بيانات الهاتف سيتم وضعها في قائمة الانتظار.
- تحديث المواضيع تلقائيًا
- سيتم تحديث الموضوعات التي تم تنزيلها والتي يتوفر بها محتوى جديد تلقائيًا.
- معلومات التطبيق
- إصدار التطبيق
- إجراءات الحساب
- تسجيل الخروج
- إلغاء
- حسنا
- هل أنت متأكد من رغبتك في تسجيل الخروج من ملفك الشخصي؟
- إصدار التطبيق %s
- تم تثبيت آخر إصدار في %s. قم باستخدام رقم الإصدار في الأعلى للإبلاغ عن أعطال التطبيق.
+ أدخل رقم تعريف شخصي جديد للمستخدم كي يستخدمه عند الدخول إلى ملفه الشخصي.
+ رقم تعريف شخصي مكون من 3 أرقام
+ رقم تعريف شخصي مكون من 5 أرقام
+ تأكيد رقم التعريف الشخصي المكون من 3 أرقام
+ تأكيد رقم التعريف الشخصي المكون من 5 أرقام
+ رقم التعريف الشخصي يجب أن يتكون من 3 أرقام.
+ رقم التعريف الشخصي يجب أن يتكون من 5 أرقام.
+ إنشاء رقم تعريف شخصي مكون من 3 أرقام
+ مطلوب
+ زر العودة
+ التالي
+ عام
+ تعديل الحساب
+ إدارة الملف الشخصي
+ تعديل الملفات الشخصية
+ أُذونات التنزيل
+ تنزيل وتحديث عن طريق شبكة الوايفاي فقط
+ سيتم تحميل وتحديث المواضيع عن طريق شبكة الوايفاي فقط. أي تنزيلات أو تحديثات عن طريق بيانات الهاتف سيتم وضعها في قائمة الانتظار.
+ تحديث المواضيع تلقائيًا
+ سيتم تحديث الموضوعات التي تم تنزيلها والتي يتوفر بها محتوى جديد تلقائيًا.
+ معلومات التطبيق
+ إصدار التطبيق
+ إجراءات الحساب
+ تسجيل الخروج
+ إلغاء
+ حسنا
+ هل أنت متأكد من رغبتك في تسجيل الخروج من ملفك الشخصي؟
+ إصدار التطبيق %s
+ تم تثبيت آخر إصدار في %s. قم باستخدام رقم الإصدار في الأعلى للإبلاغ عن أعطال التطبيق.إصدار التطبيقلغة التطبيقلغة الصوت الافتراضيةحجم النص المقروء
- حجم النص المقروء
- سيظهر نص القصة بهذا الشكل.
- أ
- الصوت الافتراضي
- لغة التطبيق
- حجم النص المقروء
- صغير
- متوسط
- كبير
- كبير جدًا
- شريط تغيير حجم النص.
- الملف الشخصي
- قصتان
- من المواضيع في تقدم
- موضوع في تقدم
- قصص مكتملة
- قصة مكتملة
+ الصوت الافتراضي
+ لغة التطبيق
+ حجم النص المقروء
+ صغير
+ متوسط
+ كبير
+ كبير جدًا
+ الملف الشخصي
+ من المواضيع في تقدم
+ موضوع في تقدم
+ قصص مكتملة
+ قصة مكتملةخياراتقصص مكتملةتجول التطبيق
- تعلّم مهارات حسابية جديدة عن طريق القصص التي توضح لك كيف تستخدمها في حياتك اليومية
- \"مرحبًا %s\"
- ما الذي تريد أن تتعلمه؟
- عظيم
- هيّا نبدأ.
- نعم
- لا...
- اختر موضوعًا\nآخرًا.
- هل أنت مهتم بـ:\n%s
- ملاحظة جديدة متاحة
- لا يوجد تلميح جديد متاح
- إظهار الملاحظات والحل
- تلميح %s
- العودة للسابق
- الملاحظات
- عرض الحل
- عرض الحل
- الحل
- عرض الملاحظة
- إخفاء تلميح
- إخفاء الحل
- الحل الوحيد هو :%s
- أحد الاجابات هي : %s
- سوف يتم إظهار الحل. هل أنت متأكد؟
- إظهار
+ تعلّم مهارات حسابية جديدة عن طريق القصص التي توضح لك كيف تستخدمها في حياتك اليومية
+ \"مرحبًا %s\"
+ ما الذي تريد أن تتعلمه؟
+ عظيم
+ هيّا نبدأ.
+ نعم
+ لا...
+ اختر موضوعًا\nآخرًا.
+ هل أنت مهتم بـ:\n%s
+ ملاحظة جديدة متاحة
+ لا يوجد تلميح جديد متاح
+ إظهار الملاحظات والحل
+ تلميح %s
+ العودة للسابق
+ الملاحظات
+ عرض الحل
+ عرض الحل
+ الحل
+ عرض الملاحظة
+ إخفاء تلميح
+ إخفاء الحل
+ الحل الوحيد هو :%s
+ أحد الاجابات هي : %s
+ سوف يتم إظهار الحل. هل أنت متأكد؟
+ إظهارالآنحديثاًأمس
- العودة إلى الموضوع
- العودة إلى الدرس
- الشرح:
- إذا تساوى عنصران، قم بدمجهم.
- الربط بالعنصر %s
- إلغاء ربط العناصر عند %s
- تحريك العنصر إلى الأسفل إلى %s
- تحريك العنصر إلى الأعلى عند %s
- أعلى
- أسفل
+ الشرح:
+ إذا تساوى عنصران، قم بدمجهم.
+ الربط بالعنصر %s
+ إلغاء ربط العناصر عند %s
+ تحريك العنصر إلى الأسفل إلى %s
+ تحريك العنصر إلى الأعلى عند %s
+ أعلى
+ أسفل%s %s
- topic_revision_recyclerview_tag
- ongoing_recycler_view_tag
- برجاء اختيار خيار واحد على الأقل.
+ topic_revision_recyclerview_tag
+ ongoing_recycler_view_tagإصدار تطبيق غير مدعومهذا الإصدار من التطبيق لم يعد مدعومًا. من فضلك قم بتحديث التطبيق من خلال متجر بلاي (Play Store)إغلاق التطبيق
- بناء المطور
- ألفا
- بيتا
+ بناء المطور
+ ألفا
+ بيتاإشعار بيتا
- مرحبًا! يتم الآن تحديث تطبيقك إلى الإصدار التجريبي. إذا واجهت مشاكل أثناء استخدام التطبيق ، أو كانت لديك أسئلة ، فيرجى الاتصال بنا على android-feedback@oppia.org.
- لا تظهر هذه الرسالة مرة أخرى
+ مرحبًا! يتم الآن تحديث تطبيقك إلى الإصدار التجريبي. إذا واجهت مشاكل أثناء استخدام التطبيق ، أو كانت لديك أسئلة ، فيرجى الاتصال بنا على android-feedback@oppia.org.
+ لا تظهر هذه الرسالة مرة أخرىنعم
+ العودة إلى الدرسإشعار التوفر العاممرحبًا! يتم الآن تحديث تطبيقك إلى إصدار التوفر العام. إذا واجهت مشاكل أثناء استخدام التطبيق ، أو كانت لديك أسئلة ، فيرجى الاتصال بنا على android-feedback@oppia.org.لا تظهر هذه الرسالة مرة أخرىنعمإلىأدخل نسبة في الصيغة س:ص.
- انقر هنا لإدخال نص.
- أصغر حجمًا للنص
- أكبر حجمًا للنص
+ انقر هنا لإدخال نص.قريباًقصص موصّى بهاقصص من أجلكوضع الممارسةصفحة مراجعة المهارات
- تقدم الصوت
- تغيير اللغة
- الصوت مشغل
- الصوت متوقف
- إجابة مقدمة صحيحة
- إجابة مقدمة صحيحة: %s
- إجابة مقدمة غير صحيحة
- إجابة مقدمة غير صحيحة: %s
+ تقدم الصوت
+ تغيير اللغة
+ الصوت مشغل
+ الصوت متوقف
+ إجابة مقدمة صحيحة
+ إجابة مقدمة صحيحة: %s
+ إجابة مقدمة غير صحيحة
+ إجابة مقدمة غير صحيحة: %sمكتبات برمجية (Third-party Dependencies)إصدار %sرخص حقوق النسخعارض رخصة حقوق النسخانتقل مرة أخرى إلى %s
- قائمة تبعيات الطرف الثالث
- قائمة تراخيص حقوق النشر
+ قائمة تبعيات الطرف الثالث
+ قائمة تراخيص حقوق النشراستئناف الدرس
- تابع
- ابدأ من جديد
- صباح الخير
- مساء الخير
- مساء الخير،
+ تابع
+ ابدأ من جديد
+ صباح الخير
+ مساء الخير
+ مساء الخير،صفحة السياسة
- سياسة الخصوصية
- يرجى زيارة <a href=\"https://www.oppia.org/privacy-policy\">هذه الصفحة</a> للحصول على أحدث إصدار من سياسة الخصوصية هذه.
- شروط الخدمة
- باستخدام %s ، فإنك توافق على<br><oppia-noninteractive-policy link=\"tos\"> شروط الخدمة</oppia-noninteractive-policy> و<oppia-noninteractive-policy link=\"privacy\"> سياسة الخصوصية</oppia-noninteractive-policy> .
- يرجى زيارة <a href=\"https://www.oppia.org/terms\">هذه الصفحة</a> للحصول على أحدث نسخة من هذه الشروط.
+ سياسة الخصوصية
+ يرجى زيارة <a href=\"https://www.oppia.org/privacy-policy\">هذه الصفحة</a> للحصول على أحدث إصدار من سياسة الخصوصية هذه.
+ شروط الخدمة
+ باستخدام %s ، فإنك توافق على<br><oppia-noninteractive-policy link=\"tos\"> شروط الخدمة</oppia-noninteractive-policy> و<oppia-noninteractive-policy link=\"privacy\"> سياسة الخصوصية</oppia-noninteractive-policy> .
+ يرجى زيارة <a href=\"https://www.oppia.org/terms\">هذه الصفحة</a> للحصول على أحدث نسخة من هذه الشروط.كيف يمكنني إنشاء ملف تعريف(حساب) جديد؟كيف يمكنني حذف ملف التعريف(حساب)؟كيف يمكنني تغيير بريدي الإلكتروني / رقم هاتفي؟
@@ -514,9 +486,9 @@
<p>إذا لم يتم تحميل مشغل الاستكشاف</p><p><br></p><p>تحقق لمعرفة ما إذا كان التطبيق محدثًا أم لا:</p><p> <ul> <li> انتقل إلى متجر Play وتأكد من تحديث التطبيق إلى أحدث إصدار </li></ul><p><br></p><p>تحقق من اتصالك بالإنترنت:</p><ul><li> إذا كان اتصالك بالإنترنت بطيئًا ، فحاول إعادة الاتصال بشبكة Wi-Fi أو الاتصال بشبكة أخرى. </li></ul><p>اطلب من المشرف التحقق من أجهزتهم واتصال الإنترنت:</p><ul><li> اطلب من المشرف استكشاف الأخطاء وإصلاحها باستخدام الخطوات المذكورة أعلاه </li></ul><p>أخبرنا إذا كنت لا تزال تواجه مشكلات في التحميل:</p><ul><li> أبلغ عن مشكلة عن طريق الاتصال بنا على admin@oppia.org. </li></ul><p>إذا لم يتم تشغيل الصوت الخاص بك</p><p><br></p><p>تحقق لمعرفة ما إذا كان التطبيق محدثًا أم لا:</p><ul><li>انتقل إلى متجر Play وتأكد من تحديث التطبيق إلى أحدث إصدار</li></ul><p><br></p><p>تحقق من اتصالك بالإنترنت:</p><ul><li>إذا كان اتصالك بالإنترنت بطيئًا ، فحاول إعادة الاتصال بشبكة Wi-Fi أو الاتصال بشبكة أخرى. قد يتسبب الإنترنت البطيء في تحميل الصوت بشكل غير منتظم ، مما يجعل من الصعب تشغيله.</li></ul><p><br></p><p>اطلب من المسؤول التحقق من أجهزتهم واتصال الإنترنت:</p><ul><li>اطلب من المسؤول استكشاف الأخطاء وإصلاحها باستخدام الخطوات المذكورة أعلاه</li></ul><p><br></p><p>أخبرنا إذا كنت لا تزال تواجه مشكلات في التحميل:</p><ul><li>أبلغ عن مشكلة عن طريق الاتصال بنا على admin@oppia.org.</li></ul><p> إذا لم تتمكن من العثور على سؤالك أو كنت ترغب في الإبلاغ عن خطأ ، فاتصل بنا على admin@oppia.org. </p>
- نشاط اختبار جزء تحرير ملف التعريف
- يتحكم المسؤول في نشاط اختبار التجزئة
- أكمل دراستك
+ نشاط اختبار جزء تحرير ملف التعريف
+ يتحكم المسؤول في نشاط اختبار التجزئة
+ أكمل دراستكانتقل إلى الجزء السفلي من الشاشة للحصول على تلميح.اختر كل الإجابات الصحيحة من فضلك.يمكنك أن تختار المزيد من الخيارات
diff --git a/app/src/main/res/values-pcm-rNG/strings.xml b/app/src/main/res/values-pcm-rNG/strings.xml
index b79f8985c41..9c61b8fb411 100644
--- a/app/src/main/res/values-pcm-rNG/strings.xml
+++ b/app/src/main/res/values-pcm-rNG/strings.xml
@@ -6,165 +6,150 @@
* Yigakpoa
-->
- Navigation header
- Options
- My Downloads
- Help
+ Options
+ My Downloads
+ HelpLesson Player
- play exploration
+ play explorationHelp
- Close
- Change Profile
- Developer Options
- Administrator Controls
- Navigation Menu Open
- Navigation Menu Close
- Play di audio
- Pause di audio
- %s audio no dey available.
- OK
- Cancel am
- Audio Language
- You dey offline
- Make sure sey Wi-Fi or mobile data dey on, den try am again.
- OK
- OK
- Cancel am
- Na your data you dey use now
- Playing di audio go use plenti mobile data.
- No show this message again
- Concept Card
- Concept Card 1
- Concept Card 2
- Revision Card
+ Close
+ Change Profile
+ Developer Options
+ Administrator Controls
+ Navigation Menu Open
+ Navigation Menu Close
+ Play di audio
+ Pause di audio
+ %s audio no dey available.
+ OK
+ Cancel am
+ Audio Language
+ You dey offline
+ Make sure sey Wi-Fi or mobile data dey on, den try am again.
+ OK
+ OK
+ Cancel am
+ Na your data you dey use now
+ Playing di audio go use plenti mobile data.
+ No show this message again
+ Concept Card
+ Concept Card 1
+ Concept Card 2Comot go the topic page?Wetin you don do before no go save
- Comot
- Kansu-am
+ Comot
+ Kansu-amComot go the topic page?Your progress no go save.
- Kansu-am
- Comot
- Use dis button take comot anytime. We go save your progress.
- You go like make %s read for you? Click on dis button to try am.
- Click here to change voiceover language.
- Ei don reach di highest storage capacity
- Di saved progress for di lesson %s go comot.
- Continue
- Comot without saving progress
- Back to di lesson
- Cram dese skills
- Ratios and Proportional Reasoning
- Choose skills wey you go like to practice.
- Start
- Things about di topic.
- Revise di concepts you learn from di lessons wey you don complete here.
- Practice di concepts wey you learn from lessons wey you don complete.
- Click here to start to play di lesson.
- Find all your lessons for here.
- Revise concepts wey you learn from lessons wey you don complete here.
- Click here to start to play a lesson.
- Continue
- Submit
- Go di former card
- Go di next card
- Submit
- Submit
- Replay
- Return To Di Topic
- Former reply (%s)
- Clicks on %s
- Learn Am Again
- See More
- See Less
- This na sample text view
- FAQs
- Featured Questions
- Frequently Asked Questions
+ Kansu-am
+ Comot
+ Use dis button take comot anytime. We go save your progress.
+ You go like make %s read for you? Click on dis button to try am.
+ Click here to change voiceover language.
+ Ei don reach di highest storage capacity
+ Di saved progress for di lesson %s go comot.
+ Continue
+ Comot without saving progress
+ Back to di lesson
+ Cram dese skills
+ Choose skills wey you go like to practice.
+ Start
+ Things about di topic.
+ Revise di concepts you learn from di lessons wey you don complete here.
+ Practice di concepts wey you learn from lessons wey you don complete.
+ Click here to start to play di lesson.
+ Find all your lessons for here.
+ Revise concepts wey you learn from lessons wey you don complete here.
+ Click here to start to play a lesson.
+ Continue
+ Go di former card
+ Go di next card
+ Submit
+ Replay
+ Return To Di Topic
+ Former reply (%s)
+ Clicks on %s
+ See More
+ See Less
+ This na sample text view
+ FAQs
+ Featured QuestionsFAQs (Frequently Asked Questions)PIN verificationIntroduction
- Frequently Asked Questions (FAQs)
- Info
- Lessons
- Practice
- Revision
- Administrator Controls
- Topic page
- Topic: %s
- Topic
+ Frequently Asked Questions (FAQs)
+ Info
+ Lessons
+ Practice
+ Revision
+ Topic page
+ Topic: %sTopics wey dey in Progress
- Chapter %s: %s
- Chapter %s with title %s don complete
- Chapter %s with title %s dey in progress
- Complete Chapter %s: %s to unlock dis chapter.
- Chapter %s: %s dey locked currently. Abeg complete chapter %s: %s to fit unlock dis chapter.
- Finish the chapter wey dey before to fit open dis chapter
- Enter text.
- Enter fraction wey dey in di form x/x, or mixed nomba wey dey in di form x x/x.
- Enter fraction wey dey in di form x/x.
- Enter a nomba.
- Write nombas with units for here.
- Use only nombas write an expression for here.
- Write an expression for here.
- Write an equation for here.
- Abeg remove di spaces between di nombas for your ansa.
- Abeg close or remove di bracket.
- Abeg remove di bracket wey dey around di whole ansa: \'%s\'.
- Abeg remove di extra bracket wey dey around di \'(%1$s)\', for example: \'%1$s\'.
- Abeg remove di extra bracket wey dey around \'(%1$s)\', for example: \'%1$s\'.
- Invalid \'%s\' dey for inside di ansa. Abeg remove am.
- Abeg arrange di order of %1$s & %2$s. For example: %2$s%1$s.
- %1$s and %2$s suppose dey separated by a nomba or a variable.
- Abeg remove di extra symbols for your ansa.
- Ei get a nomba or a variable wey dey miss before or afta di addition sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
- Ei get a nomba or a variable wey dey miss before or afta di multiplication sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
- Ei get a nomba or a variable wey dey miss before or afta di division sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
- Ei get a nomba or a variable wey dey miss before or afta di exponentiation sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
- Ei be like sey a nomba or a variable dey miss afta di addition sign \'%s\'.
- Ei be like sey a nomba or a variable dey miss afta di subtraction sign \'%s\'.
- Ei be like sey a nomba or a variable dey miss afta di multiplication sign \'%s\'.
- Ei be like sey a nomba or a variable dey miss afta di division sign \'%s\'.
- Ei be like sey a nomba or a variable dey miss afta di exponentiation sign \'%s\'.
- Sorry, di app no dey support variables in exponents. Abeg revise your ansa.
- Sorry, di app no dey support powers wey dey higher dan 5. Abeg revise your ansa.
- Sorry, di app no dey support repeated powers/exponents. Abeg reduce your ansa to one power.
- Input dey miss for square root.
- Dividing by zero dey invalid. Abeg revise your ansa.
- Ei be like sey you done enter some variables. Abeg make sure sey na only nombas dey your ansa and remove any variables from your ansa.
- Abeg use di variables wey dey di question and not %s.
- Your equation dey miss an \'=\' sign.
- Your equation get too many \'=\' signs. Ei suppose get only one.
- One of di sides of \'=\' for your equation dey empty.
- Function \'%s\' no dey supported. Abeg revise your ansa.
- Na sqrt you mean? If not, abeg separate di variables with multiplication signs.
- Sorry, we no fit understand your ansa. Abeg check am to make sure any mistake no dey.
- Enable audio voiceover for dis lesson.
- Stories wey you just play
- Stori wey you play last
- View All
- You play am last week
- You play am last month
+ Chapter %s: %s
+ Chapter %s with title %s don complete
+ Chapter %s with title %s dey in progress
+ Complete Chapter %s: %s to unlock dis chapter.
+ Complete Chapter %s: %s to unlock dis chapter.
+ Finish the chapter wey dey before to fit open dis chapter
+ Enter text.
+ Enter fraction wey dey in di form x/x, or mixed nomba wey dey in di form x x/x.
+ Enter fraction wey dey in di form x/x.
+ Enter a nomba.
+ Use only nombas write an expression for here.
+ Write an expression for here.
+ Write an equation for here.
+ Abeg remove di spaces between di nombas for your ansa.
+ Abeg close or remove di bracket.
+ Abeg remove di bracket wey dey around di whole ansa: \'%s\'.
+ Abeg remove di extra bracket wey dey around di \'(%1$s)\', for example: \'%1$s\'.
+ Abeg remove di extra bracket wey dey around \'(%1$s)\', for example: \'%1$s\'.
+ Invalid \'%s\' dey for inside di ansa. Abeg remove am.
+ Abeg arrange di order of %1$s & %2$s. For example: %2$s%1$s.
+ %1$s and %2$s suppose dey separated by a nomba or a variable.
+ Abeg remove di extra symbols for your ansa.
+ Ei get a nomba or a variable wey dey miss before or afta di addition sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
+ Ei get a nomba or a variable wey dey miss before or afta di multiplication sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
+ Ei get a nomba or a variable wey dey miss before or afta di division sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
+ Ei get a nomba or a variable wey dey miss before or afta di exponentiation sign \'%1$s\'? If not, abeg remove di extra \'%1$s\'.
+ Ei be like sey a nomba or a variable dey miss afta di addition sign \'%s\'.
+ Ei be like sey a nomba or a variable dey miss afta di subtraction sign \'%s\'.
+ Ei be like sey a nomba or a variable dey miss afta di multiplication sign \'%s\'.
+ Ei be like sey a nomba or a variable dey miss afta di division sign \'%s\'.
+ Ei be like sey a nomba or a variable dey miss afta di exponentiation sign \'%s\'.
+ Sorry, di app no dey support variables in exponents. Abeg revise your ansa.
+ Sorry, di app no dey support powers wey dey higher dan 5. Abeg revise your ansa.
+ Sorry, di app no dey support repeated powers/exponents. Abeg reduce your ansa to one power.
+ Input dey miss for square root.
+ Dividing by zero dey invalid. Abeg revise your ansa.
+ Ei be like sey you done enter some variables. Abeg make sure sey na only nombas dey your ansa and remove any variables from your ansa.
+ Abeg use di variables wey dey di question and not %s.
+ Your equation dey miss an \'=\' sign.
+ Your equation get too many \'=\' signs. Ei suppose get only one.
+ One of di sides of \'=\' for your equation dey empty.
+ Function \'%s\' no dey supported. Abeg revise your ansa.
+ Na sqrt you mean? If not, abeg separate di variables with multiplication signs.
+ Sorry, we no fit understand your ansa. Abeg check am to make sure any mistake no dey.
+ Stories wey you just play
+ Stori wey you play last
+ View All
+ You play am last week
+ You play am last monthChapter List
- Picture for %s
- Stories Wey You Fit Play
- Go up
- Stories wey you just play
- Topic Wey You Don Download
- You don download am
- Practice Mode
- Question %s of %s
- Complete
- Finished
- You don finish all of di questions! You fit choose to play anoda set of questions, or go back to di topic.
- In Progress
- Completed
- Show di chapter list
- Hide di chapter list
- Play/Pause Audio
- How you like am
+ Picture for %s
+ Stories Wey You Fit Play
+ Go up
+ Stories wey you just play
+ Topic Wey You Don Download
+ Practice Mode
+ Question %s of %s
+ Complete
+ Finished
+ You don finish all of di questions! You fit choose to play anoda set of questions, or go back to di topic.
+ In Progress
+ Completed
+ Show di chapter list
+ Hide di chapter listProfile Progress Page
- Find-amAbeg only use numerical digits, spaces or forward slashes (/)Abeg enter a valid fraction (e.g., 5/3 or 1 2/3)Abeg no put 0 for di denominator
@@ -183,7 +168,6 @@
%s MB%s GBYou get am!
- Topic: %s1 Chapter%s Chapters
@@ -210,222 +194,211 @@
%s Topics in Progress%s Topics in Progress
- Page to select profile
- Administrator
- Select your profile
- Add Profile
- Set up Plenty Profiles
- Add up to 10 users to your account. Perfect for families and classrooms.
- Administrator Controls
- Language
- Administrator Controls
+ Page to select profile
+ Administrator
+ Select your profile
+ Add Profile
+ Set up Plenty Profiles
+ Add up to 10 users to your account. Perfect for families and classrooms.
+ Administrator Controls
+ Language
+ Administrator ControlsAuthorise to add profilesAuthorise to access Administrator Controls
- Administrator Authorization Required
- Enter di Administrator PIN in order to create a new account.
- Enter di Administrator PIN in order to access Administrator Controls.
- Administrator\'s PIN
- Administrator PIN no correct. Abeg try again.
- Abeg enter Administrator PIN.
- Submit
- Close
- Before we add profiles, we need to protect your account by creating a PIN. Dis wan go give you di ability to authorize manage profiles for di device.
- You fit use PIN wey you don set for personal accounts like banking or social security.
- New 5-Digit PIN
- Confirm 5-Digit PIN
- Your PIN suppose be 5 digits long.
- Abeg make sure sey di two PINs match.
- Save
+ Administrator Authorization Required
+ Enter di Administrator PIN in order to create a new account.
+ Enter di Administrator PIN in order to access Administrator Controls.
+ Administrator\'s PIN
+ Administrator PIN no correct. Abeg try again.
+ Abeg enter Administrator PIN.
+ Submit
+ Close
+ Before we add profiles, we need to protect your account by creating a PIN. Dis wan go give you di ability to authorize manage profiles for di device.
+ You fit use PIN wey you don set for personal accounts like banking or social security.
+ New 5-Digit PIN
+ Confirm 5-Digit PIN
+ Your PIN suppose be 5 digits long.
+ Abeg make sure sey di two PINs match.
+ SaveAuthorise to add profiles
- Add Profile
- Add Profile
- Name
- 3-Digit PIN
- Confirm 3-Digit PIN
- Allow Download Access
- User go dey able to download and delete content without Administrator PIN.
- Create
- Close
- With a PIN, nobody else go fit access a profile besides dis assigned user.
- We fail to save your avatar image. Abeg try again.
- Anoda profile don already dey use dis name.
- Abeg put valid name for dis profile.
- Abeg choose profile name wey no get nombas or symbols.
- Your PIN suppose dey 3 digits long.
- Abeg make sure sey di two PINs match.
- More information on 3-digit PINs.
- Current profile picture
- Edit profile picture
- Welcome to %s!
- Learn anything wey you want in an effective and enjoyable way.
- Add users to your account.
- Share di experience and create up to 10 profiles.
- Download for offline.
- Continue to learn your lessons without internet connection.
- Have fun!
- Enjoy your learning adventures with our free, effective lessons.
- Skip
- Next
- Get Started
- Slide %s of %s
- Hi, %s!
- Abeg put your Administrator PIN.
- Abeg put your PIN.
- Administrator’s 5-Digit PIN.
- User’s 3-Digit PIN.
- You don forget your PIN?
- Di PIN no correct.
- show
- hide am
- Close
- PIN change is successful
- You don forget your PIN?
- To reset your PIN, you go need to clear all di data wey don save for %s.\n\nRememba sey dis action go make all profiles and user progress delete, and you no fit undo am. Also, di app go close wen ei don complete and you go need need to reopen am.
- Reset %s Data
- Confirm %s Data Reset
- You dey sure sey you wan delete all %s profiles for dis device? You no fit undo dis operation.
- Yes
- No
- Show/Hide password icon
- Password shown icon
- Password hidden icon
- Put your PIN
- Put PIN
- Administrator\'s PIN
- Access to Administrator Settings
- You need administrator\'s PIN to change user\'s PIN
- Cancel
- Submit
- Administrator PIN no correct. Abeg try again.
- %1$s\'s New PIN.
- Put a New Pin
- Dis PIN go be %s\'s new PIN and ei go need am wen signing in.
+ Add Profile
+ Name
+ 3-Digit PIN
+ Confirm 3-Digit PIN
+ Allow Download Access
+ User go dey able to download and delete content without Administrator PIN.
+ Create
+ Close
+ With a PIN, nobody else go fit access a profile besides dis assigned user.
+ Anoda profile don already dey use dis name.
+ Abeg put valid name for dis profile.
+ Abeg choose profile name wey no get nombas or symbols.
+ Your PIN suppose dey 3 digits long.
+ Abeg make sure sey di two PINs match.
+ More information on 3-digit PINs.
+ Current profile picture
+ Edit profile picture
+ Welcome to %s!
+ Learn anything wey you want in an effective and enjoyable way.
+ Add users to your account.
+ Share di experience and create up to 10 profiles.
+ Download for offline.
+ Continue to learn your lessons without internet connection.
+ Have fun!
+ Enjoy your learning adventures with our free, effective lessons.
+ Skip
+ Next
+ Get Started
+ Slide %s of %s
+ Hi, %s!
+ Abeg put your Administrator PIN.
+ Abeg put your PIN.
+ Administrator’s 5-Digit PIN.
+ User’s 3-Digit PIN.
+ You don forget your PIN?
+ Di PIN no correct.
+ show
+ hide am
+ Close
+ PIN change is successful
+ You don forget your PIN?
+ To reset your PIN, you go need to clear all di data wey don save for %s.\n\nRememba sey dis action go make all profiles and user progress delete, and you no fit undo am. Also, di app go close wen ei don complete and you go need need to reopen am.
+ Reset %s Data
+ Confirm %s Data Reset
+ You dey sure sey you wan delete all %s profiles for dis device? You no fit undo dis operation.
+ Yes
+ No
+ Password shown icon
+ Password hidden icon
+ Put PIN
+ Administrator\'s PIN
+ Access to Administrator Settings
+ You need administrator\'s PIN to change user\'s PIN
+ Cancel
+ Submit
+ Administrator PIN no correct. Abeg try again.
+ %1$s\'s New PIN.
+ Put a New Pin
+ Dis PIN go be %s\'s new PIN and ei go need am wen signing in.My Downloads
- Downloads
- Updates (2)
+ Downloads
+ Updates (2)You go like to exit your profile?
- Cancel
- Exit
+ Cancel
+ ExitHome
- From now, you go see lessons recommended for you here.
- Select a Topic to Start
+ From now, you go see lessons recommended for you here.
+ Select a Topic to StartProfilesEdit Profile
- Created on %s
- Last used
- Rename
- Reset PIN
- Mark Chapters Completed
- Enable Quick Language Switching
- Allow dis user to quickly switch between English and Swahili within a lesson.
- Profile Deletion
- Permanently delete dis profile?
- All progress go delete and you no fit get am back.
- Delete
- Cancel
- Allow Download Access
- Di user no fit download and delete content without Administrator password
+ Created on %s
+ Last used
+ Rename
+ Reset PIN
+ Mark Chapters Completed
+ Enable Quick Language Switching
+ Allow dis user to quickly switch between English and Swahili within a lesson.
+ Profile Deletion
+ Permanently delete dis profile?
+ All progress go delete and you no fit get am back.
+ Delete
+ Cancel
+ Allow Download Access
+ Di user no fit download and delete content without Administrator passwordProfile Picture
- Profile Picture
- Cancel
- View Profile Picture
- Choose From Library
+ Profile Picture
+ Cancel
+ View Profile Picture
+ Choose From LibraryRename Profile
- New Name
- Save
+ New Name
+ SaveReset PIN
- Put new PIN for di user to put wan dey wan enter deir profile.
- 3-Digit PIN
- 5-Digit PIN
- Confirm 3-Digit PIN
- Confirm 5-Digit PIN
- Your PIN suppose dey 3 digits long.
- Your PIN suppose dey 5 digits long.
- Create a 3-Digit PIN
- Required
- Back Button
- Next
- Learner Study Analytics
- General
- Edit account
- Profile Management
- Edit profiles
- Download Permissions
- Download and update only on Wi-fi
- Topics go dey downloaded and updated only on Wi-fi. Any downloads or updates of cellular data go dey queue.
- Automatically update topics
- Downloaded topics wey get new content available go automatically update.
- App Information
- App Version
- Account Actions
- Log Out
- Cancel
- Ok
- You dey sure sey you wan log out of your profile?
- App Version %s
- Di last update install on %s. Use di version nomba for up to send feedback about bugs.
+ Put new PIN for di user to put wan dey wan enter deir profile.
+ 3-Digit PIN
+ 5-Digit PIN
+ Confirm 3-Digit PIN
+ Confirm 5-Digit PIN
+ Your PIN suppose dey 3 digits long.
+ Your PIN suppose dey 5 digits long.
+ Create a 3-Digit PIN
+ Required
+ Back Button
+ Next
+ Learner Study Analytics
+ General
+ Edit account
+ Profile Management
+ Edit profiles
+ Download Permissions
+ Download and update only on Wi-fi
+ Topics go dey downloaded and updated only on Wi-fi. Any downloads or updates of cellular data go dey queue.
+ Automatically update topics
+ Downloaded topics wey get new content available go automatically update.
+ App Information
+ App Version
+ Account Actions
+ Log Out
+ Cancel
+ Ok
+ You dey sure sey you wan log out of your profile?
+ App Version %s
+ Di last update install on %s. Use di version nomba for up to send feedback about bugs.App VersionApp LanguagePreferred Audio LanguageReading Text Size
- Reading Text Size
- Story text go look like dis.
- A
- Preferred Audio Language
- App Language
- Reading Text Size
- Small
- Medium
- Large
- Extra Large
- Slide seekbar to control di text size.
- Profile
- 2 Stories
- Topics in Progress
- Topic in Progress
- Stories Completed
- Story Completed
+ Preferred Audio Language
+ App Language
+ Reading Text Size
+ Small
+ Medium
+ Large
+ Extra Large
+ Profile
+ Topics in Progress
+ Topic in Progress
+ Stories Completed
+ Story CompletedOptionsStories CompletedApp walkthrough
- Learn new math skills with stories wey go show you how to use dem for your daily life
- \"Welcome %s!\"
- Wetin you wan learn?
- Great
- Make we start.
- Yes
- No…
- Pick a \ndifferent topic.
- You dey interested in:\n%s?
- New hint dey
- No new hint dey
- Show hints and solution
- Hint %s
- Close
- Hints
- Show solution
- Show Solution
- Solution
- Show Hint
- Hide Hint
- Hide solution
- Di only solution na: %s
- One solution na: %s
- Dis go show di solution. You dey sure?
- Show
+ Learn new math skills with stories wey go show you how to use dem for your daily life
+ \"Welcome %s!\"
+ Wetin you wan learn?
+ Great
+ Make we start.
+ Yes
+ No…
+ Pick a \ndifferent topic.
+ You dey interested in:\n%s?
+ New hint dey
+ No new hint dey
+ Show hints and solution
+ Hint %s
+ Close
+ Hints
+ Show solution
+ Show Solution
+ Solution
+ Show Hint
+ Hide Hint
+ Hide solution
+ Di only solution na: %s
+ One solution na: %s
+ Dis go show di solution. You dey sure?
+ Showjust nowrecentlyyesterday
- Go back to topic
- Go back to lesson
- Explanation:
- If two items dey equal, join dem.
- Link to item %s
- Unlink items at %s
- Move item down to %s
- Move item up to %s
- Up
- Down
+ Explanation:
+ If two items dey equal, join dem.
+ Link to item %s
+ Unlink items at %s
+ Move item down to %s
+ Move item up to %s
+ Up
+ Down%s %s0 minutes ago
@@ -440,9 +413,8 @@
a day ago%s days ago
- topic_revision_recyclerview_tag
- ongoing_recycler_view_tag
- Abeg select all di correct choices.
+ topic_revision_recyclerview_tag
+ ongoing_recycler_view_tagUnsupported app versionDis version of di app no longer dey supported. Abeg update am from di Play Store.Close app
@@ -457,56 +429,55 @@
Update your Android OSWe go advise make you update your Android OS to fit enjoy %s\'s new features and lessons.\n\nGo your phone\'s Settings app to update your OS.Dismiss
- Developer Build
- Alpha
- Beta
+ Developer Build
+ Alpha
+ BetaBeta Notice
- Hello! Your app don dey update to di Beta version. If you experience any problems while you dey use di app, or get any questions, abeg contact us at android-feedback@oppia.org.
- No show dis message again
+ Hello! Your app don dey update to di Beta version. If you experience any problems while you dey use di app, or get any questions, abeg contact us at android-feedback@oppia.org.
+ No show dis message againOKGeneral Availability NoticeHello! Your app don dey update to di General Availability version. If you experience any problems while you dey use di app, or get any questions, abeg contact us at android-feedback@oppia.org.No show dis message again
+ Go back to lessonOKtoEnter a ratio in di form x:y.
- Tap here to put text.
- Write the digit for here.
- Write here.
- Smallest text size
- Largest text size
+ Tap here to put text.
+ Write the digit for here.
+ Write here.Coming SoonRecommended StoriesStories For YouPractice ModeSkill revision page
- Audio progress
- Change language
- Audio, ON
- Audio, OFF
- Correct submitted ansa
- Correct submitted ansa: %s
- Incorrect submitted ansa
- Incorrect submitted ansa: %s
+ Audio progress
+ Change language
+ Audio, ON
+ Audio, OFF
+ Correct submitted ansa
+ Correct submitted ansa: %s
+ Incorrect submitted ansa
+ Incorrect submitted ansa: %sThird-party Dependenciesversion %sCopyright LicensesCopyright License ViewerGo back to %s
- third-party dependencies list
- copyright licenses list
+ third-party dependencies list
+ copyright licenses listResume Lesson
- Continue
- Start Over
- Good morning,
- Good afternoon,
- Good evening,
+ Continue
+ Start Over
+ Good morning,
+ Good afternoon,
+ Good evening,Policy Page
- Privacy Policy
- Please visit <a href=\"https://www.oppia.org/privacy-policy\">dis page</a> for di latest version of dis privacy policy.
- Terms of Service
- By using %s, you dey agree to our <br> <oppia-noninteractive-policy link=\"tos\">Terms of Service</oppia-noninteractive-policy> and <oppia-noninteractive-policy link=\"privacy\">Privacy Policy</oppia-noninteractive-policy>.
- Abeg visit <a href=\"https://www.oppia.org/terms\">dis page</a> for di latest version of dese terms.
+ Privacy Policy
+ Please visit <a href=\"https://www.oppia.org/privacy-policy\">dis page</a> for di latest version of dis privacy policy.
+ Terms of Service
+ By using %s, you dey agree to our <br> <oppia-noninteractive-policy link=\"tos\">Terms of Service</oppia-noninteractive-policy> and <oppia-noninteractive-policy link=\"privacy\">Privacy Policy</oppia-noninteractive-policy>.
+ Abeg visit <a href=\"https://www.oppia.org/terms\">dis page</a> for di latest version of dese terms.How I go fit create a new profile?How I go delete a profile?How I go take change my email/phone nomba?
@@ -523,59 +494,59 @@
<p>If di Exploration Player no dey load</p><p><br></p><p>Check to see if di app dey up to date:</p><p><ul><li> Go to di Play Store and make sure sey di app dey updated to di latest version </li></ul><p><br></p><p>Check your internet connection:</p><ul><li> If your internet connection dey slow, try re-connecting to your Wi-Fi network or connecting to a different network. </li></ul><p>Ask di Administrator to check their device and internet connection:</p><ul><li> Get di Administrator to troubleshoot using di steps above </li></ul><p>Let us know if you still dey get issues with loading:</p><ul><li> Report a problem by contacting us at admin@oppia.org. </li></ul><p>If your audio no dey play</p><p><br></p><p>Check to see if di app dey up to date:</p><ul><li> Go to di Play Store and make sure sey di app dey updated to di latest version </li></ul><p><br></p><p>Check your internet connection:</p><ul><li> If your internet connection dey slow, try re-connecting to your Wi-Fi network or connecting to a different network. Slow internet fit cause di audio to load irregularly, and go make am difficult to play. </li></ul><p><br></p><p>Ask di Administrator to check their device and internet connection:</p><ul><li> Get di Administrator to troubleshoot using di steps for up</li></ul><p><br></p><p>Let us know if you still dey get issues with loading:</p><ul><li> Report a problem by contacting us at admin@oppia.org. </li></ul><p>If you no fit find your question or you go like to report a bug, contact us for admin@oppia.org.</p>
- Profile Edit Fragment Test Activity
- Administrator Controls Fragment Test Activity
- Continue Studying
+ Profile Edit Fragment Test Activity
+ Administrator Controls Fragment Test Activity
+ Continue StudyingGo di bottom of di screen for a hint.Abeg select all di correct choices.You fit select more choices.No more dan %s choices go dey selected.Survey
- Previous
- Submit
- Leave your feedback for here
- Continue Survey
- Exit
- Exit Survey
- You sure sey you wan exit the survey?
- Your feedback go help us serve learners like you well-well. You go like complete a short survey about your experience?
- Begin Survey
- Maybe Later
- Thank you for completing the survey. We hope sey you don enjoy using %s!
- Exit survey
- We go like hear how you feel!
- Thank you
- 0 - Not at all likely
- 10 - Extremely likely
- Abeg select one of the following:
- I be learner
- I be teacher
- I be parent
- Other
- How you go feel if you no fit use %s again?
- Very disappointed
- Somewhat disappointed
- Not disappointed
- N/A - I no dey use %s again
- We dey happy sey you don enjoy your experience with %s. Abeg share wetin help you the most:
- Thanks for responding! How we go fit provide better experience for you?
- Abeg help us improve your experience! Tell us the primary reason for your score:
- On a scale from 0–10, how likely you dey to recommend %s to a friend or colleague?
- The previous subtopic na %s
- The next subtopic na %s
- App Info
- Spotlight Overlay Arrow
- Close Spotlight Button
- Previous State Navigation Button
- Developer Options Icon
- Administrator Controls Icon
+ Previous
+ Submit
+ Leave your feedback here
+ Continue Survey
+ Exit
+ Exit Survey
+ You sure sey you wan exit the survey?
+ Your feedback go help us serve learners like you well-well. You go like complete a short survey about your experience?
+ Begin Survey
+ Maybe Later
+ Thank you for completing the survey. We hope sey you don enjoy using %s!
+ Exit survey
+ We go like hear how you feel!
+ Thank you
+ 0 - Not at all likely
+ 10 - Extremely likely
+ Abeg select one of the following:
+ I be learner
+ I be teacher
+ I be parent
+ Other
+ How you go feel if you no fit use %s again?
+ Very disappointed
+ Somewhat disappointed
+ Not disappointed
+ N/A - I no dey use %s again
+ We dey happy sey you don enjoy your experience with %s. Abeg share wetin help you the most:
+ Thanks for responding! How we go fit provide better experience for you?
+ Abeg help us improve your experience! Tell us the primary reason for your score:
+ On a scale from 0–10, how likely you dey to recommend %s to a friend or colleague?
+ The previous subtopic na %s
+ The next subtopic na %s
+ App Info
+ Spotlight Overlay Arrow
+ Close Spotlight Button
+ Previous State Navigation Button
+ Developer Options Icon
+ Administrator Controls IconOptions Menu
- Previous Button
- Next Button
- Language Icon
- Setting Icon
- Profile Picture Image View
- Lock Icon
- Download Status
+ Previous Button
+ Next Button
+ Language Icon
+ Setting Icon
+ Profile Picture Image View
+ Lock Icon
+ Download Statushtml Content
diff --git a/app/src/main/res/values-pt-rBR/strings.xml b/app/src/main/res/values-pt-rBR/strings.xml
index 03ef6e1b366..77bf2f85eb9 100644
--- a/app/src/main/res/values-pt-rBR/strings.xml
+++ b/app/src/main/res/values-pt-rBR/strings.xml
@@ -11,160 +11,146 @@
* YuriNikolai
-->
- Cabeçalho de navegação
- Opções
- Meus Downloads
- Ajuda
+ Opções
+ Meus Downloads
+ AjudaReprodutor de ExploraçãoAjuda
- Fechar
- Trocar Perfil
- Opções de Desenvolvedor
- Controles do administrador
- Menu de Navegação Aberto
- Fechar Menu de Navegação
- Tocar áudio
- Pausar áudio
- %s o áudio não está disponível.
- OK
- Cancelar
- Idioma de Áudio
- Atualmente Offline
- Certifique-se de que o Wi-Fi ou os dados móveis estejam ativados e tente novamente.
- OK
- OK
- Cancelar
- Atualmente em Dados Móveis
- O streaming de áudio pode usar muitos dados móveis.
- Não mostre esta mensagem novamente
- Cartão de Conceito
- Cartão de Revisão
+ Fechar
+ Trocar Perfil
+ Opções de Desenvolvedor
+ Controles do administrador
+ Menu de Navegação Aberto
+ Fechar Menu de Navegação
+ Tocar áudio
+ Pausar áudio
+ %s o áudio não está disponível.
+ OK
+ Cancelar
+ Idioma de Áudio
+ Atualmente Offline
+ Certifique-se de que o Wi-Fi ou os dados móveis estejam ativados e tente novamente.
+ OK
+ OK
+ Cancelar
+ Atualmente em Dados Móveis
+ O streaming de áudio pode usar muitos dados móveis.
+ Não mostre esta mensagem novamente
+ Cartão de ConceitoPretende ir para a página do tópico?Seu progresso não será salvo.
- Sair
- Cancelar
+ Sair
+ CancelarPretende ir para a página do tópico?Seu progresso não será salvo.
- Cancelar
- Sair
- Saia a qualquer momento usando este botão. Nós salvaremos seu progresso.
- Gostaria que %s lesse para você? Toque neste botão para experimentar!
- Toque para alterar o idioma da narração.
- Capacidade máxima de armazenamento atingida
- O progresso salvo para a lição \"%s\" será excluído.
- Continuar
- Sair sem salvar o progresso
- De volta à aula
- Domine Essas Habilidades
- Razão e Proporção
- Selecione as habilidades que você gostaria de praticar.
- Começar
- Detalhes sobre o tópico.
- Revise os conceitos aprendidos nas lições concluídas aqui.
- Pratique os conceitos aprendidos nas lições concluídas.
- Toque aqui para começar a tocar uma lição.
- Encontre todas as suas lições aqui.
- Revise os conceitos aprendidos nas lições concluídas aqui.
- Toque aqui para começar a tocar uma lição.
- Continuar
- Enviar
- Voltar ao cartão anterior
- Avançar para o próximo cartão
- Enviar
- Repetir
- Retornar ao Tópico
- Respostas Anteriores (%s)
- Cliques em %s
- Aprender Novamente
- Veja Mais
- Veja Menos
- FAQs
- Perguntas em Destaque
- Perguntas Frequentes
+ Cancelar
+ Sair
+ Saia a qualquer momento usando este botão. Nós salvaremos seu progresso.
+ Gostaria que %s lesse para você? Toque neste botão para experimentar!
+ Toque para alterar o idioma da narração.
+ Capacidade máxima de armazenamento atingida
+ O progresso salvo para a lição \"%s\" será excluído.
+ Continuar
+ Sair sem salvar o progresso
+ De volta à aula
+ Domine Essas Habilidades
+ Selecione as habilidades que você gostaria de praticar.
+ Começar
+ Detalhes sobre o tópico.
+ Revise os conceitos aprendidos nas lições concluídas aqui.
+ Pratique os conceitos aprendidos nas lições concluídas.
+ Toque aqui para começar a tocar uma lição.
+ Encontre todas as suas lições aqui.
+ Revise os conceitos aprendidos nas lições concluídas aqui.
+ Toque aqui para começar a tocar uma lição.
+ Continuar
+ Voltar ao cartão anterior
+ Avançar para o próximo cartão
+ Enviar
+ Repetir
+ Retornar ao Tópico
+ Respostas Anteriores (%s)
+ Cliques em %s
+ Veja Mais
+ Veja Menos
+ FAQs
+ Perguntas em DestaqueFAQs (Perguntas Frequentes)Verificação de PINIntrodução
- Perguntas Frequentes (FAQs)
- Info
- Lições
- Prática
- Revisão
- Controles do administrador
- Página do tópico
- Tópico: %s
- Tópico
+ Perguntas Frequentes (FAQs)
+ Info
+ Lições
+ Prática
+ Revisão
+ Página do tópico
+ Tópico: %sTópicos em Andamento
- Capítulo %s: %s
- O capítulo %s com o título %s foi concluído
- O capítulo %s com o título %s está em andamento
- Conclua o capítulo %s: %s para desbloquear este capítulo.
- O capítulo %s: %s está bloqueado no momento. Conclua o capítulo %s: %s para desbloquear esse capítulo.
- Conclua o capítulo anterior para desbloquear este capítulo.
- Inserir texto.
- Insira uma fração na forma x/x, ou um número misto na forma x x/x.
- Insira uma fração no formato x/x.
- Digite um número.
- Escreva números com unidades aqui.
- Digite uma expressão aqui, usando apenas números.
- Digite uma expressão aqui.
- Digite uma equação aqui.
- Por favor, remova os espaços entre os números em sua resposta.
- Feche ou remova os parênteses.
- Por favor, remova os parênteses ao redor da resposta inteira: \'%s\'.
- Remova parênteses extras ao redor de \'(%1$s)\', por exemplo: \'%1$s\'.
- Remova parênteses extras ao redor de \'(%1$s)\', por exemplo: \'%1$s\'.
- Há um \'%s\' inválido na resposta. Por favor, remova-o.
- Reorganize a ordem de %1$s e %2$s. Por exemplo: %2$s%1$s.
- %1$s e %2$s devem ser separados por um número ou uma variável.
- Por favor, remova os símbolos extras em sua resposta.
- Está faltando um número ou variável antes ou depois do símbolo de adição \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
- Está faltando um número ou variável antes ou depois do símbolo de multiplicação \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
- Está faltando um número ou variável antes ou depois do símbolo de divisão \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
- Está faltando um número ou variável antes ou depois do símbolo de exponenciação \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
- Parece haver um número ou uma variável faltando após o símbolo de adição \'%s\'.
- Parece haver um número ou uma variável faltando após o símbolo de subtração \'%s\'.
- Parece haver um número ou uma variável faltando após o símbolo de multiplicação \'%s\'.
- Parece haver um número ou uma variável faltando após o símbolo de divisão \'%s\'.
- Parece haver um número ou uma variável faltando após o símbolo de exponenciação \'%s\'.
- Desculpe, variáveis em expoentes não são suportadas pelo aplicativo. Por favor, revise sua resposta.
- Desculpe, potências maiores do que 5 não são suportadas pelo serviço. Por favor, revise sua resposta.
- Desculpe, potências/expoentes repetidos não são suportados pelo aplicativo. Por favor, limite sua resposta a uma potência.
- Está faltando entrada para raiz quadrada.
- Dividir por zero é inválido. Por favor, revise sua resposta.
- Parece que você inseriu algumas variáveis. Certifique-se de que sua resposta contém apenas números e remova quaisquer variáveis de sua resposta.
- Por favor, use as variáveis especificadas na pergunta e não %s.
- Sua equação está faltando um sinal \'=\'.
- Sua equação contém muitos sinais de \'=\'. Deveria conter apenas um.
- Um dos lados do \'=\' em sua equação está vazio.
- A função \'%s\' não é suportada. Por favor, revise sua resposta.
- Será que queria dizer sqrt? Se não, por favor, separe as variáveis com símbolos de multiplicação.
- Desculpe, não conseguimos entender sua resposta. Por favor, verifique se não há erros.
- Habilitar narração de áudio para esta lição.
- Histórias Reproduzidas Recentemente
- Últimas Histórias Reproduzidas
- Ver Tudo
- Reproduzidas na Última Semana
- Reproduzidas no Último Mês
+ Capítulo %s: %s
+ O capítulo %s com o título %s foi concluído
+ O capítulo %s com o título %s está em andamento
+ Conclua o capítulo %s: %s para desbloquear este capítulo.
+ O capítulo %s: %s está bloqueado no momento. Conclua o capítulo %s: %s para desbloquear esse capítulo.
+ Conclua o capítulo anterior para desbloquear este capítulo.
+ Inserir texto.
+ Insira uma fração na forma x/x, ou um número misto na forma x x/x.
+ Insira uma fração no formato x/x.
+ Digite um número.
+ Digite uma expressão aqui, usando apenas números.
+ Digite uma expressão aqui.
+ Digite uma equação aqui.
+ Por favor, remova os espaços entre os números em sua resposta.
+ Feche ou remova os parênteses.
+ Por favor, remova os parênteses ao redor da resposta inteira: \'%s\'.
+ Remova parênteses extras ao redor de \'(%1$s)\', por exemplo: \'%1$s\'.
+ Remova parênteses extras ao redor de \'(%1$s)\', por exemplo: \'%1$s\'.
+ Há um \'%s\' inválido na resposta. Por favor, remova-o.
+ Reorganize a ordem de %1$s e %2$s. Por exemplo: %2$s%1$s.
+ %1$s e %2$s devem ser separados por um número ou uma variável.
+ Por favor, remova os símbolos extras em sua resposta.
+ Está faltando um número ou variável antes ou depois do símbolo de adição \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
+ Está faltando um número ou variável antes ou depois do símbolo de multiplicação \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
+ Está faltando um número ou variável antes ou depois do símbolo de divisão \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
+ Está faltando um número ou variável antes ou depois do símbolo de exponenciação \'%1$s\'? Caso não esteja, remova o \'%1$s\' extra.
+ Parece haver um número ou uma variável faltando após o símbolo de adição \'%s\'.
+ Parece haver um número ou uma variável faltando após o símbolo de subtração \'%s\'.
+ Parece haver um número ou uma variável faltando após o símbolo de multiplicação \'%s\'.
+ Parece haver um número ou uma variável faltando após o símbolo de divisão \'%s\'.
+ Parece haver um número ou uma variável faltando após o símbolo de exponenciação \'%s\'.
+ Desculpe, variáveis em expoentes não são suportadas pelo aplicativo. Por favor, revise sua resposta.
+ Desculpe, potências maiores do que 5 não são suportadas pelo serviço. Por favor, revise sua resposta.
+ Desculpe, potências/expoentes repetidos não são suportados pelo aplicativo. Por favor, limite sua resposta a uma potência.
+ Está faltando entrada para raiz quadrada.
+ Dividir por zero é inválido. Por favor, revise sua resposta.
+ Parece que você inseriu algumas variáveis. Certifique-se de que sua resposta contém apenas números e remova quaisquer variáveis de sua resposta.
+ Por favor, use as variáveis especificadas na pergunta e não %s.
+ Sua equação está faltando um sinal \'=\'.
+ Sua equação contém muitos sinais de \'=\'. Deveria conter apenas um.
+ Um dos lados do \'=\' em sua equação está vazio.
+ A função \'%s\' não é suportada. Por favor, revise sua resposta.
+ Será que queria dizer sqrt? Se não, por favor, separe as variáveis com símbolos de multiplicação.
+ Desculpe, não conseguimos entender sua resposta. Por favor, verifique se não há erros.
+ Histórias Reproduzidas Recentemente
+ Últimas Histórias Reproduzidas
+ Ver Tudo
+ Reproduzidas na Última Semana
+ Reproduzidas no Último MêsLista de Capítulos
- Imagem para %s
- Histórias que Você Pode Reproduzir
- Navegar para cima
- Histórias Reproduzidas Recentemente
- Tópico Baixado
- Baixado
- Modo de Prática
- Questão %s de %s
- Concluído
- Concluído
- Você concluiu todas as perguntas! Você pode escolher reproduzir outro conjunto de perguntas ou retornar ao tópico.
- Em Andamento
- Completado
- Mostrar lista de capítulos
- Esconder lista de capítulos
- Reproduzir/Pausar Áudio
- Preferências
+ Imagem para %s
+ Histórias que Você Pode Reproduzir
+ Navegar para cima
+ Histórias Reproduzidas Recentemente
+ Tópico Baixado
+ Modo de Prática
+ Questão %s de %s
+ Concluído
+ Concluído
+ Você concluiu todas as perguntas! Você pode escolher reproduzir outro conjunto de perguntas ou retornar ao tópico.
+ Em Andamento
+ Completado
+ Mostrar lista de capítulos
+ Esconder lista de capítulosPágina de Progresso do Perfil
- BuscarUse apenas dígitos numéricos, espaços ou barras (/)Insira uma fração válida (por exemplo, 5/3 ou 1 2/3)Por favor, não coloque 0 no denominador
@@ -183,7 +169,6 @@
%s MB%s GBCorreto!
- Tópico: %s1 Capítulo\n \n %s Capítulos\n
@@ -210,276 +195,263 @@
%s Tópicos em andamento%s Tópicos em andamento
- Página de seleção de perfil
- Administrador
- Selecione seu perfil
- Novo Perfil
- Configurar Múltiplos Perfis
- Adicione até 10 usuários à sua conta. Perfeito para famílias e salas de aula.
- Controles do Administrador
- Idioma
- Controles do Administrador
+ Página de seleção de perfil
+ Administrador
+ Selecione seu perfil
+ Novo Perfil
+ Configurar Múltiplos Perfis
+ Adicione até 10 usuários à sua conta. Perfeito para famílias e salas de aula.
+ Controles do Administrador
+ Idioma
+ Controles do AdministradorAutorize para adicionar perfisAutorize para acessar os Controles do Administrador
- Autorização do administrador necessária
- Insira o PIN do administrador para criar uma nova conta.
- Insira o PIN do administrador para acessar os Controles do Administrador.
- PIN do Administrador
- PIN do administrador incorreto. Por favor, tente novamente.
- Insira o PIN do administrador.
- Enviar
- Fechar
- Antes de adicionarmos perfis, precisamos proteger sua conta criando um PIN. Isso lhe dá a capacidade de autorizar o gerenciamento de perfis no dispositivo.
- Use um PIN que você definiu para contas pessoais, como bancos ou previdência social.
- Novo PIN de 5 dígitos
- Confirmar PIN de 5 dígitos
- Seu PIN deve ter 5 dígitos.
- Certifique-se de que os dois PINs coincidam.
- Salvar
+ Autorização do administrador necessária
+ Insira o PIN do administrador para criar uma nova conta.
+ Insira o PIN do administrador para acessar os Controles do Administrador.
+ PIN do Administrador
+ PIN do administrador incorreto. Por favor, tente novamente.
+ Insira o PIN do administrador.
+ Enviar
+ Fechar
+ Antes de adicionarmos perfis, precisamos proteger sua conta criando um PIN. Isso lhe dá a capacidade de autorizar o gerenciamento de perfis no dispositivo.
+ Use um PIN que você definiu para contas pessoais, como bancos ou previdência social.
+ Novo PIN de 5 dígitos
+ Confirmar PIN de 5 dígitos
+ Seu PIN deve ter 5 dígitos.
+ Certifique-se de que os dois PINs coincidam.
+ SalvarAutorize para adicionar perfis
- Novo Perfil
- Novo Perfil
- Nome
- PIN de 3 dígitos
- Confirmar PIN de 3 dígitos
- Permitir Acesso a Download
- O usuário pode baixar e excluir conteúdo sem o PIN do administrador.
- Criar
- Fechar
- Com um PIN, ninguém mais pode acessar um perfil além deste usuário atribuído.
- Falha ao armazenar sua imagem de avatar. Por favor, tente novamente.
- Este nome já está em uso por outro perfil.
- Digite um nome válido para esse perfil.
- Escolha um nome de perfil que não inclua números ou símbolos.
- Seu PIN deve ter 3 dígitos.
- Certifique-se de que os dois PINs coincidam.
- Mais informações sobre PINs de 3 dígitos.
- Foto de perfil atual
- Editar foto de perfil
- Bem-vindo à %s!
- Aprenda o que você quiser de uma forma eficaz e divertida.
- Adicione usuários à sua conta.
- Compartilhe a experiência e crie até 10 perfis.
- Baixe para usar offline.
- Continue aprendendo suas lições sem conexão com a internet.
- Divirta-se!
- Aproveite suas aventuras de aprendizado com nossas lições gratuitas e eficazes.
- Pular
- Próximo
- Começar
- Slide %s de %s
- Olá, %s!
- Por favor, insira o PIN do Administrador.
- Por favor, insira seu PIN.
- PIN de 5 dígitos do administrador.
- PIN de 3 dígitos do usuário.
- Esqueceu o PIN?
- PIN incorreto.
- Mostrar
- Esconder
- Fechar
- A alteração do PIN foi bem-sucedida
- Esqueceu o PIN?
- Para redefinir seu PIN, você precisará limpar todos os dados salvos de %s.\n\nLembre-se de que essa ação fará com que todos os perfis e o progresso do usuário sejam excluídos e não pode ser desfeito. Além disso, o aplicativo será fechado quando isso for concluído e precisará ser reaberto.
- Redefinir dados de %s.
- Confirmar redefinição de dados de %s
- Tem certeza de que deseja excluir todos os perfis %s neste dispositivo? Esta ação não poderá ser desfeita.
- Sim
- Não
- Mostrar/Esconder ícone da senha
- Ícone de mostrar a senha
- Ícone de esconder a senha
- Insira seu PIN
- Insira o PIN
- PIN do Administrador
- Acesso às configurações do administrador
- PIN do administrador necessário para alterar o PIN do usuário
- Cancelar
- Enviar
- PIN do administrador incorreto. Por favor, tente novamente.
- Novo PIN de %1$s
- Insira um Novo Pin
- Esse PIN será o novo PIN de %s e será necessário ao fazer login.
+ Novo Perfil
+ Nome
+ PIN de 3 dígitos
+ Confirmar PIN de 3 dígitos
+ Permitir Acesso a Download
+ O usuário pode baixar e excluir conteúdo sem o PIN do administrador.
+ Criar
+ Fechar
+ Com um PIN, ninguém mais pode acessar um perfil além deste usuário atribuído.
+ Este nome já está em uso por outro perfil.
+ Digite um nome válido para esse perfil.
+ Escolha um nome de perfil que não inclua números ou símbolos.
+ Seu PIN deve ter 3 dígitos.
+ Certifique-se de que os dois PINs coincidam.
+ Mais informações sobre PINs de 3 dígitos.
+ Foto de perfil atual
+ Editar foto de perfil
+ Bem-vindo à %s!
+ Aprenda o que você quiser de uma forma eficaz e divertida.
+ Adicione usuários à sua conta.
+ Compartilhe a experiência e crie até 10 perfis.
+ Baixe para usar offline.
+ Continue aprendendo suas lições sem conexão com a internet.
+ Divirta-se!
+ Aproveite suas aventuras de aprendizado com nossas lições gratuitas e eficazes.
+ Pular
+ Próximo
+ Começar
+ Slide %s de %s
+ Olá, %s!
+ Por favor, insira o PIN do Administrador.
+ Por favor, insira seu PIN.
+ PIN de 5 dígitos do administrador.
+ PIN de 3 dígitos do usuário.
+ Esqueceu o PIN?
+ PIN incorreto.
+ Mostrar
+ Esconder
+ Fechar
+ A alteração do PIN foi bem-sucedida
+ Esqueceu o PIN?
+ Para redefinir seu PIN, você precisará limpar todos os dados salvos de %s.\n\nLembre-se de que essa ação fará com que todos os perfis e o progresso do usuário sejam excluídos e não pode ser desfeito. Além disso, o aplicativo será fechado quando isso for concluído e precisará ser reaberto.
+ Redefinir dados de %s.
+ Confirmar redefinição de dados de %s
+ Tem certeza de que deseja excluir todos os perfis %s neste dispositivo? Esta ação não poderá ser desfeita.
+ Sim
+ Não
+ Ícone de mostrar a senha
+ Ícone de esconder a senha
+ Insira o PIN
+ PIN do Administrador
+ Acesso às configurações do administrador
+ PIN do administrador necessário para alterar o PIN do usuário
+ Cancelar
+ Enviar
+ PIN do administrador incorreto. Por favor, tente novamente.
+ Novo PIN de %1$s
+ Insira um Novo Pin
+ Esse PIN será o novo PIN de %s e será necessário ao fazer login.Meus Downloads
- Downloads
- Atualizações (2)
+ Downloads
+ Atualizações (2)Você gostaria de sair do seu perfil?
- Cancelar
- Sair
+ Cancelar
+ SairInício
- A partir de agora, você pode ver as lições recomendadas para você aqui.
- Selecione um Tópico para começar
+ A partir de agora, você pode ver as lições recomendadas para você aqui.
+ Selecione um Tópico para começarPerfisEditar Perfil
- Criado em %s
- Usado por último
- Renomear
- Redefinir PIN
- Marcar capítulos concluídos
- Ativar a troca rápida de idioma
- Permita que esse usuário alterne rapidamente entre inglês e suaíli em uma lição.
- Exclusão de Perfil
- Apagar este perfil permanentemente?
- Todo o progresso será apagado e não pode ser recuperado.
- Apagar
- Cancelar
- Permitir Acesso a Download
- O usuário pode baixar e apagar conteúdo sem senha de Administrador
+ Criado em %s
+ Usado por último
+ Renomear
+ Redefinir PIN
+ Marcar capítulos concluídos
+ Ativar a troca rápida de idioma
+ Permita que esse usuário alterne rapidamente entre inglês e suaíli em uma lição.
+ Exclusão de Perfil
+ Apagar este perfil permanentemente?
+ Todo o progresso será apagado e não pode ser recuperado.
+ Apagar
+ Cancelar
+ Permitir Acesso a Download
+ O usuário pode baixar e apagar conteúdo sem senha de AdministradorFoto do Perfil
- Imagem de perfil
- Cancelar
- Visualizar Foto do Perfil
- Escolha da Biblioteca
+ Imagem de perfil
+ Cancelar
+ Visualizar Foto do Perfil
+ Escolha da BibliotecaRenomear Perfil
- Novo Nome
- salvar
+ Novo Nome
+ salvarRedefinir PIN
- Insira um novo PIN para o usuário usar ao acessar seu perfil.
- PIN de 3 Dígitos
- PIN de 5 Dígitos
- Confirmar PIN de 3 Dígitos
- Confirmar PIN de 5 dígitos
- Seu PIN deve ter 3 dígitos.
- Seu PIN deve ter 5 dígitos.
- Criar um PIN de 3 Dígitos
- Requerido
- Botão de Voltar
- Próximo
- Geral
- Editar conta
- Gerenciamento de Perfil
- Editar perfis
- Permissões de Download
- Baixar e atualizar apenas com Wi-fi
- Os tópicos serão baixados e atualizados apenas com Wi-fi. Quaisquer downloads ou atualizações de dados do celular serão enfileirados.
- Atualizar tópicos automaticamente
- Os tópicos baixados com novo conteúdo disponível serão atualizados automaticamente.
- Informações do Aplicativo
- Versão do Aplicativo
- Ações da Conta
- Sair
- Cancelar
- Ok
- Tem certeza que deseja sair do seu perfil?
- Versão do Aplicativo %s
- A última atualização foi instalada em %s. Use o número da versão acima para enviar feedback sobre erros.
+ Insira um novo PIN para o usuário usar ao acessar seu perfil.
+ PIN de 3 Dígitos
+ PIN de 5 Dígitos
+ Confirmar PIN de 3 Dígitos
+ Confirmar PIN de 5 dígitos
+ Seu PIN deve ter 3 dígitos.
+ Seu PIN deve ter 5 dígitos.
+ Criar um PIN de 3 Dígitos
+ Requerido
+ Botão de Voltar
+ Próximo
+ Geral
+ Editar conta
+ Gerenciamento de Perfil
+ Editar perfis
+ Permissões de Download
+ Baixar e atualizar apenas com Wi-fi
+ Os tópicos serão baixados e atualizados apenas com Wi-fi. Quaisquer downloads ou atualizações de dados do celular serão enfileirados.
+ Atualizar tópicos automaticamente
+ Os tópicos baixados com novo conteúdo disponível serão atualizados automaticamente.
+ Informações do Aplicativo
+ Versão do Aplicativo
+ Ações da Conta
+ Sair
+ Cancelar
+ Ok
+ Tem certeza que deseja sair do seu perfil?
+ A última atualização foi instalada em %s. Use o número da versão acima para enviar feedback sobre erros.Versão do AplicativoIdioma do AplicativoIdioma Padrão de ÁudioTamanho do Texto de Leitura
- Tamanho do Texto de Leitura
- O texto da história ficará assim.
- A
- Áudio Padrão
- Idioma do Aplicativo
- Tamanho do Texto de Leitura
- Pequeno
- Médio
- Grande
- Extra Grande
- Deslize a barra para controlar o tamanho do texto.
- Perfil
- 2 Histórias
- Tópicos em Andamento
- Tópico em Andamento
- Histórias Concluídas
- História Concluída
+ Áudio Padrão
+ Idioma do Aplicativo
+ Tamanho do Texto de Leitura
+ Pequeno
+ Médio
+ Grande
+ Extra Grande
+ Perfil
+ Tópicos em Andamento
+ Tópico em Andamento
+ Histórias Concluídas
+ História ConcluídaOpçõesHistórias Concluídas
+ Versão do Aplicativo %sPasso a passo do Aplicativo
- Aprenda novas habilidades matemáticas com histórias que mostram como usá-las no seu dia a dia
- \"Bem-vindo %s!\"
- O que você quer aprender?
- Ótimo
- Vamos começar.
- Sim
- Não...
- Escolha um\ntópico diferente.
- Você está interessado em:\n%s?
- Nova dica disponível
- Nova dica disponível
- Mostrar dicas e solução
- Dica %s
- Fechar
- Dicas
- Mostrar solução
- Mostrar solução
- Solução
- Revelar Dica
- Ocultar dica
- Ocultar solução
- A única solução é: %s
- Uma solução é: %s
- Isso revelará a solução. Tem certeza?
- Mostrar
+ Aprenda novas habilidades matemáticas com histórias que mostram como usá-las no seu dia a dia
+ \"Bem-vindo %s!\"
+ O que você quer aprender?
+ Ótimo
+ Vamos começar.
+ Sim
+ Não...
+ Escolha um\ntópico diferente.
+ Você está interessado em:\n%s?
+ Nova dica disponível
+ Nova dica disponível
+ Mostrar dicas e solução
+ Dica %s
+ Fechar
+ Dicas
+ Mostrar solução
+ Mostrar solução
+ Solução
+ Revelar Dica
+ Ocultar dica
+ Ocultar solução
+ A única solução é: %s
+ Uma solução é: %s
+ Isso revelará a solução. Tem certeza?
+ MostrarAgorarecentementeontem
- Voltar ao tópico
- Voltar para a lição
- Explicação:
- Se dois itens forem iguais, junte-os.
- Link para o item %s
- Desvincular itens em %s
- Mover o item para baixo para %s
- Mover o item para cima para %s
- Para cima
- Para baixo
+ Explicação:
+ Se dois itens forem iguais, junte-os.
+ Link para o item %s
+ Desvincular itens em %s
+ Mover o item para baixo para %s
+ Mover o item para cima para %s
+ Para cima
+ Para baixo%s %s
- topic_revision_recyclerview_tag
- ongoing_recycler_view_tag
- Por favor, selecione todas as alternativas corretas.
+ topic_revision_recyclerview_tag
+ ongoing_recycler_view_tagVersão do aplicativo não suportadaEsta versão do aplicativo não é mais suportada. Atualize-a na Play Store.Fechar aplicativo
- Versão do desenvolvedor
- Alfa
- Beta
+ Versão do desenvolvedor
+ Alfa
+ BetaAviso Beta
- Olá! Seu aplicativo está sendo atualizado para a versão Beta. Se você tiver problemas ao usar o aplicativo ou tiver dúvidas, entre em contato conosco em android-feedback@oppia.org.
- Não exibir esta mensagem novamente
+ Olá! Seu aplicativo está sendo atualizado para a versão Beta. Se você tiver problemas ao usar o aplicativo ou tiver dúvidas, entre em contato conosco em android-feedback@oppia.org.
+ Não exibir esta mensagem novamenteOKAviso de disponibilidade geralOlá! Seu aplicativo está sendo atualizado para a versão de disponibilidade geral. Se você tiver problemas ao usar o aplicativo ou tiver dúvidas, entre em contato conosco em android-feedback@oppia.org.Não exibir esta mensagem novamenteOK
+ Voltar para a lição paraInsira uma razão no formato x:y.
- Clique aqui para inserir texto.
- Menor tamanho de texto
- Maior tamanho de texto
+ Clique aqui para inserir texto.Em BreveHistórias RecomendadasHistórias Para VocêModo de PráticaPágina de revisão de habilidades
- Progresso do áudio
- Alterar idioma
- Áudio, LIGADO
- Áudio, DESLIGADO
- Resposta correta enviada
- Resposta correta enviada: %s
- Resposta incorreta enviada
- Resposta incorreta enviada: %s
+ Progresso do áudio
+ Alterar idioma
+ Áudio, LIGADO
+ Áudio, DESLIGADO
+ Resposta correta enviada
+ Resposta correta enviada: %s
+ Resposta incorreta enviada
+ Resposta incorreta enviada: %sDependências de terceirosversão %sLicença de Direitos AutoraisVisualizador de Licença de Direitos AutoraisVoltar para %s
- lista de dependências de terceiros
- lista de licenças de direitos autorais
+ lista de dependências de terceiros
+ lista de licenças de direitos autoraisRetomar lição
- Continuar
- Recomeçar
- Bom dia,
- Boa tarde,
- Boa noite,
+ Continuar
+ Recomeçar
+ Bom dia,
+ Boa tarde,
+ Boa noite,Página de Política
- Política de Privacidade
- Por favor visite <a href=\"https://www.oppia.org/privacy-policy\">esta páginage</a> para acessar a última versão desta política de privacidade.
- Termos de Serviço
- Ao usar %s, você concorda com nossos <br> <oppia-noninteractive-policy link=\"tos\">Termos de Serviço</oppia-noninteractive-policy> e <oppia-noninteractive-policy link=\"privacy\">Política de Privacidade</oppia-noninteractive-policy>.
- Por favor visite <a href=\"https://www.oppia.org/terms\">esta página</a> para acessar a última versão destes termos.
+ Política de Privacidade
+ Por favor visite <a href=\"https://www.oppia.org/privacy-policy\">esta páginage</a> para acessar a última versão desta política de privacidade.
+ Termos de Serviço
+ Ao usar %s, você concorda com nossos <br> <oppia-noninteractive-policy link=\"tos\">Termos de Serviço</oppia-noninteractive-policy> e <oppia-noninteractive-policy link=\"privacy\">Política de Privacidade</oppia-noninteractive-policy>.
+ Por favor visite <a href=\"https://www.oppia.org/terms\">esta página</a> para acessar a última versão destes termos.Como posso criar um novo perfil?Como posso deletar um perfil?Como posso alterar meu e-mail/número de telefone?
@@ -496,44 +468,44 @@
<p>Se a exploração não estiver carregando</p><p><br></p><p>Verifique se o aplicativo está atualizado:</p><p> <ul> <li> Acesse a Play Store e certifique-se de que o aplicativo esteja atualizado com a versão mais recente </li></ul><p><br></p><p>Verifique sua conexão com a internet:</p><ul><li> Se sua conexão com a Internet estiver lenta, tente se reconectar à rede Wi-Fi ou conectar-se a uma rede diferente. </li></ul><p>Peça ao administrador para verificar o dispositivo e a conexão com a Internet:</p><ul><li> Peça ao administrador para solucionar o problema usando as etapas acima </li></ul><p>Informe-nos se você ainda tiver problemas com o carregamento::</p><ul><li> Relate um problema entrando em contato conosco em admin@oppia.org. </li> </ul><p>Se o seu áudio não estiver tocando</p><p><br></p><p>Verifique se o aplicativo está atualizado:</p><ul><li> Acesse a Play Store e certifique-se de que o aplicativo esteja atualizado com a versão mais recente </li></ul><p><br></p><p>Verifique sua conexão com a internet:</p><ul><li> Se sua conexão com a Internet estiver lenta, tente se reconectar à rede Wi-Fi ou conectar-se a uma rede diferente. A Internet lenta pode fazer com que o áudio carregue irregularmente, dificultando a reprodução. </li></ul><p><br></p><p>Peça ao administrador para verificar o dispositivo e a conexão com a Internet:</p><ul><li> Peça ao administrador para solucionar o problema usando as etapas acima</li></ul><p><br></p><p>Informe-nos se você ainda tiver problemas com o carregamento:</p><ul><li> Relate um problema entrando em contato conosco em admin@oppia.org. </li></ul><p>Se você não consegue encontrar sua pergunta ou gostaria de relatar um problema, entre em contato conosco em admin@oppia.org.</p>
- Atividade de Teste de Fragmento de Edição de Perfil
- Controle Administrativo da Atividade de Teste de Fragmento
- Continuar estudando
+ Atividade de Teste de Fragmento de Edição de Perfil
+ Controle Administrativo da Atividade de Teste de Fragmento
+ Continuar estudandoVá até a parte inferior da tela para obter uma dica.Por favor, selecione todas as alternativas corretas.Pode selecionar outras opções.Mais do que %s opções podem ser selecionadas.Pesquisa
- Anterior
- Enviar
- Deixe seu feedback aqui
- Continuar a pesquisa
- Sair
- Pesquisa de saída
- Tem certeza de que deseja sair da pesquisa?
- Seu feedback nos ajuda a atender melhor alunos como você. Gostaria de responder a uma breve pesquisa sobre sua experiência?
- Iniciar pesquisa
- Talvez mais tarde
- Obrigado por responder à pesquisa. Esperamos que você tenha gostado de usar o %s!
- Pesquisa de saída
- Gostaríamos muito de receber seu feedback!
- Obrigado
- 0 - Pouco provável
- 10 - Extremamente provável
- Selecione uma das opções a seguir:
- Eu sou um formando
- Eu sou um professor
- Eu sou um pai
- Outro
- Como você se sentiria se não pudesse mais usar %s?
- Muito decepcionado
- Um pouco decepcionado
- Não fiquei desapontado
- N/A - Não uso mais %s
- Ficamos felizes que tenha gostado de sua experiência com a %s. Compartilhe o que mais o ajudou:
- Obrigado por responder! Como podemos proporcionar uma experiência melhor?
- Ajude-nos a melhorar sua experiência! Compartilhe o principal motivo da sua pontuação:
- Em uma escala de 0 a 10, qual é a probabilidade de você recomendar %s a um amigo ou colega?
- O subtópico anterior é %s
- O próximo subtópico é %s
+ Anterior
+ Enviar
+ Deixe seu feedback aqui
+ Continuar a pesquisa
+ Sair
+ Pesquisa de saída
+ Tem certeza de que deseja sair da pesquisa?
+ Seu feedback nos ajuda a atender melhor alunos como você. Gostaria de responder a uma breve pesquisa sobre sua experiência?
+ Iniciar pesquisa
+ Talvez mais tarde
+ Obrigado por responder à pesquisa. Esperamos que você tenha gostado de usar o %s!
+ Pesquisa de saída
+ Gostaríamos muito de receber seu feedback!
+ Obrigado
+ 0 - Pouco provável
+ 10 - Extremamente provável
+ Selecione uma das opções a seguir:
+ Eu sou um formando
+ Eu sou um professor
+ Eu sou um pai
+ Outro
+ Como você se sentiria se não pudesse mais usar %s?
+ Muito decepcionado
+ Um pouco decepcionado
+ Não fiquei desapontado
+ N/A - Não uso mais %s
+ Ficamos felizes que tenha gostado de sua experiência com a %s. Compartilhe o que mais o ajudou:
+ Obrigado por responder! Como podemos proporcionar uma experiência melhor?
+ Ajude-nos a melhorar sua experiência! Compartilhe o principal motivo da sua pontuação:
+ Em uma escala de 0 a 10, qual é a probabilidade de você recomendar %s a um amigo ou colega?
+ O subtópico anterior é %s
+ O próximo subtópico é %s
diff --git a/app/src/main/res/values-sw/strings.xml b/app/src/main/res/values-sw/strings.xml
index 758c513d8e0..8c5530a2d98 100644
--- a/app/src/main/res/values-sw/strings.xml
+++ b/app/src/main/res/values-sw/strings.xml
@@ -5,146 +5,132 @@
* VivianW
-->
- kichwa cha urambazaji
- Chaguzi
- Vipakuliwa Vyangu
- Msaada
+ Chaguzi
+ Vipakuliwa Vyangu
+ MsaadaKicheza UgunduziMsaada
- Badili Wasifu
- Chaguzi za Msanidi
- Vidhibiti vya Msimamizi
- Orodha ya Uelekezaji Fungua
- Orodha ya Uelekezaji Funga
- Cheza Sauti
- Sitisha sauti
- sawa
- futa
- Lugha ya Sauti
- Nje ya Mtandao kwa sasa
- Hakikisha kuwa Wi-Fi au data ya mtandao wa simu imewashwa, kisha ujaribu tena.
- sawa
- sawa
- futa
- Kwa sasa ipo kwenye Data ya Simu
- Kutiririsha sauti kunaweza kutumia data nyingi ya mtandao wa simu.
- Usionyeshe ujumbe huu tena
- Kadi ya Dhana
- Kadi ya Marudio
+ Badili Wasifu
+ Chaguzi za Msanidi
+ Vidhibiti vya Msimamizi
+ Orodha ya Uelekezaji Fungua
+ Orodha ya Uelekezaji Funga
+ Cheza Sauti
+ Sitisha sauti
+ sawa
+ futa
+ Lugha ya Sauti
+ Nje ya Mtandao kwa sasa
+ Hakikisha kuwa Wi-Fi au data ya mtandao wa simu imewashwa, kisha ujaribu tena.
+ sawa
+ sawa
+ futa
+ Kwa sasa ipo kwenye Data ya Simu
+ Kutiririsha sauti kunaweza kutumia data nyingi ya mtandao wa simu.
+ Usionyeshe ujumbe huu tena
+ Kadi ya DhanaJe, ungependa kwenda kwenye Ukurasa wa Mada?Maendeleo yako hayatahifadhiwa.
- Toka
- Futa
+ Toka
+ FutaJe, ungependa kwenda kwenye Ukurasa wa Mada?Maendeleo yako hayatahifadhiwa.
- Futa
- Toka
- Kiwango cha juu zaidi cha kuhifadhi kimefikiwa
- Maendeleo yaliyohifadhiwa ya somo \"%s\" yatafutwa.
- Endelea
- Ondoka bila kuhifadhi maendeleo
- Rudi kwenye somo
- jifunze ujuzi huu.
- Uwiano na Uwiano wa Sababu
- Chagua ujuzi ambao ungependa kufanyia mazoezi.
- Anza
- Endelea
- Wasilisha
- Nenda kwenye kadi iliyotangulia
- Nenda kwenye kadi iliyofuata
- Wasilisha
- Cheza tena
- Rudi kwa Mada iliopita
- Majibu ya awali (%s)
- Mibofyo kwenye %s
- Jifunze Tena
- Ona zaidi
- ona kidogo
- Maswali Yanayoulizwa Mara kwa Mara
- Maswali Yanayoangaziwa
- maswali yanayoulizwa mara kwa mara
+ Futa
+ Toka
+ Kiwango cha juu zaidi cha kuhifadhi kimefikiwa
+ Maendeleo yaliyohifadhiwa ya somo \"%s\" yatafutwa.
+ Endelea
+ Ondoka bila kuhifadhi maendeleo
+ Rudi kwenye somo
+ jifunze ujuzi huu.
+ Chagua ujuzi ambao ungependa kufanyia mazoezi.
+ Anza
+ Endelea
+ Nenda kwenye kadi iliyotangulia
+ Nenda kwenye kadi iliyofuata
+ Wasilisha
+ Cheza tena
+ Rudi kwa Mada iliopita
+ Majibu ya awali (%s)
+ Mibofyo kwenye %s
+ Ona zaidi
+ ona kidogo
+ Maswali Yanayoulizwa Mara kwa Mara
+ Maswali Yanayoangaziwamaswali yanayoulizwa mara kwa maraUthibitishaji wa nambari ya siriUtangulizi
- maswali yanayoulizwa mara kwa mara
- habari
- Masomo
- Mazoezi
- Mazoezi
- Vidhibiti vya Msimamizi
- Ukurasa wa mada
- mada: %s
- mada
+ maswali yanayoulizwa mara kwa mara
+ habari
+ Masomo
+ Mazoezi
+ Mazoezi
+ Ukurasa wa mada
+ mada: %smada zinazoendelea
- Sura ya %s: %s
- Sura ya %s yenye kichwa %s imekamilika
- Sura ya %s yenye kichwa %s inaendelea
- Kamilisha Sura ya %s: %s ili kufungua sura hii.
- Ingiza maandishi.
- Ingiza sehemu katika mpangilio huu x/x, au nambari iliyochanganywa katika mpangilio huu x/x.
- Ingiza sehemu katika mpangilio huu X/X.
- Weka nambari.
- Andika Nambari za vitengo hapa.
- Andika hesabu hapa,tumia nambari peke yake.
- Andika swali la hesabu hapa.
- Andika hesabu ya kulinganisha hapa.
- Tafadhali ondoa nafasi katikati ya nambari katika jibu lako.
- Tafadhali funga au uondoe mabano.
- Tafadhali ondoa mabano karibu na jibu mzima: \' %s\'.
- Tafadhali ondoa mabano ya ziada karibu na \'(%1$s)\', kwa mfano: \'% 1 $ s\'.
- Tafadhali ondoa mabano ya ziada karibu na \'(%1$s)\', kwa mfano: \'% 1 $ s\'.
- Kuna\'%s\' isiyo halali katika jibu. Tafadhali ondoa.
- Tafadhali panga upya utaratibu wa % %1$s & %2$s. Kwa mfano:% $ 2% $ s.
- %1$s na % $%2$s inapaswa kutengwa na nambari au kitu tofauti.
- Tafadhali ondoa alama za ziada katika jibu lako.
- Je! Kuna idadi au kitu tofauti inayokosa kabla au baada ya ishara ya kuongeza \'%1$s\'? Ikiwa sivyo, tafadhali ondoa\'% 1 $ s\' ya ziada.
- Je, kuna nambari au kitu tofauti inayokosa kabla au baada ya ishara ya kuzidisha \'%1$s\'? Ikiwa sivyo, tafadhali ondoa \'% 1 $ s\' ya ziada.
- Je, kuna idadi au kitu tofauti inayokosa kabla au baada ya ishara ya mgawanyiko \'%1$s\'? Ikiwa sivyo, tafadhali ondoa\'% 1 $ s\' ya ziada.
- Je! Kuna idadi au kitu tofauti inayokosa kabla au baada ya ishara ya ufafanuzi\'%1$s\'? Ikiwa sivyo, tafadhali ondoa \'%1$s\' ya ziada.
- Inaonekana kuwa nambari au kitu tofauti inakosa baada ya alama ya kuongeza \'%s\'.
- Inaonekana kuwa nambari au kitu tofauti inakosekana baada ya ishara ya kuondoa \'%s\'.
- Inaonekana kuwa nambari au kitu tofauti haipo baada ya ishara ya kuzidisha \'%s\'.
- Inaonekana kuwa nambari au kitu tofauti haipo baada ya ishara ya kugawanya \'%s\'.
- Inaonekana kuwa nambari au kitu tofauti haipo baada ya ishara ya ufafanuzi \'%s\'.
- Samahani,vipeo vingi havitumiki na programu.Tafadhali rekebisha jibu lako.
- Samahani, nguvu za juu zaidi ya 5 haiungwi mkono na programu. Tafadhali rekebisha jibu lako.
- Samahani, nguvu zinazorudiwa/vielezo hazihimiliwi na programu. Tafadhali punguza jibu lako kwa nguvu moja.
- Pembejeo haipo kwa mzizi wa mraba.
- Kugawanya kwa sufuri si halali. Tafadhali rekebisha jibu lako.
- Inaonekana umeingiza baadhi ya vigezo. Tafadhali hakikisha kuwa jibu lako lina nambari pekee na uondoe vigezo vyovyote kutoka kwa jibu lako.
- Tafadhali tumia vigezo vilivyobainishwa katika swali na si %s.
- Mlinganyo yako inakosa ishara \'=\'.
- Mlinganyo wako una ishara nyingi sana \'=\'. Inapaswa kuwa na moja tu.
- Moja ya pande za \'=\' katika mlinganyo wako ni tupu.
- Chaguo la kukokotoa \'%s\' haitumiki. Tafadhali rekebisha jibu lako.
- Ulimaanisha sqrt? Ikiwa sivyo, tafadhali tenganisha vigeu kwa kutumia alama za kuzidisha.
- Samahani, hatukuweza kuelewa jibu lako. Tafadhali iangalie ili kuhakikisha kuwa hakuna hitilafu zozote.
- Washa sauti kwa somo hili.
- Hadithi Zilizochezwa hivi karibuni
- Hadithi Zilizochezwa Mwisho
- Tazama zote
- zilizochezwa ndani ya Wiki Iliyopita
- zilizochezwa ndani ya Mwezi uliopita
+ Sura ya %s: %s
+ Sura ya %s yenye kichwa %s imekamilika
+ Sura ya %s yenye kichwa %s inaendelea
+ Kamilisha Sura ya %s: %s ili kufungua sura hii.
+ Ingiza maandishi.
+ Ingiza sehemu katika mpangilio huu x/x, au nambari iliyochanganywa katika mpangilio huu x/x.
+ Ingiza sehemu katika mpangilio huu X/X.
+ Weka nambari.
+ Andika hesabu hapa,tumia nambari peke yake.
+ Andika swali la hesabu hapa.
+ Andika hesabu ya kulinganisha hapa.
+ Tafadhali ondoa nafasi katikati ya nambari katika jibu lako.
+ Tafadhali funga au uondoe mabano.
+ Tafadhali ondoa mabano karibu na jibu mzima: \' %s\'.
+ Tafadhali ondoa mabano ya ziada karibu na \'(%1$s)\', kwa mfano: \'% 1 $ s\'.
+ Tafadhali ondoa mabano ya ziada karibu na \'(%1$s)\', kwa mfano: \'% 1 $ s\'.
+ Kuna\'%s\' isiyo halali katika jibu. Tafadhali ondoa.
+ Tafadhali panga upya utaratibu wa % %1$s & %2$s. Kwa mfano:% $ 2% $ s.
+ %1$s na % $%2$s inapaswa kutengwa na nambari au kitu tofauti.
+ Tafadhali ondoa alama za ziada katika jibu lako.
+ Je! Kuna idadi au kitu tofauti inayokosa kabla au baada ya ishara ya kuongeza \'%1$s\'? Ikiwa sivyo, tafadhali ondoa\'% 1 $ s\' ya ziada.
+ Je, kuna nambari au kitu tofauti inayokosa kabla au baada ya ishara ya kuzidisha \'%1$s\'? Ikiwa sivyo, tafadhali ondoa \'% 1 $ s\' ya ziada.
+ Je, kuna idadi au kitu tofauti inayokosa kabla au baada ya ishara ya mgawanyiko \'%1$s\'? Ikiwa sivyo, tafadhali ondoa\'% 1 $ s\' ya ziada.
+ Je! Kuna idadi au kitu tofauti inayokosa kabla au baada ya ishara ya ufafanuzi\'%1$s\'? Ikiwa sivyo, tafadhali ondoa \'%1$s\' ya ziada.
+ Inaonekana kuwa nambari au kitu tofauti inakosa baada ya alama ya kuongeza \'%s\'.
+ Inaonekana kuwa nambari au kitu tofauti inakosekana baada ya ishara ya kuondoa \'%s\'.
+ Inaonekana kuwa nambari au kitu tofauti haipo baada ya ishara ya kuzidisha \'%s\'.
+ Inaonekana kuwa nambari au kitu tofauti haipo baada ya ishara ya kugawanya \'%s\'.
+ Inaonekana kuwa nambari au kitu tofauti haipo baada ya ishara ya ufafanuzi \'%s\'.
+ Samahani,vipeo vingi havitumiki na programu.Tafadhali rekebisha jibu lako.
+ Samahani, nguvu za juu zaidi ya 5 haiungwi mkono na programu. Tafadhali rekebisha jibu lako.
+ Samahani, nguvu zinazorudiwa/vielezo hazihimiliwi na programu. Tafadhali punguza jibu lako kwa nguvu moja.
+ Pembejeo haipo kwa mzizi wa mraba.
+ Kugawanya kwa sufuri si halali. Tafadhali rekebisha jibu lako.
+ Inaonekana umeingiza baadhi ya vigezo. Tafadhali hakikisha kuwa jibu lako lina nambari pekee na uondoe vigezo vyovyote kutoka kwa jibu lako.
+ Tafadhali tumia vigezo vilivyobainishwa katika swali na si %s.
+ Mlinganyo yako inakosa ishara \'=\'.
+ Mlinganyo wako una ishara nyingi sana \'=\'. Inapaswa kuwa na moja tu.
+ Moja ya pande za \'=\' katika mlinganyo wako ni tupu.
+ Chaguo la kukokotoa \'%s\' haitumiki. Tafadhali rekebisha jibu lako.
+ Ulimaanisha sqrt? Ikiwa sivyo, tafadhali tenganisha vigeu kwa kutumia alama za kuzidisha.
+ Samahani, hatukuweza kuelewa jibu lako. Tafadhali iangalie ili kuhakikisha kuwa hakuna hitilafu zozote.
+ Hadithi Zilizochezwa hivi karibuni
+ Hadithi Zilizochezwa Mwisho
+ Tazama zote
+ zilizochezwa ndani ya Wiki Iliyopita
+ zilizochezwa ndani ya Mwezi uliopitaOrodha ya Sura
- Picha ya %s
- Hadithi Unazoweza Kucheza
- Nenda juu/enda juu
- Hadithi Zilizochezwa Hivi Karibuni
- Mada Imepakuliwa
- Imepakuliwa
- Hali ya Mazoezi
- Swali %s kati ya %s
- imekamilika
- imekamilika
- Umemaliza maswali yote! Unaweza kuchagua kucheza seti nyingine ya maswali, au kurudi kwenye mada.
- Inaendelea
- Imekamilika
- Onyesha orodha ya sura
- Ficha orodha ya sura
- Cheza/Sitisha Sauti
- Mapendeleo
+ Picha ya %s
+ Hadithi Unazoweza Kucheza
+ Nenda juu/enda juu
+ Hadithi Zilizochezwa Hivi Karibuni
+ Mada Imepakuliwa
+ Hali ya Mazoezi
+ Swali %s kati ya %s
+ imekamilika
+ imekamilika
+ Umemaliza maswali yote! Unaweza kuchagua kucheza seti nyingine ya maswali, au kurudi kwenye mada.
+ Inaendelea
+ Imekamilika
+ Onyesha orodha ya sura
+ Ficha orodha ya suraUkurasa wa Maendeleo
- TafutaTafadhali tumia nambari, nafasi au mikwaruzo ya mbele (/) pekee.Tafadhali weka sehemu halali (k.m., 5/3 au 1 2/3)Tafadhali usiweke 0 kwenye denominator
@@ -163,7 +149,6 @@
%s MB%s GBSahihi!
- Mada: %sSura 1Sura %s
@@ -180,237 +165,224 @@
Somo 1Masomo %s
- Ukurasa wa kuchagua wasifu
- Msimamizi
- Chagua wasifu wako
- Ongeza Wasifu
- Weka Wasifu Nyingi
- Ongeza hadi watumiaji 10 kwenye akaunti yako. Nzuri sana kwa familia na madarasa.
- Udhibiti vya Msimamizi
- Lugha
- Vidhibiti vya Msimamizi
+ Ukurasa wa kuchagua wasifu
+ Msimamizi
+ Chagua wasifu wako
+ Ongeza Wasifu
+ Weka Wasifu Nyingi
+ Ongeza hadi watumiaji 10 kwenye akaunti yako. Nzuri sana kwa familia na madarasa.
+ Udhibiti vya Msimamizi
+ Lugha
+ Vidhibiti vya MsimamiziIdhinisha kuongeza wasifuIdhinisha kufikia Vidhibiti vya Msimamizi
- Idhini ya Msimamizi Inahitajika
- Weka Nambari ya Siri ya Msimamizi ili kuunda akaunti mpya.
- Weka Nambari ya Siri ya Msimamizi ili kufikia Vidhibiti vya Msimamizi.
- Nambari ya Siri ya Msimamizi
- Nambari ya Siri ya Msimamizi si Sahihi. Tafadhali jaribu tena.
- Tafadhali weka Nambari ya Siri ya Msimamizi.
- Wasilisha
- Funga
- Kabla ya kuongeza wasifu, tunahitaji kulinda akaunti yako kwa kuunda Nambari ya Siri. Hii hukupa uwezo wa kuidhinisha upakuaji na kudhibiti wasifu kwenye kifaa.
- Tumia Nambari yako ya siri uliyoweka kwa akaunti za kibinafsi kama vile benki au usalama wa kijamii.
- Nambari mpya ya Siri ya tarakimu 5
- Thibitisha Nambari ya Siri ya tarakimu 5
- Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 5.
- Tafadhali hakikisha kwamba Nambari za Siri zote mbili zinalingana.
- Hifadhi
+ Idhini ya Msimamizi Inahitajika
+ Weka Nambari ya Siri ya Msimamizi ili kuunda akaunti mpya.
+ Weka Nambari ya Siri ya Msimamizi ili kufikia Vidhibiti vya Msimamizi.
+ Nambari ya Siri ya Msimamizi
+ Nambari ya Siri ya Msimamizi si Sahihi. Tafadhali jaribu tena.
+ Tafadhali weka Nambari ya Siri ya Msimamizi.
+ Wasilisha
+ Funga
+ Kabla ya kuongeza wasifu, tunahitaji kulinda akaunti yako kwa kuunda Nambari ya Siri. Hii hukupa uwezo wa kuidhinisha upakuaji na kudhibiti wasifu kwenye kifaa.
+ Tumia Nambari yako ya siri uliyoweka kwa akaunti za kibinafsi kama vile benki au usalama wa kijamii.
+ Nambari mpya ya Siri ya tarakimu 5
+ Thibitisha Nambari ya Siri ya tarakimu 5
+ Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 5.
+ Tafadhali hakikisha kwamba Nambari za Siri zote mbili zinalingana.
+ HifadhiIdhinisha kuongeza wasifu
- Ongeza Wasifu
- Ongeza Wasifu
- Jina
- Nambari ya Siri ya tarakimu 3
- Thibitisha Nambari ya Siri ya tarakimu 3
- Ruhusu Upakuaji wa Ufikiaji
- Mtumiaji anaweza kupakua na kufuta maudhui bila Nambari ya Siri ya Msimamizi.
- Anzisha
- Funga
- Ukiwa na Nambari ya Siri, hakuna mtu mwingine anayeweza kufikia wasifu kando na mtumiaji huyu aliyekabidhiwa.
- Tumeshindwa kuhifadhi picha yako. Tafadhali jaribu tena.
- Jina hili tayari linatumiwa na wasifu mwingine.
- Tafadhali weka jina la wasifu huu.
- Majina yanaweza kuwa na herufi pekee. Jaribu jina lingine?
- Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 3.
- Tafadhali hakikisha kwamba Nambari za Siri zote mbili zinalingana.
- Maelezo zaidi kuhusu Nambari za Siri zenye tarakimu 3.
- Picha ya sasa ya wasifu
- Hariri picha ya wasifu
- Karibu kwa %s!
- Jifunze chochote unachotaka kwa njia bora na ya kufurahisha.
- Ongeza watumiaji kwenye akaunti yako.
- Elezea uzoefu na uunde hadi wasifu 10.
- Pakua ya nje ya mtandao.
- Endelea kujifunza masomo yako bila muunganisho wa mtandao.
- Furahia!
- Furahia matukio yako ya kujifunza kwa masomo yetu ya bure na ya ufanisi.
- Ruka
- Inayofuata
- Anza
- Slaidi %s ya %s
- Habari, %s!
- Tafadhali weka Nambari yako ya Siri ya Msimamizi.
- Tafadhali weka Nambari yako ya Siri.
- Nambari ya Siri ya Tarakimu 5 ya Msimamizi.
- Nambari ya Siri ya Tarakimu 3 ya Mtumiaji.
- Nilisahau nambari yangu.
- Nambari ya Siri si sahihi.
- Onyesha
- ficha
- Funga
- Mabadiliko ya Nambari ya Siri yamefaulu
- Je, umesahau Nambari ya Siri?
- Ili kuweka upya Nambari yako ya Siri, tafadhali ondoa %s kisha uisakinishe upya.\n\nKumbuka kwamba ikiwa kifaa hakijakuwa mtandaoni, unaweza kupoteza maendeleo ya mtumiaji kwenye akaunti nyingi.
- Onyesha/Ficha ishara ya nenosiri
- Ishara ya nenosiri iliyoonyeshwa
- Ishara ya nenosiri iliyofichwa
- Weka Nambari yako ya Siri
- Weka Nambari ya Siri
- Nambari ya Siri ya Msimamizi
- Ufikiaji wa mipangilio ya msimamizi
- Nambari ya Siri ya Msimamizi inahitajika ili kubadilisha Nambari ya Siri ya mtumiaji
- Ghairi
- Wasilisha
- Nambari ya Siri ya msimamizi si Sahihi. Tafadhali jaribu tena.
- Nambari ya Siri mpya ya %1$s.
- Weka Nambari mpya ya Siri
+ Ongeza Wasifu
+ Jina
+ Nambari ya Siri ya tarakimu 3
+ Thibitisha Nambari ya Siri ya tarakimu 3
+ Ruhusu Upakuaji wa Ufikiaji
+ Mtumiaji anaweza kupakua na kufuta maudhui bila Nambari ya Siri ya Msimamizi.
+ Anzisha
+ Funga
+ Ukiwa na Nambari ya Siri, hakuna mtu mwingine anayeweza kufikia wasifu kando na mtumiaji huyu aliyekabidhiwa.
+ Jina hili tayari linatumiwa na wasifu mwingine.
+ Tafadhali weka jina la wasifu huu.
+ Majina yanaweza kuwa na herufi pekee. Jaribu jina lingine?
+ Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 3.
+ Tafadhali hakikisha kwamba Nambari za Siri zote mbili zinalingana.
+ Maelezo zaidi kuhusu Nambari za Siri zenye tarakimu 3.
+ Picha ya sasa ya wasifu
+ Hariri picha ya wasifu
+ Karibu kwa %s!
+ Jifunze chochote unachotaka kwa njia bora na ya kufurahisha.
+ Ongeza watumiaji kwenye akaunti yako.
+ Elezea uzoefu na uunde hadi wasifu 10.
+ Pakua ya nje ya mtandao.
+ Endelea kujifunza masomo yako bila muunganisho wa mtandao.
+ Furahia!
+ Furahia matukio yako ya kujifunza kwa masomo yetu ya bure na ya ufanisi.
+ Ruka
+ Inayofuata
+ Anza
+ Slaidi %s ya %s
+ Habari, %s!
+ Tafadhali weka Nambari yako ya Siri ya Msimamizi.
+ Tafadhali weka Nambari yako ya Siri.
+ Nambari ya Siri ya Tarakimu 5 ya Msimamizi.
+ Nambari ya Siri ya Tarakimu 3 ya Mtumiaji.
+ Nilisahau nambari yangu.
+ Nambari ya Siri si sahihi.
+ Onyesha
+ ficha
+ Funga
+ Mabadiliko ya Nambari ya Siri yamefaulu
+ Je, umesahau Nambari ya Siri?
+ Ili kuweka upya Nambari yako ya Siri, tafadhali ondoa %s kisha uisakinishe upya.\n\nKumbuka kwamba ikiwa kifaa hakijakuwa mtandaoni, unaweza kupoteza maendeleo ya mtumiaji kwenye akaunti nyingi.
+ Ishara ya nenosiri iliyoonyeshwa
+ Ishara ya nenosiri iliyofichwa
+ Weka Nambari ya Siri
+ Nambari ya Siri ya Msimamizi
+ Ufikiaji wa mipangilio ya msimamizi
+ Nambari ya Siri ya Msimamizi inahitajika ili kubadilisha Nambari ya Siri ya mtumiaji
+ Ghairi
+ Wasilisha
+ Nambari ya Siri ya msimamizi si Sahihi. Tafadhali jaribu tena.
+ Nambari ya Siri mpya ya %1$s.
+ Weka Nambari mpya ya SiriVipakuliwa Vyangu
- Vipakuliwa
- Sasisho (2)
+ Vipakuliwa
+ Sasisho (2)Je, ungependa kuondoka kwenye wasifu wako?
- Ghairi
- Toka
+ Ghairi
+ TokaMwanzoWasifu
- Ilitengenezwa kwa %s
- Mara ya mwisho kutumika
- Badilisha jina
- Weka upya Nambari ya Siri
- Ufutaji wa Wasifu
- Je, ungependa kufuta wasifu huu kabisa?
- Maendeleo yote yatafutwa na hayawezi kurejeshwa.
- Futa
- Ghairi
- Ruhusu Ufikiaji wa Upakuaji
- Mtumiaji anaweza kupakua na kufuta maudhui bila Nambari ya Siri ya msimamizi.
+ Ilitengenezwa kwa %s
+ Mara ya mwisho kutumika
+ Badilisha jina
+ Weka upya Nambari ya Siri
+ Ufutaji wa Wasifu
+ Je, ungependa kufuta wasifu huu kabisa?
+ Maendeleo yote yatafutwa na hayawezi kurejeshwa.
+ Futa
+ Ghairi
+ Ruhusu Ufikiaji wa Upakuaji
+ Mtumiaji anaweza kupakua na kufuta maudhui bila Nambari ya Siri ya msimamizi.Picha ya Wasifu
- Picha ya Wasifu
- Ghairi
- Tazama Picha ya Wasifu
- Chagua Kutoka kwa Maktaba
+ Picha ya Wasifu
+ Ghairi
+ Tazama Picha ya Wasifu
+ Chagua Kutoka kwa MaktabaBadilisha Jina la Wasifu
- Jina Jipya
- Hifadhi
+ Jina Jipya
+ HifadhiWeka upya Nambari ya Siri
- Weka Nambari mpya ya Siri ili mtumiaji aiweke anapofikia wasifu wake.
- Nambari ya Siri ya tarakimu 3*
- Nambari ya Siri ya tarakimu 5*
- Thibitisha Nambari ya Siri ya tarakimu 3*
- Thibitisha Nambari ya Siri ya tarakimu 5
- Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 3.
- Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 5.
- Unda Nambari ya Siri ya tarakimu 3
- Inahitajika
- Kitufe cha Nyuma
- Inayofuata
- Jumla
- Hariri akaunti
- Usimamizi wa Wasifu
- Hariri wasifu
- Ruhusa ya kupakua
- Pakua na usasishe kwenye Wi-fi pekee
- Mada zitapakuliwa na kusasishwa kwenye Wi-fi pekee. Vipakuliwa au masasisho yoyote ya data ya mtandao wa simu yatawekwa kwenye foleni.
- Sasisha mada moja kwa moja
- Mada zilizopakuliwa ambazo zina maudhui mapya zinazopatikana zitasasishwa moja kwa moja.
- Maelezo ya programu.
- Toleo la Programu
- Vitendo vya akaunti
- Toka
- Ghairi
- Sawa
- Je,una uhakika unataka kutoka kwenye wasifu wako?
- Toleo la Programu %s
- Sasisho la mwisho lilisakinishwa kwenye %s. Tumia nambari ya toleo iliyo hapo juu kutuma maoni kuhusu hitilafu.
+ Weka Nambari mpya ya Siri ili mtumiaji aiweke anapofikia wasifu wake.
+ Nambari ya Siri ya tarakimu 3*
+ Nambari ya Siri ya tarakimu 5*
+ Thibitisha Nambari ya Siri ya tarakimu 3*
+ Thibitisha Nambari ya Siri ya tarakimu 5
+ Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 3.
+ Nambari yako ya Siri inapaswa kuwa na urefu wa tarakimu 5.
+ Unda Nambari ya Siri ya tarakimu 3
+ Inahitajika
+ Kitufe cha Nyuma
+ Inayofuata
+ Jumla
+ Hariri akaunti
+ Usimamizi wa Wasifu
+ Hariri wasifu
+ Ruhusa ya kupakua
+ Pakua na usasishe kwenye Wi-fi pekee
+ Mada zitapakuliwa na kusasishwa kwenye Wi-fi pekee. Vipakuliwa au masasisho yoyote ya data ya mtandao wa simu yatawekwa kwenye foleni.
+ Sasisha mada moja kwa moja
+ Mada zilizopakuliwa ambazo zina maudhui mapya zinazopatikana zitasasishwa moja kwa moja.
+ Maelezo ya programu.
+ Toleo la Programu
+ Vitendo vya akaunti
+ Toka
+ Ghairi
+ Sawa
+ Je,una uhakika unataka kutoka kwenye wasifu wako?
+ Toleo la Programu %s
+ Sasisho la mwisho lilisakinishwa kwenye %s. Tumia nambari ya toleo iliyo hapo juu kutuma maoni kuhusu hitilafu.Toleo la ProgramuLugha ya ProgramuLugha chaguomsingi ya SautiUkubwa wa Maandishi ya Kusoma
- Ukubwa wa Maandishi ya Kusoma
- Nakala ya hadithi itaonekana hivi.
- A
- Sauti Chaguomsingi
- Lugha ya Programu
- Ukubwa wa Maandishi ya Kusoma
- Ndogo
- Kati
- Kubwa
- Kubwa Zaidi
- Telezesha upau wa utafutaji ili kudhibiti ukubwa wa maandishi.
- Wasifu
- Hadithi 2
- Mada zinazoendelea
- Mada zinazoendelea
- Hadithi Zimekamilika
- Hadithi imekamilika
+ Sauti Chaguomsingi
+ Lugha ya Programu
+ Ukubwa wa Maandishi ya Kusoma
+ Ndogo
+ Kati
+ Kubwa
+ Kubwa Zaidi
+ Wasifu
+ Mada zinazoendelea
+ Mada zinazoendelea
+ Hadithi Zimekamilika
+ Hadithi imekamilikaChaguziHadithi ZimekamilikaMwongozo wa programu
- Jifunze ujuzi mpya wa hesabu katika hadithi zinazokuonyesha jinsi ya kuzitumia katika maisha yako ya kila siku
- \"Karibu %s!\"
- Unataka kujifunza nini?
- Makuu
- Hebu tuanze.
- Ndiyo
- Hapana…
- Chagua \nmada tofauti.
- Je, unavutiwa na:\n%s?
- Kidokezo kipya kinapatikana
- Onyesha vidokezo na suluhisho
- Funga
- Vidokezo
- Fichua Suluhisho
- Fichua Kidokezo
- Hii itafichua suluhisho. Una uhakika?
- Fichua
+ Jifunze ujuzi mpya wa hesabu katika hadithi zinazokuonyesha jinsi ya kuzitumia katika maisha yako ya kila siku
+ \"Karibu %s!\"
+ Unataka kujifunza nini?
+ Makuu
+ Hebu tuanze.
+ Ndiyo
+ Hapana…
+ Chagua \nmada tofauti.
+ Je, unavutiwa na:\n%s?
+ Kidokezo kipya kinapatikana
+ Onyesha vidokezo na suluhisho
+ Funga
+ Vidokezo
+ Fichua Suluhisho
+ Fichua Kidokezo
+ Hii itafichua suluhisho. Una uhakika?
+ Fichuasasa hivihivi karibunijana
- Rudi kwenye mada
- Ufafanuzi:
- Ikiwa vitu viwili ni sawa, viunganishe.
- Unganisha na kipengee %s
- Tenganisha vipengee katika %s
- Hamisha kipengee chini hadi %s
- Hamisha kipengee juu hadi %s
- Juu
- Chini
+ Ufafanuzi:
+ Ikiwa vitu viwili ni sawa, viunganishe.
+ Unganisha na kipengee %s
+ Tenganisha vipengee katika %s
+ Hamisha kipengee chini hadi %s
+ Hamisha kipengee juu hadi %s
+ Juu
+ Chini%s %s
- mada_marudio_mtazamo wa kuchakata tena_tag
- Inaendelea_kuchakata tena_mtazamo_tag
- Tafadhali chagua angalau chaguo moja.
+ mada_marudio_mtazamo wa kuchakata tena_tag
+ Inaendelea_kuchakata tena_mtazamo_tagToleo la programu lisilotumikaToleo hili la programu halitumiki tena. Tafadhali isasishe kupitia hifadhi ya michezo.Funga programukwaWeka uwiano katika fomu x:y.
- Maandishi madogo zaidi
- Maandishi kubwa zaidiInakuja Hivi KaribuniHadithi ZinazopendekezwaHadithi Kwa Ajili YakoHali ya MazoeziUkurasa wa marekebisho ya ujuzi
- Maendeleo ya sauti
- Badilisha lugha
- Sauti, IMEWASHWA
- Sauti, IMEZIMWA
- Jibu sahihi lililowasilishwa
- Jibu sahihi lililowasilishwa: %s
- Jibu lililowasilishwa lisilo sahihi
- Jibu lililowasilishwa lisilo sahihi: %s
+ Maendeleo ya sauti
+ Badilisha lugha
+ Sauti, IMEWASHWA
+ Sauti, IMEZIMWA
+ Jibu sahihi lililowasilishwa
+ Jibu sahihi lililowasilishwa: %s
+ Jibu lililowasilishwa lisilo sahihi
+ Jibu lililowasilishwa lisilo sahihi: %sTegemeo ya mhusika wa tatutoleo %sLeseni za HakimilikiMtazamo wa Leseni ya HakimilikiNenda nyuma hadi %s
- orodha ya tegemezi ya mhusika wa tatu
- orodha ya leseni za hakimiliki
+ orodha ya tegemezi ya mhusika wa tatu
+ orodha ya leseni za hakimilikiRejesha Somo
- Endelea
- Anza tena
- Habari ya asubuhi,
- Habari ya mchana,
- Habari ya jioni,
+ Endelea
+ Anza tena
+ Habari ya asubuhi,
+ Habari ya mchana,
+ Habari ya jioni,Ninawezaje kuunda wasifu mpya?Ninawezaje kufuta wasifu?Nitabadilisha aje barua pepe/nambari yangu ya simu?
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 9b924f81a97..72c779927d4 100755
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -1,167 +1,541 @@
- Navigation header
- Options
- My Downloads
- Help
+
+ Administrator Controls
+ Learner Study Analytics
+
+ General
+ Edit account
+ Profile Management
+ Edit profiles
+ Download Permissions
+ Download and update only on Wi-fi
+ Topics will be downloaded and updated only on Wi-fi. Any downloads or updates of cellular data will be queued.
+ Automatically update topics
+ Downloaded topics that have new content available will automatically update.
+ App Information
+ App Version
+ Account Actions
+ Log Out
+
+ Administrator Controls Fragment Test Activity
+
+ Administrator Controls
+ Authorise to add profiles
+ Authorise to access Administrator Controls
+ Administrator Authorization Required
+ Enter the Administrator PIN in order to create a new account.
+ Enter the Administrator PIN in order to access Administrator Controls.
+ Administrator\'s PIN
+ Incorrect Administrator PIN. Please try again.
+ Please enter Administrator PIN.
+ Submit
+ Close
+
+ Authorise to add profiles
+ Before we add profiles, we need to protect your account by creating a PIN. This gives you the ability to authorize manage profiles on the device.
+ Do not use a PIN you have set for personal accounts like banking or social security.
+ New 5-Digit PIN
+ Confirm 5-Digit PIN
+ Your PIN should be 5 digits long.
+ Please make sure that both PINs match.
+ Save
+
+ Add Profile
+ Name
+ 3-Digit PIN
+ Confirm 3-Digit PIN
+ Allow Download Access
+ User is able to download and delete content without Administrator PIN.
+ Create
+ Close
+ With a PIN, nobody else can access a profile besides this assigned user.
+ This name is already in use by another profile.
+ Please enter a valid name for this profile.
+ Please choose a profile name that doesn\'t include numbers or symbols.
+ Your PIN should be 3 digits long.
+ Please make sure that both PINs match.
+ More information on 3-digit PINs.
+ Current profile picture
+ Edit profile picture
+ Create a 3-Digit PIN
+ Required
+
+ Administrator\'s PIN
+ Access to Administrator Settings
+ Administrator\'s PIN required to change user\'s PIN
+ Cancel
+ Submit
+ Incorrect Administrator PIN. Please try again.
+ %1$s\'s New PIN.
+
+ App Version
+ App Info
+ App Version %s
+ The last update was installed on %s. Use the above version number to send feedback about bugs.
+
+ Play audio
+ Pause audio
+ %s audio is unavailable.
+ Currently Offline
+ Make sure Wi-Fi or cellular data is turned on, then try again.
+ Ok
+ Audio progress
+ Change language
+ Tap to change the voiceover language.
+
+ Ok
+ Cancel
+ Audio Language
+
+ Beta Notice
+ Hello! Your app is now being updated to the Beta version. If you experience problems while using the app, or have questions, please contact us at android-feedback@oppia.org.
+ Don\'t show this message again
+ OK
+
+ Ok
+ Cancel
+ Currently on Cellular Data
+ Streaming audio may use a lot of cellular data.
+ Don\'t show this message again
+
+ Concept Card
+ Concept Card 1
+ Concept Card 2
+
+ Stories Completed
+ completed_story_list_recyclerview_tag
+
Exploration Player
- Play exploration
+ Audio, ON
+ Audio, OFF
+ Play exploration
+ Close
+ Exit anytime using this button. We will save your progress.
+ Would you like %s to read for you? Tap on this button to try it!
+ Practice Mode
+
+ Featured Questions
+ FAQs
+ FAQs (Frequently Asked Questions)
+
+ App update required
+ A new version of %s is now available. The new version is more secure, and improves your learning experience.\n\nThis version is no longer supported. To continue using the app, please update to the latest version.
+ Update
+ Close app
+
+ How can I create a new profile?
+ How can I delete a profile?
+ How can I change my email/phone number?
+ What is %s?
+ Who is an Administrator?
+ Why is the Exploration player not loading?
+ Why is my audio not playing?
+ I can\'t find my question here. What now?
+ If it is your first time creating a profile and not have a PIN:
From the Profile Chooser, tap on Set up Multiple Profiles.
Create a PIN and Save.
Fill in all fields for the profile.
(Optional) Upload a photo.
Enter a name.
(Optional) Assign a 3-digit PIN.
Tap Create. This profile is added to your Profile Chooser!
If you have created a profile before and have a PIN:
From the Profile Chooser, tap on Add Profile.
Enter your PIN and tap Submit.
Fill in all fields for the profile.
(Optional) Upload a photo.
Enter a name.
(Optional) Assign a 3-digit PIN.
Tap Create. This profile is added to your Profile Chooser!
Note: Only the Administrator is able to manage profiles.
]]>
+ Once a profile is deleted:
The profile cannot be recovered.
Profile information such as name, photos, and progress will be permanently deleted.
To delete a profile (excluding the Administrator\'s):
From the Administrator\'s Home Page, tap on the menu button on the top left.
Tap on Administrator Controls.
Tap on Edit Profiles.
Tap on the Profile you would like to delete.
At the bottom of the screen, tap Profile Deletion.
Tap Delete to confirm deletion.
Note: Only the Administrator is able to manage profiles.
]]>
+ To change your email/phone number:
From the Administrator\'s Home Page, tap on the menu button on the top left.
Tap on Administrator Controls.
Tap on Edit Account.
If you want to change your email:
Enter your new email and tap Save.
A confirmation link is sent to confirm your new email. The link will expire after 24 hours and must be clicked on to be associated with your account.
If changing your phone number:
Enter your new phone number and tap Verify.
A code is sent to confirm your new number. The code will expire after 5 minutes and must be entered in the new screen to be associated with your account.
]]>
+ %1$s "O-pee-yah" (Finnish) - "to learn"
%1$s\'s mission is to help anyone learn anything they want in an effective and enjoyable way.
By creating a set of free, high-quality, demonstrably effective lessons with the help of educators from around the world, %1$s aims to provide students with quality education — regardless of where they are or what traditional resources they have access to.
As a student, you can begin your learning adventure by browsing the topics listed on the Home Page!
]]>
+ An Administrator is the main user that manages profiles and settings for every profile on their account. They are most likely your parent, teacher, or guardian that created this profile for you.
Administrators have the ability to manage profiles, assign PINs, and change other settings under their account. Depending on your profile, Administrator permissions may be required for certain features such as changing your PIN, and more.
To see who your Administrator is, go to the Profile Chooser. The first profile listed and has "Administrator" written under their name is the Administrator.
]]>
+ If the Exploration Player is not loading
Check to see if the app is up to date:
Go to the Play Store and make sure the app is updated to its latest version
Check your internet connection:
If your internet connection is slow, try re-connecting to your Wi-Fi network or connecting to a different network.
Ask the Administrator to check their device and internet connection:
Get the Administrator to troubleshoot using the steps above
Let us know if you still have issues with loading:
Report a problem by contacting us at admin@oppia.org.
]]>
+ If your audio is not playing
Check to see if the app is up to date:
Go to the Play Store and make sure the app is updated to its latest version
Check your internet connection:
If your internet connection is slow, try re-connecting to your Wi-Fi network or connecting to a different network. Slow internet may cause the audio to load irregularly, making it difficult to play.
Ask the Administrator to check their device and internet connection:
Get the Administrator to troubleshoot using the steps above
Let us know if you still have issues with loading:
Report a problem by contacting us at admin@oppia.org.
]]>
+ If you cannot find your question or would like to report a bug, contact us at admin@oppia.org.]]>
+
+ General Availability Notice
+ Hello! Your app is now being updated to the General Availability version. If you experience problems while using the app, or have questions, please contact us at android-feedback@oppia.org.
+ Don\'t show this message again
+ OK
+
Help
- Close
- Switch Profile
- Developer Options
- Administrator Controls
- Navigation Menu Open
- Navigation Menu Close
- Play audio
- Pause audio
- %s audio is unavailable.
- Ok
- Cancel
- Audio Language
- Currently Offline
- Make sure Wi-Fi or cellular data is turned on, then try again.
- Ok
- Ok
- Cancel
- Currently on Cellular Data
- Streaming audio may use a lot of cellular data.
- Don\'t show this message again
- Concept Card
- Concept Card 1
- Concept Card 2
- Revision Card
- Leave to Topic Page?
- Your progress will not be saved.
- Leave
- Cancel
+ Frequently Asked Questions (FAQs)
+ Navigate back to %s
+ third-party dependencies list
+ copyright licenses list
+
+ Hint %s
+ Close
+ Show solution
+ Show Solution
+ Solution
+ Show Hint
+ Hide Hint
+ Hide solution
+ The only solution is: %s
+ One solution is: %s
+ This will show the solution. Are you sure?
+ Show
+ Explanation:
+ Return to lesson
+
+ Home
+ From now, you can see lessons recommended for you here.
+ Select a Topic to Start
+ Good morning,
+ Good afternoon,
+ Good evening,
+ Recently-Played Stories
+ Last-Played Stories
+ View All
+ Played within the Last Week
+ Played within the Last Month
+ Image for %s
+ Stories You Can Play
+
+ Would you like to exit your profile?
+ Cancel
+ Exit
+
+ Submit
+ Write the digit here.
+ Write here.
+
+ Copyright Licenses
+
+ Copyright License Viewer
+
+ Cancel
+ Ok
+ Are you sure you want to log out of your profile?
+
+ My Downloads
+ Downloads
+ Updates (2)
+
+ My Downloads
+ Navigation Menu Open
+ Navigation Menu Close
+ \u0020|\u0020
+ Switch Profile
+ Developer Options
+ Developer Options Icon
+ Administrator Controls Icon
+
+ Topics in Progress
+ ongoing_recycler_view_tag
+
+ Introduction
+ Welcome to %s!
+ Learn anything you want in an effective and enjoyable way.
+ Add users to your account.
+ Share the experience and create up to 10 profiles.
+ Download for offline.
+ Continue learning your lessons without internet connection.
+ Have fun!
+ Enjoy your learning adventures with our free, effective lessons.
+ Skip
+ Next
+ Get Started
+ Slide %s of %s
+
+ Options
+ App Language
+ Preferred Audio Language
+ Reading Text Size
+ Preferred Audio Language
+ App Language
+ Reading Text Size
+ Small
+ Medium
+ Large
+ Extra Large
+
+ New update available
+ A new version of %s is now available. We recommend that you update the app for bug fixes and a better learning experience.
+ Dismiss
+ Update
+
+ Update your Android OS
+ We recommend updating your Android OS to take advantage of %s\'s new features and lessons.\n\nVisit your phone\'s Settings app to update your OS.
+ Dismiss
+
+ Policy Page
+ Privacy Policy
+ this page for the latest version of this privacy policy.]]>
+ Terms of Service
+ Terms of Service and Privacy Policy.]]>
+ this page for the latest version of these terms.]]>
+
+ Profile Progress Page
+ Profile
+ Topics in Progress
+ Topic in Progress
+ Stories Completed
+ Story Completed
+
+ Profile selection page
+ Administrator
+ Select your profile
+ Add Profile
+ Set up Multiple Profiles
+ Add up to 10 users to your account. Perfect for families and classrooms.
+ Administrator Controls
+ Language
+ Language Icon
+ Setting Icon
+
+ Profiles
+
+ Profile Picture
+ Profile Picture Image View
+
+ Reset PIN
+ Enter a new PIN for the user to enter when accessing their profile.
+ 3-Digit PIN
+ 5-Digit PIN
+ Confirm 3-Digit PIN
+ Confirm 5-Digit PIN
+ Your PIN should be 3 digits long.
+ Your PIN should be 5 digits long.
+
+ Profile Edit Fragment Test Activity
+
+ PIN verification
+ Enter PIN
+ Hi, %s!
+ Please enter your Administrator PIN.
+ Please enter your PIN.
+ Administrator’s 5-Digit PIN.
+ User’s 3-Digit PIN.
+ Forgot PIN?
+ Incorrect PIN.
+ show
+ hide
+ Close
+ PIN change is successful
+ Forgot PIN?
+ To reset your PIN, you\'ll need to clear all saved data for %s.\n\nKeep in mind that this action will cause all profiles and user progress to be deleted, and it cannot be undone. Also, the app will close when this completes and will need to be reopened.
+ Reset %s Data
+ Confirm %s Data Reset
+ Are you sure that you want to delete all %s profiles on this device? This operation cannot be undone.
+ Yes
+ No
+ Password shown icon
+ Password hidden icon
+ Enter a New Pin
+ This PIN will be %s\'s new PIN and will be required when signing in.
+
+ Profile Picture
+ Cancel
+ View Profile Picture
+ Choose From Library
+
+ Rename Profile
+ New Name
+ Save
+
+ Edit Profile
+ Created on %s
+ Last used
+ Rename
+ Reset PIN
+ Mark Chapters Completed
+ Enable Quick Language Switching
+ Allow this user to quickly switch between English and Swahili within a lesson.
+ Profile Deletion
+ Permanently delete this profile?
+ All progress will be deleted and cannot be recovered.
+ Delete
+ Cancel
+ Allow Download Access
+ User is able to download and delete content without Administrator password
+
+ Practice Mode
+ New hint available
+
+ Recently-Played Stories
+
+ Skill revision page
+ Continue Studying
+
+ Resume Lesson
+ Continue
+ Start Over
+
+ Developer Build
+ Alpha
+ Beta
+
+ Spotlight Overlay Arrow
+ Close Spotlight Button
+
+ This is a sample text view
+
Leave to Topic Page?Your progress will not be saved.
- Cancel
- Leave
- Exit anytime using this button. We will save your progress.
- Would you like %s to read for you? Tap on this button to try it!
- Tap to change the voiceover language.
- Maximum storage capacity reached
- Saved progress for the lesson \"%s\" will be deleted.
- Continue
- Leave without saving progress
- Back to lesson
- Master These Skills
- Ratios and Proportional Reasoning
- Select skills that you would like to practice.
- Start
- Details about the topic.
- Revise concepts learned from completed lessons here.
- Practice the concepts learned from completed lessons.
- Tap here to start playing a lesson.
- Find all your lessons here.
- Revise concepts learned from completed lessons here.
- Tap here to start playing a lesson.
- Continue
- Submit
- Navigate to the previous card
- Navigate to the next card
- Submit
- Submit
- Replay
- Return To Topic
- Previous Responses (%s)
- Clicks on %s
- Learn Again
- (%s)
- See More
- See Less
- This is a sample text view
- FAQs
- Featured Questions
- Frequently Asked Questions
- FAQs (Frequently Asked Questions)
- PIN verification
- Introduction
- Frequently Asked Questions (FAQs)
- Info
- Lessons
- Practice
- Revision
- Administrator Controls
- Topic page
- Topic: %s
- Topic
- Topics in Progress
- %s\%%
- %s
- Chapter %s: %s
- Chapter %s with title %s is completed
- Chapter %s with title %s is in progress
- Complete Chapter %s: %s to unlock this chapter.
- Chapter %s: %s is currently locked. Please complete chapter %s: %s to unlock this chapter.
- Complete the previous chapter to unlock this chapter.
- Enter text.
- Enter a fraction in the form x/x, or a mixed number in the form x x/x.
- Enter a fraction in the form x/x.
- Enter a number.
- Write numbers with units here.
- Type an expression here, using only numbers.
- Type an expression here.
- Type an equation here.
- Please remove the spaces between numbers in your answer.
- Please close or remove parentheses.
- Please remove the parentheses around the whole answer: \'%s\'.
- Please remove extra parentheses around the \'(%1$s)\', for example: \'%1$s\'.
- Please remove the extra parentheses around \'(%1$s)\', for example: \'%1$s\'.
- There is an invalid \'%s\' in the answer. Please remove it.
- Please rearrange the order of %1$s & %2$s. For example: %2$s%1$s.
- %1$s and %2$s should be separated by a number or a variable.
- Please remove the extra symbols in your answer.
- Is there a number or a variable missing before or after the addition symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
- Is there a number or a variable missing before or after the multiplication symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
- Is there a number or a variable missing before or after the division symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
- Is there a number or a variable missing before or after the exponentiation symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
- There seems to be a number or a variable missing after the addition symbol \'%s\'.
- There seems to be a number or a variable missing after the subtraction symbol \'%s\'.
- There seems to be a number or a variable missing after the multiplication symbol \'%s\'.
- There seems to be a number or a variable missing after the division symbol \'%s\'.
- There seems to be a number or a variable missing after the exponentiation symbol \'%s\'.
- Sorry, variables in exponents are not supported by the app. Please revise your answer.
- Sorry, powers higher than 5 are not supported by the app. Please revise your answer.
- Sorry, repeated powers/exponents are not supported by the app. Please limit your answer to one power.
- Missing input for square root.
- Dividing by zero is invalid. Please revise your answer.
- It looks like you have entered some variables. Please make sure that your answer contains numbers only and remove any variables from your answer.
- Please use the variables specified in the question and not %s.
- Your equation is missing an \'=\' sign.
- Your equation contains too many \'=\' signs. It should have only one.
- One of the sides of \'=\' in your equation is empty.
- Function \'%s\' is not supported. Please revise your answer.
- Did you mean sqrt? If not, please separate the variables with multiplication symbols.
- Sorry, we couldn\'t understand your answer. Please check it to make sure there aren\'t any errors.
- Enable audio voiceover for this lesson.
- Recently-Played Stories
- Last-Played Stories
- View All
- Played within the Last Week
- Played within the Last Month
+ Cancel
+ Leave
+
+ No new hint available
+ Show hints and solution
+ Hints
+ Enter text.
+ Enter a fraction in the form x/x, or a mixed number in the form x x/x.
+ Enter a fraction in the form x/x.
+ Enter a number.
+ Type an expression here, using only numbers.
+ Type an expression here.
+ Type an equation here.
+ Please remove the spaces between numbers in your answer.
+ Please close or remove parentheses.
+ Please remove the parentheses around the whole answer: \'%s\'.
+ Please remove extra parentheses around the \'(%1$s)\', for example: \'%1$s\'.
+ Please remove the extra parentheses around \'(%1$s)\', for example: \'%1$s\'.
+ There is an invalid \'%s\' in the answer. Please remove it.
+ Please rearrange the order of %1$s & %2$s. For example: %2$s%1$s.
+ %1$s and %2$s should be separated by a number or a variable.
+ Please remove the extra symbols in your answer.
+ Is there a number or a variable missing before or after the addition symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
+ Is there a number or a variable missing before or after the multiplication symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
+ Is there a number or a variable missing before or after the division symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
+ Is there a number or a variable missing before or after the exponentiation symbol \'%1$s\'? If not, please remove the extra \'%1$s\'.
+ There seems to be a number or a variable missing after the addition symbol \'%s\'.
+ There seems to be a number or a variable missing after the subtraction symbol \'%s\'.
+ There seems to be a number or a variable missing after the multiplication symbol \'%s\'.
+ There seems to be a number or a variable missing after the division symbol \'%s\'.
+ There seems to be a number or a variable missing after the exponentiation symbol \'%s\'.
+ Sorry, variables in exponents are not supported by the app. Please revise your answer.
+ Sorry, powers higher than 5 are not supported by the app. Please revise your answer.
+ Sorry, repeated powers/exponents are not supported by the app. Please limit your answer to one power.
+ Missing input for square root.
+ Dividing by zero is invalid. Please revise your answer.
+ It looks like you have entered some variables. Please make sure that your answer contains numbers only and remove any variables from your answer.
+ Please use the variables specified in the question and not %s.
+ Your equation is missing an \'=\' sign.
+ Your equation contains too many \'=\' signs. It should have only one.
+ One of the sides of \'=\' in your equation is empty.
+ Function \'%s\' is not supported. Please revise your answer.
+ Did you mean sqrt? If not, please separate the variables with multiplication symbols.
+ Sorry, we couldn\'t understand your answer. Please check it to make sure there aren\'t any errors.
+ Continue
+ Navigate to the previous card
+ Navigate to the next card
+ Submit
+ Replay
+ Return To Topic
+ Previous Responses (%s)
+ Clicks on %s
+ If two items are equal, merge them.
+ Link to item %s
+ Unlink items at %s
+ Move item down to %s
+ Move item up to %s
+ Up
+ Down
+ Tap here to enter text.
+ Correct submitted answer
+ Correct submitted answer: %s
+ Incorrect submitted answer
+ Incorrect submitted answer: %s
+ Go to the bottom of the screen for a hint.
+ Please select all correct choices.
+ You may select more choices.
+ No more than %s choices may be selected.
+ Previous State Navigation Button
+ Previous Button
+ Next Button
+
Chapter List
- Image for %s
- Stories You Can Play
- Navigate up
- Recently-Played Stories
- Topic Downloaded
- Downloaded
- Practice Mode
- Question %s of %s
- Complete
- Finished
- You have finished all of the questions! You can choose to play another set of questions, or return to the topic.
- In Progress
- Completed
- Show chapter list
- Hide chapter list
- Play/Pause Audio
- Preferences
- Profile Progress Page
- Search
+ Lock Icon
+
+ Maximum storage capacity reached
+ Saved progress for the lesson \"%s\" will be deleted.
+ Continue
+ Leave without saving progress
+ Back to lesson
+
+ Survey
+ Previous
+ Submit
+ Leave your feedback here
+ Continue Survey
+ Exit
+ Exit Survey
+ Are you sure you want to exit the survey?
+ Your feedback helps us serve learners like you better. Would you like to complete a short survey about your experience?
+ Begin Survey
+ Maybe Later
+ Thank you for completing the survey. We hope you\'ve enjoyed using %s!
+ Exit survey
+ We\'d love your feedback!
+ Thank you
+ 0 - Not at all likely
+ 10 - Extremely likely
+ Please select one of the following:
+ I am a learner
+ I am a teacher
+ I am a parent
+ Other
+ How would you feel if you could no longer use %s?
+ Very disappointed
+ Somewhat disappointed
+ Not disappointed
+ N/A - I don\’t use %s anymore
+ We are glad you have enjoyed your experience with %s. Please share what helped you the most:
+ Thanks for responding! How can we provide a better experience?
+ Help us improve your experience! Please share the primary reason for your score:
+ On a scale from 0–10, how likely are you to recommend %s to a friend or colleague?
+
+ Third-party Dependencies
+ version %s
+
+ Topic page
+ %s
+ Chapter %s: %s
+ Chapter %s with title %s is completed
+ Chapter %s with title %s is in progress
+ Complete Chapter %s: %s to unlock this chapter.
+ Chapter %s: %s is currently locked. Please complete chapter %s: %s to unlock this chapter.
+ Complete the previous chapter to unlock this chapter.
+ Master These Skills
+ Select skills that you would like to practice.
+ Start
+ Details about the topic.
+ Revise concepts learned from completed lessons here.
+ Practice the concepts learned from completed lessons.
+ Tap here to start playing a lesson.
+ Find all your lessons here.
+ Revise concepts learned from completed lessons here.
+ Tap here to start playing a lesson.
+ (%s)
+ See More
+ See Less
+ Info
+ Lessons
+ Practice
+ Revision
+ Topic: %s
+ %s\%%
+ Topic Downloaded
+ Question %s of %s
+ Complete
+ Finished
+ You have finished all of the questions! You can choose to play another set of questions, or return to the topic.
+ In Progress
+ Completed
+ Show chapter list
+ Hide chapter list
+ topic_revision_recyclerview_tag
+ The previous subtopic is %s
+ The next subtopic is %s
+ Download Status
+
+ Leave to Topic Page?
+ Your progress will not be saved.
+ Leave
+ Cancel
+
+ App walkthrough
+ Learn new math skills with stories that show you how to use them in your daily life
+ "Welcome %s!"
+ What do you want to learn?
+ Great
+ Let’s get started.
+ Yes
+ No…
+ Pick a \ndifferent topic.
+ Are you interested in:\n%s?
+ Back Button
+
Please only use numerical digits, spaces or forward slashes (/)Please enter a valid fraction (e.g., 5/3 or 1 2/3)Please do not put 0 in the denominator
@@ -174,14 +548,23 @@
Your answer has two colons (:) next to each other.Number of terms is not equal to the required terms.Ratios cannot have 0 as an element.
+ \u0020to\u0020
+ Enter a ratio in the form x:y.
+ %s %s
+ yesterday
+ recently
+ Coming Soon
+ Recommended Stories
+ Stories For YouUnknown size%s Bytes%s KB%s MB%s GBCorrect!
- Topic: %s
+ just now%s %s!
+ html Content1 Chapter%s Chapters
@@ -208,251 +591,6 @@
%s Topics in Progress%s Topics in Progress
- \u0020|\u0020
-
- Profile selection page
- Administrator
- Select your profile
- Add Profile
- Set up Multiple Profiles
- Add up to 10 users to your account. Perfect for families and classrooms.
- Administrator Controls
- Language
-
- Administrator Controls
- Authorise to add profiles
- Authorise to access Administrator Controls
- Administrator Authorization Required
- Enter the Administrator PIN in order to create a new account.
- Enter the Administrator PIN in order to access Administrator Controls.
- Administrator\'s PIN
- Incorrect Administrator PIN. Please try again.
- Please enter Administrator PIN.
- Submit
- Close
-
- Before we add profiles, we need to protect your account by creating a PIN. This gives you the ability to authorize manage profiles on the device.
- Do not use a PIN you have set for personal accounts like banking or social security.
- New 5-Digit PIN
- Confirm 5-Digit PIN
- Your PIN should be 5 digits long.
- Please make sure that both PINs match.
- Save
- Authorise to add profiles
-
- Add Profile
- Add Profile
- Name
- 3-Digit PIN
- Confirm 3-Digit PIN
- Allow Download Access
- User is able to download and delete content without Administrator PIN.
- Create
- Close
- With a PIN, nobody else can access a profile besides this assigned user.
- We failed to store your avatar image. Please try again.
- This name is already in use by another profile.
- Please enter a valid name for this profile.
- Please choose a profile name that doesn\'t include numbers or symbols.
- Your PIN should be 3 digits long.
- Please make sure that both PINs match.
- More information on 3-digit PINs.
- Current profile picture
- Edit profile picture
-
- Welcome to %s!
- Learn anything you want in an effective and enjoyable way.
- Add users to your account.
- Share the experience and create up to 10 profiles.
- Download for offline.
- Continue learning your lessons without internet connection.
- Have fun!
- Enjoy your learning adventures with our free, effective lessons.
- Skip
- Next
- Get Started
- Slide %s of %s
-
- Hi, %s!
- Please enter your Administrator PIN.
- Please enter your PIN.
- Administrator’s 5-Digit PIN.
- User’s 3-Digit PIN.
- Forgot PIN?
- Incorrect PIN.
- show
- hide
- Close
- PIN change is successful
- Forgot PIN?
- To reset your PIN, you\'ll need to clear all saved data for %s.\n\nKeep in mind that this action will cause all profiles and user progress to be deleted, and it cannot be undone. Also, the app will close when this completes and will need to be reopened.
- Reset %s Data
- Confirm %s Data Reset
- Are you sure that you want to delete all %s profiles on this device? This operation cannot be undone.
- Yes
- No
- Show/Hide password icon
- Password shown icon
- Password hidden icon
- Enter your PIN
- Enter PIN
-
- Administrator\'s PIN
- Access to Administrator Settings
- Administrator\'s PIN required to change user\'s PIN
- Cancel
- Submit
- Incorrect Administrator PIN. Please try again.
- %1$s\'s New PIN.
-
- Enter a New Pin
- This PIN will be %s\'s new PIN and will be required when signing in.
-
- My Downloads
- Downloads
- Updates (2)
-
- Would you like to exit your profile?
- Cancel
- Exit
-
- Home
- From now, you can see lessons recommended for you here.
- Select a Topic to Start
-
- Profiles
-
- Edit Profile
- Created on %s
- Last used
- Rename
- Reset PIN
- Mark Chapters Completed
- Enable Quick Language Switching
- Allow this user to quickly switch between English and Swahili within a lesson.
- Profile Deletion
- Permanently delete this profile?
- All progress will be deleted and cannot be recovered.
- Delete
- Cancel
- Allow Download Access
- User is able to download and delete content without Administrator password
-
- Profile Picture
-
- Profile Picture
- Cancel
- View Profile Picture
- Choose From Library
-
- Rename Profile
- New Name
- Save
-
- Reset PIN
- Enter a new PIN for the user to enter when accessing their profile.
- 3-Digit PIN
- 5-Digit PIN
- Confirm 3-Digit PIN
- Confirm 5-Digit PIN
- Your PIN should be 3 digits long.
- Your PIN should be 5 digits long.
- Create a 3-Digit PIN
- Required
- Back Button
- Next
-
- Learner Study Analytics
-
- General
- Edit account
- Profile Management
- Edit profiles
- Download Permissions
- Download and update only on Wi-fi
- Topics will be downloaded and updated only on Wi-fi. Any downloads or updates of cellular data will be queued.
- Automatically update topics
- Downloaded topics that have new content available will automatically update.
- App Information
- App Version
- Account Actions
- Log Out
- Cancel
- Ok
- Are you sure you want to log out of your profile?
-
- App Version %s
- The last update was installed on %s. Use the above version number to send feedback about bugs.
- App Version
-
- App Language
- Preferred Audio Language
- Reading Text Size
- Reading Text Size
- Story text will look like this.
- A
- Preferred Audio Language
- App Language
- Reading Text Size
- Small
- Medium
- Large
- Extra Large
- Slide seekbar to control the text size.
- Profile
- 2 Stories
- Topics in Progress
- Topic in Progress
- Stories Completed
- Story Completed
- Options
-
- Stories Completed
-
- App walkthrough
- Learn new math skills with stories that show you how to use them in your daily life
- "Welcome %s!"
-
- What do you want to learn?
-
- Great
- Let’s get started.
- Yes
- No…
- Pick a \ndifferent topic.
- Are you interested in:\n%s?
-
- New hint available
- No new hint available
- Show hints and solution
- Hint %s
- Close
- Hints
- Show solution
- Show Solution
- Solution
- Show Hint
- Hide Hint
- Hide solution
- The only solution is: %s
- One solution is: %s
- This will show the solution. Are you sure?
- Show
-
- just now
- recently
- yesterday
- Return to topic
- Return to lesson
- Explanation:
- If two items are equal, merge them.
- Link to item %s
- Unlink items at %s
- Move item down to %s
- Move item up to %s
- Up
- Down
- %s %s0 minutes agoa minute ago
@@ -466,155 +604,13 @@
a day ago%s days ago
-
- topic_revision_recyclerview_tag
- ongoing_recycler_view_tag
- completed_story_list_recyclerview_tag
- Please select all correct choices.
-
+
+ Options
+ Help
+ Navigate up
+ NextUnsupported app versionThis version of the app is no longer supported. Please update it through the Play Store.Close app
- App update required
- A new version of %s is now available. The new version is more secure, and improves your learning experience.\n\nThis version is no longer supported. To continue using the app, please update to the latest version.
- Update
- Close app
- New update available
- A new version of %s is now available. We recommend that you update the app for bug fixes and a better learning experience.
- Dismiss
- Update
- Update your Android OS
- We recommend updating your Android OS to take advantage of %s\'s new features and lessons.\n\nVisit your phone\'s Settings app to update your OS.
- Dismiss
- Developer Build
- Alpha
- Beta
- Beta Notice
- Hello! Your app is now being updated to the Beta version. If you experience problems while using the app, or have questions, please contact us at android-feedback@oppia.org.
- Don\'t show this message again
- OK
- General Availability Notice
- Hello! Your app is now being updated to the General Availability version. If you experience problems while using the app, or have questions, please contact us at android-feedback@oppia.org.
- Don\'t show this message again
- OK
- \u0020to\u0020
- Enter a ratio in the form x:y.
- Tap here to enter text.
- Write the digit here.
- Write here.
- Smallest text size
- Largest text size
- Coming Soon
- Recommended Stories
- Stories For You
- Practice Mode
- Skill revision page
- Audio progress
- Change language
- Audio, ON
- Audio, OFF
- Correct submitted answer
- Correct submitted answer: %s
- Incorrect submitted answer
- Incorrect submitted answer: %s
-
- Third-party Dependencies
- version %s
-
- Copyright Licenses
-
- Copyright License Viewer
-
- Navigate back to %s
- third-party dependencies list
- copyright licenses list
-
- Resume Lesson
- Continue
- Start Over
-
- Good morning,
- Good afternoon,
- Good evening,
-
- Policy Page
- Privacy Policy
- this page for the latest version of this privacy policy.]]>
-
- Terms of Service
- Terms of Service and Privacy Policy.]]>
- this page for the latest version of these terms.]]>
-
- How can I create a new profile?
- How can I delete a profile?
- How can I change my email/phone number?
- What is %s?
- Who is an Administrator?
- Why is the Exploration player not loading?
- Why is my audio not playing?
- I can\'t find my question here. What now?
- If it is your first time creating a profile and not have a PIN:
From the Profile Chooser, tap on Set up Multiple Profiles.
Create a PIN and Save.
Fill in all fields for the profile.
(Optional) Upload a photo.
Enter a name.
(Optional) Assign a 3-digit PIN.
Tap Create. This profile is added to your Profile Chooser!
If you have created a profile before and have a PIN:
From the Profile Chooser, tap on Add Profile.
Enter your PIN and tap Submit.
Fill in all fields for the profile.
(Optional) Upload a photo.
Enter a name.
(Optional) Assign a 3-digit PIN.
Tap Create. This profile is added to your Profile Chooser!
Note: Only the Administrator is able to manage profiles.
]]>
- Once a profile is deleted:
The profile cannot be recovered.
Profile information such as name, photos, and progress will be permanently deleted.
To delete a profile (excluding the Administrator\'s):
From the Administrator\'s Home Page, tap on the menu button on the top left.
Tap on Administrator Controls.
Tap on Edit Profiles.
Tap on the Profile you would like to delete.
At the bottom of the screen, tap Profile Deletion.
Tap Delete to confirm deletion.
Note: Only the Administrator is able to manage profiles.
]]>
- To change your email/phone number:
From the Administrator\'s Home Page, tap on the menu button on the top left.
Tap on Administrator Controls.
Tap on Edit Account.
If you want to change your email:
Enter your new email and tap Save.
A confirmation link is sent to confirm your new email. The link will expire after 24 hours and must be clicked on to be associated with your account.
If changing your phone number:
Enter your new phone number and tap Verify.
A code is sent to confirm your new number. The code will expire after 5 minutes and must be entered in the new screen to be associated with your account.
]]>
- %1$s "O-pee-yah" (Finnish) - "to learn"
%1$s\'s mission is to help anyone learn anything they want in an effective and enjoyable way.
By creating a set of free, high-quality, demonstrably effective lessons with the help of educators from around the world, %1$s aims to provide students with quality education — regardless of where they are or what traditional resources they have access to.
As a student, you can begin your learning adventure by browsing the topics listed on the Home Page!
]]>
- An Administrator is the main user that manages profiles and settings for every profile on their account. They are most likely your parent, teacher, or guardian that created this profile for you.
Administrators have the ability to manage profiles, assign PINs, and change other settings under their account. Depending on your profile, Administrator permissions may be required for certain features such as changing your PIN, and more.
To see who your Administrator is, go to the Profile Chooser. The first profile listed and has "Administrator" written under their name is the Administrator.
]]>
- If the Exploration Player is not loading
Check to see if the app is up to date:
Go to the Play Store and make sure the app is updated to its latest version
Check your internet connection:
If your internet connection is slow, try re-connecting to your Wi-Fi network or connecting to a different network.
Ask the Administrator to check their device and internet connection:
Get the Administrator to troubleshoot using the steps above
Let us know if you still have issues with loading:
Report a problem by contacting us at admin@oppia.org.
]]>
- If your audio is not playing
Check to see if the app is up to date:
Go to the Play Store and make sure the app is updated to its latest version
Check your internet connection:
If your internet connection is slow, try re-connecting to your Wi-Fi network or connecting to a different network. Slow internet may cause the audio to load irregularly, making it difficult to play.
Ask the Administrator to check their device and internet connection:
Get the Administrator to troubleshoot using the steps above
Let us know if you still have issues with loading:
Report a problem by contacting us at admin@oppia.org.