-
Notifications
You must be signed in to change notification settings - Fork 130
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Adding support for function localizations #2868
Conversation
Thanks for your contribution! Depending on what you are working on, you may want to request a review from a Shopify team:
|
Coverage report
Test suite run success1430 tests passing in 669 suites. Report generated by 🧪jest coverage report action from 301a7f8 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM once the server-side PR ships! I'm not sure how merging to stable vs main works but I'll leave reviewing that part to the CLI owners 😅
packages/app/src/cli/models/extensions/specifications/function.test.ts
Outdated
Show resolved
Hide resolved
packages/app/src/cli/models/extensions/specifications/function.test.ts
Outdated
Show resolved
Hide resolved
const expectedLocalization = { | ||
default_locale: 'en', | ||
translations: { | ||
en: 'eyJleHRlbnNpb24iOnsidGl0bGUiOiJFbmdsaXNoIFRpdGxlIiwiZGVzY3JpcHRpb24iOiJFbmdsaXNoIERlc2NyaXB0aW9uIn19', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I was wondering if it would be better to manually encode the expected translation instead of hardcoded the base64. But its not super easy since the translations are string representations and the rest of the CLI seems to use the hardcoded base64 so this is probably fine 🤷♂️
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's a bigger change as we have to update everythign that uses {loadLocalesConfig}
from '../../../utilities/extensions/locales-configuration.js'
I think
packages/app/src/cli/models/extensions/specifications/function.test.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
25ae9d4
to
deda88f
Compare
deda88f
to
301a7f8
Compare
Differences in type declarationsWe detected differences in the type declarations generated by Typescript for this branch compared to the baseline ('main' branch). Please, review them to ensure they are backward-compatible. Here are some important things to keep in mind:
New type declarationsWe found no new type declarations in this PR Existing type declarationspackages/cli-kit/dist/public/common/version.d.ts@@ -1 +1 @@
-export declare const CLI_KIT_VERSION = "3.49.1";
\ No newline at end of file
+export declare const CLI_KIT_VERSION = "3.49.3";
\ No newline at end of file
packages/cli-kit/dist/public/node/error-handler.d.ts@@ -14,11 +14,9 @@ export declare function errorHandler(error: Error & {
export declare function sendErrorToBugsnag(error: unknown): Promise<{
reported: false;
error: unknown;
- unhandled: unknown;
} | {
error: Error;
reported: true;
- unhandled: boolean;
}>;
/**
* If the given file path is within a node_modules folder, remove prefix up
packages/cli-kit/dist/public/node/error.d.ts@@ -74,7 +74,7 @@ export declare function handler(error: unknown): Promise<unknown>;
*/
export declare function errorMapper(error: unknown): Promise<unknown>;
/**
- * A function that checks if an error should be reported as unhandled.
+ * A function that checks if an error should be reported.
*
* @param error - Error to be checked.
* @returns A boolean indicating if the error should be reported.
packages/cli-kit/dist/public/node/ui.d.ts@@ -30,7 +30,7 @@ export interface RenderConcurrentOptions extends PartialBy<ConcurrentOutputProps
* 00:00:00 │ frontend │ third frontend message
*
*/
-export declare function renderConcurrent({ renderOptions, ...props }: RenderConcurrentOptions): Promise<void>;
+export declare function renderConcurrent({ renderOptions, ...props }: RenderConcurrentOptions): Promise<void | void[]>;
export type AlertCustomSection = CustomSection;
export type RenderAlertOptions = Omit<AlertOptions, 'type'>;
/**
packages/cli-kit/dist/private/node/testing/ui.d.ts@@ -10,16 +10,14 @@ declare class Stderr extends EventEmitter {
}
export declare class Stdin extends EventEmitter {
isTTY: boolean;
- data: string | null;
constructor(options?: {
isTTY?: boolean;
});
write: (data: string) => void;
setEncoding(): void;
setRawMode(): void;
- ref(): void;
- unref(): void;
- read: () => string | null;
+ resume(): void;
+ pause(): void;
}
interface Instance {
rerender: (tree: ReactElement) => void;
packages/cli-kit/dist/public/node/testing/ui.d.ts@@ -1 +1 @@
-export { getLastFrameAfterUnmount, render, Stdin, waitForInputsToBeReady, waitForContent, sendInputAndWait, sendInputAndWaitForChange, sendInputAndWaitForContent, } from '../../../private/node/testing/ui.js';
\ No newline at end of file
+export { getLastFrameAfterUnmount, render, Stdin, waitForInputsToBeReady, waitForContent, } from '../../../private/node/testing/ui.js';
\ No newline at end of file
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Code and 🎩 lgtm!
WHY are these changes introduced?
Adding support for defining a locales directory in your app to supply localized strings. Use t: prefix for your titles and description field (if applicable) in your .toml file to use the localized strings. (Basically rebasing DC's PR to stable/3.49 branch)
Pushing to stable/3.49 branch
WHAT is this pull request doing?
Leveraging the existing helpers for localization.
How to test your changes?
func-loc
.func-loc
Post-release steps
NOTE: Will have another PR soon to incorporate these changes in cli/main as well.
Measuring impact
How do we know this change was effective? Please choose one:
Checklist
dev
ordeploy
have been reflected in the internal flowchart.