Just align naming conventions

This commit is contained in:
Eric Bailey
2026-03-17 13:20:02 -05:00
parent 389bea7c93
commit a00e5dd724
5 changed files with 63 additions and 36 deletions
+4 -4
View File
@@ -57,7 +57,7 @@ export function TranslatedPost({
const initialTranslationParams = useMemo<TranslationFunctionParams>(() => {
return {
text: record?.text || '',
targetLangCode: langPrefs.primaryLanguage,
expectedTargetLanguage: langPrefs.primaryLanguage,
possibleSourceLanguages: getPostLanguageTags(post),
}
}, [post, record, langPrefs])
@@ -406,13 +406,13 @@ function TranslationLanguageSelect({
os: Platform.OS,
possibleSourceLanguages: initialTranslationParams.possibleSourceLanguages,
expectedSourceLanguage: sourceLangCode,
expectedTargetLanguage: initialTranslationParams.targetLangCode,
expectedTargetLanguage: initialTranslationParams.expectedTargetLanguage,
resultSourceLanguage,
})
void translate({
text: initialTranslationParams.text,
targetLangCode: initialTranslationParams.targetLangCode,
sourceLangCode,
expectedTargetLanguage: initialTranslationParams.expectedTargetLanguage,
expectedSourceLanguage: sourceLangCode,
possibleSourceLanguages: initialTranslationParams.possibleSourceLanguages,
})
}
@@ -277,7 +277,7 @@ let PostMenuItems = ({
const onPressTranslate = () => {
void translate({
text: record.text,
targetLangCode: langPrefs.primaryLanguage,
expectedTargetLanguage: langPrefs.primaryLanguage,
possibleSourceLanguages: getPostLanguageTags(post),
})
}
+32 -19
View File
@@ -120,11 +120,15 @@ export function useTranslate({
const translate = useCallback(
async (params: TranslationFunctionParams) => {
return context.translate({
...params,
key,
forceGoogleTranslate,
})
return context.translate(
{
...params,
},
{
key,
forceGoogleTranslate,
},
)
},
[context, forceGoogleTranslate, key],
)
@@ -206,23 +210,32 @@ export function Provider({children}: React.PropsWithChildren<unknown>) {
}, [])
const translate = useCallback<ContextType['translate']>(
async ({
key,
text,
targetLangCode,
sourceLangCode: expectedSourceLanguage,
possibleSourceLanguages,
...options
}) => {
async (
{
text,
expectedTargetLanguage,
expectedSourceLanguage,
possibleSourceLanguages,
forceGoogleTranslate: forceGoogleTranslateOverride,
},
{key, forceGoogleTranslate},
) => {
ax.metric('translate', {
os: Platform.OS,
possibleSourceLanguages,
expectedTargetLanguage: targetLangCode,
expectedTargetLanguage: expectedTargetLanguage,
textLength: text.length,
})
if (options?.forceGoogleTranslate || !HAS_ON_DEVICE_TRANSLATION) {
await googleTranslate(text, targetLangCode, expectedSourceLanguage)
const shouldForceGoogleTranslate =
forceGoogleTranslateOverride ?? forceGoogleTranslate
if (shouldForceGoogleTranslate || !HAS_ON_DEVICE_TRANSLATION) {
await googleTranslate(
text,
expectedTargetLanguage,
expectedSourceLanguage,
)
return
}
@@ -236,7 +249,7 @@ export function Provider({children}: React.PropsWithChildren<unknown>) {
try {
const result = await attemptTranslation(
text,
targetLangCode,
expectedTargetLanguage,
expectedSourceLanguage,
)
ax.metric('translate:result', {
@@ -244,7 +257,7 @@ export function Provider({children}: React.PropsWithChildren<unknown>) {
os: Platform.OS,
possibleSourceLanguages,
expectedSourceLanguage: expectedSourceLanguage ?? null,
expectedTargetLanguage: targetLangCode,
expectedTargetLanguage,
resultSourceLanguage: result.sourceLanguage,
resultTargetLanguage: result.targetLanguage,
textLength: text.length,
@@ -271,7 +284,7 @@ export function Provider({children}: React.PropsWithChildren<unknown>) {
os: Platform.OS,
possibleSourceLanguages,
expectedSourceLanguage: expectedSourceLanguage ?? null,
expectedTargetLanguage: targetLangCode,
expectedTargetLanguage,
resultSourceLanguage: null,
resultTargetLanguage: null,
textLength: text.length,
+21 -8
View File
@@ -33,11 +33,15 @@ export function useTranslate({key}: TranslationOptions) {
// Always call hooks in consistent order
const translate = useCallback(
async (params: TranslationFunctionParams) => {
return context.translate({
...params,
key,
forceGoogleTranslate: true,
})
return context.translate(
{
...params,
},
{
key,
forceGoogleTranslate: true,
},
)
},
[key, context],
)
@@ -60,14 +64,23 @@ export function Provider({children}: React.PropsWithChildren<unknown>) {
const googleTranslate = useGoogleTranslate()
const translate = useCallback<ContextType['translate']>(
async ({text, targetLangCode, sourceLangCode, possibleSourceLanguages}) => {
async ({
text,
expectedTargetLanguage,
expectedSourceLanguage,
possibleSourceLanguages,
}) => {
ax.metric('translate', {
os: 'web',
possibleSourceLanguages,
expectedTargetLanguage: targetLangCode,
expectedTargetLanguage,
textLength: text.length,
})
await googleTranslate(text, targetLangCode, sourceLangCode)
await googleTranslate(
text,
expectedTargetLanguage,
expectedSourceLanguage,
)
},
[ax, googleTranslate],
)
+5 -4
View File
@@ -22,14 +22,14 @@ export type TranslationFunctionParams = {
/**
* The language to translate the text into.
*/
targetLangCode: string
expectedTargetLanguage: string
/**
* We auto-detect the source language by default, but the user has the option
* to specify a source language if they want to. If this value is present, it
* means the user selected a source language, or we were certain of the
* source language and want to specify it explicitly.
*/
sourceLangCode?: string
expectedSourceLanguage?: string
/**
* The languages the content might be in, such as the user-supplied
* language codes on posts. Currently only available on posts.
@@ -53,13 +53,14 @@ export type TranslationOptions = {
}
export type TranslationFunction = (
parameters: TranslationFunctionParams,
params: TranslationFunctionParams,
) => Promise<void>
export type ContextType = {
translationState: Record<string, TranslationState>
translate: (
parameters: TranslationFunctionParams & TranslationOptions,
params: TranslationFunctionParams,
options: TranslationOptions,
) => Promise<void>
clearTranslation: (key: string) => void
acquireTranslation: (key: string) => () => void