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

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .changeset/sync-localization-react-e4c7700.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'@youversion/platform-react-ui': patch
---

Sync localization from platform-localization (e4c7700): update 28 keys in en.
16 changes: 9 additions & 7 deletions packages/ui/src/components/bible-version-picker.stories.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -167,14 +167,16 @@ export const InteractiveLanguageSelection: Story = {
await expect(dialog).toBeInTheDocument();

// Click language button
const languageButton = await screen.findByRole('button', { name: /select language/i });
const languageButton = await screen.findByRole('button', { name: /select a language/i });
await waitFor(async () => {
await expect(languageButton).toHaveTextContent('English');
});
await userEvent.click(languageButton);

// Verify language list is visible
const selectLanguageHeading = await screen.findByRole('heading', { name: /select language/i });
const selectLanguageHeading = await screen.findByRole('heading', {
name: /select a language/i,
});
await expect(selectLanguageHeading).toBeInTheDocument();

// Select Korean
Expand All @@ -184,7 +186,7 @@ export const InteractiveLanguageSelection: Story = {
// Wait for the language button to update with the selected language
await waitFor(async () => {
await expect(
await screen.findByRole('button', { name: /select language/i }),
await screen.findByRole('button', { name: /select a language/i }),
).toHaveTextContent(/korean/i);
});
},
Expand Down Expand Up @@ -231,7 +233,7 @@ export const SuggestedLanguagesTabs: Story = {
await expect(dialog).toBeInTheDocument();

// Click language button to open language selection
const languageButton = await screen.findByRole('button', { name: /select language/i });
const languageButton = await screen.findByRole('button', { name: /select a language/i });
await userEvent.click(languageButton);

// Verify the Suggested tab is active by default and shows "Regional" heading
Expand Down Expand Up @@ -288,7 +290,7 @@ export const SuggestedLanguagesTabs: Story = {
// Verify the language button shows the selected language
await waitFor(async () => {
await expect(
await screen.findByRole('button', { name: /select language/i }),
await screen.findByRole('button', { name: /select a language/i }),
).toHaveTextContent(/english/i);
});
},
Expand Down Expand Up @@ -321,7 +323,7 @@ export const SuggestedLanguagesOrder: Story = {
await userEvent.click(trigger);

// Open language selection
const languageButton = await screen.findByRole('button', { name: /select language/i });
const languageButton = await screen.findByRole('button', { name: /select a language/i });
await userEvent.click(languageButton);

// Verify suggested languages appear in API order (not alphabetical or by population)
Expand All @@ -347,7 +349,7 @@ export const LanguageSearch: Story = {
const trigger = await canvas.findByRole('button', { name: /NIV/i }, { timeout: 10_000 });
await userEvent.click(trigger);

const languageButton = await screen.findByRole('button', { name: /select language/i });
const languageButton = await screen.findByRole('button', { name: /select a language/i });
await userEvent.click(languageButton);

const languageSearchInput = screen.getByRole('textbox', { name: /search languages/i });
Expand Down
18 changes: 9 additions & 9 deletions packages/ui/src/components/bible-version-picker.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ async function openPicker() {

async function openLanguagePanel() {
await openPicker();
await userEvent.click(screen.getByRole('button', { name: /select language/i }));
await userEvent.click(screen.getByRole('button', { name: /select a language/i }));
}

function getLanguageSearchInput() {
Expand Down Expand Up @@ -255,7 +255,7 @@ describe('BibleVersionPicker', () => {
await openPicker();

await waitFor(() => {
const languageButton = screen.getByRole('button', { name: /select language/i });
const languageButton = screen.getByRole('button', { name: /select a language/i });
const badge = languageButton.querySelector('[data-slot="badge"]');
expect(badge).not.toBeNull();

Expand Down Expand Up @@ -288,7 +288,7 @@ describe('BibleVersionPicker', () => {
await openPicker();

await waitFor(() => {
const languageButton = screen.getByRole('button', { name: /select language/i });
const languageButton = screen.getByRole('button', { name: /select a language/i });
const badge = languageButton.querySelector('[data-slot="badge"]');
expect(badge).not.toBeNull();
expect(badge!.textContent).toBe('2');
Expand Down Expand Up @@ -598,7 +598,7 @@ describe('BibleVersionPicker', () => {
</BibleVersionPicker.Root>,
);

expect(screen.queryByText('Select Language')).not.toBeInTheDocument();
expect(screen.queryByText('Select a Language')).not.toBeInTheDocument();
expect(screen.getByText('Suggested')).toBeInTheDocument();
await user.click(screen.getByRole('listitem', { name: /english/i }));

Expand All @@ -616,7 +616,7 @@ describe('BibleVersionPicker', () => {
</BibleVersionPicker.Root>,
);

await user.click(screen.getByRole('button', { name: /select language/i }));
await user.click(screen.getByRole('button', { name: /select a language/i }));

expect(onClick).toHaveBeenCalledTimes(1);
});
Expand All @@ -633,7 +633,7 @@ describe('BibleVersionPicker', () => {
);

await user.click(screen.getByRole('button', { name: 'NIV' }));
await user.click(screen.getAllByRole('button', { name: /select language/i })[0]!);
await user.click(screen.getAllByRole('button', { name: /select a language/i })[0]!);

expect(screen.queryByText('All Languages')).not.toBeInTheDocument();
});
Expand All @@ -644,9 +644,9 @@ describe('BibleVersionPicker', () => {
renderPicker();

await openPicker();
await user.click(screen.getByRole('button', { name: /select language/i }));
await user.click(screen.getByRole('button', { name: /select a language/i }));

expect(screen.getByRole('heading', { name: /select language/i })).toBeInTheDocument();
expect(screen.getByRole('heading', { name: /select a language/i })).toBeInTheDocument();

const dialog = screen.getByRole('dialog');
const viewport = dialog.querySelector('.yv\\:relative.yv\\:min-h-0.yv\\:overflow-hidden');
Expand Down Expand Up @@ -776,7 +776,7 @@ describe('BibleVersionPicker', () => {
expect(getLanguageSearchInput()).toHaveValue('korean');

await user.click(screen.getByRole('button', { name: /back to bible versions/i }));
await user.click(screen.getByRole('button', { name: /select language/i }));
await user.click(screen.getByRole('button', { name: /select a language/i }));

expect(getLanguageSearchInput()).toHaveValue('');
});
Expand Down
2 changes: 1 addition & 1 deletion packages/ui/src/components/verse.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1070,7 +1070,7 @@ describe('BibleTextView - Error messaging', () => {

await waitFor(() => {
expect(getByRole('alert')).toHaveTextContent(
"This passage isn't available in the selected Bible version.",
'This passage is unavailable in the selected Bible version.',
);
});
});
Expand Down
34 changes: 29 additions & 5 deletions packages/ui/src/i18n/locales/en.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"verseOfTheDay": "Verse of The Day",
"verseOfTheDay": "Verse of the Day",
"shareAriaLabel": "Share",
"noLanguageSearchResults": "We're sorry, there are no results for this search.",
"languageSearchAriaLabel": "Search languages",
Expand Down Expand Up @@ -28,8 +28,8 @@
"booksHeading": "Books",
"backToBibleVersionsAriaLabel": "Back to Bible versions",
"bibleVersionsHeading": "Bible Versions",
"selectLanguageHeading": "Select Language",
"selectLanguageAriaLabel": "Select language",
"selectLanguageHeading": "Select a Language",
"selectLanguageAriaLabel": "Select a Language",
"recentlyUsedVersionsHeading": "Recently Used Versions",
"allVersionsHeading": "All Versions",
"regionalHeading": "Regional",
Expand All @@ -51,7 +51,7 @@
"verseLabel": "Verse {{verseNum}}",
"bibleAppTitle": "Bible App",
"sunIconTitle": "Sun",
"passageNotFoundError": "This passage isn't available in the selected Bible version.",
"passageNotFoundError": "This passage is unavailable in the selected Bible version.",
"invalidAppKeyError": "This Bible content couldn't be loaded because the app key is missing or invalid.",
"forbiddenError": "This app isn't allowed to access this Bible content.",
"unreachableServerError": "The Bible server couldn't be reached. Check your connection and try again.",
Expand Down Expand Up @@ -83,5 +83,29 @@
"signOutPendingHighlightsConfirm": "Sign out anyway",
"youVersionPlatformLogoAriaLabel": "YouVersion Platform",
"signInAppNameFallback": "This app",
"untitledSerifFontName": "Untitled Serif"
"untitledSerifFontName": "Untitled Serif",
"cancel": "Cancel",
"close": "Close",
"error": "Error",
"font": "Font",
"fontAndSettings": "Fonts & Settings",
"language": "Language",
"maybeLater": "Maybe Later",
"moreMenuAriaLabel": "More",
"ok": "OK",
"offlineConnectionLostMessage": "We’re having difficulties with your connection.",
"offlineDownloadAgreement": "Our agreement with the publisher of this Bible version requires us to share certain information with them in order to offer this version for offline use. By proceeding you agree to share your information and to allow the publisher to email you.",
"offlineDownloadTagline": "Read it anytime, anywhere—even offline",
"passageUnavailable": "This passage is unavailable in the selected Bible version.",
"regional": "Regional",
"search": "Search",
"searchLanguages": "Search languages",
"searchVersions": "Search versions",
"selectLanguage": "Select a Language",
"suggested": "Suggested",
"versionUnavailableAutoSelectedMessage": "Your previously selected Bible version is unavailable. Please switch to another one.",
"agreeAndDownload": "Agree and Download",
"all": "All",
"back": "Back",
"bibleApp": "Bible App"
}
Loading