Update all text to translations

This commit is contained in:
Kent Keirsey
2025-06-30 15:04:02 -04:00
committed by psychedelicious
parent d608a7469e
commit 46a5619100
3 changed files with 68 additions and 41 deletions

View File

@@ -2449,7 +2449,44 @@
"workflowsTitle": "Go deep with Workflows.",
"upscalingTitle": "Upscale and add detail.",
"canvasTitle": "Edit and refine on Canvas.",
"generateTitle": "Generate images from text prompts."
"generateTitle": "Generate images from text prompts.",
"workflows": {
"description": "Workflows are reusable templates that automate image generation tasks, allowing you to quickly perform complex operations and get consistent results.",
"learnMoreLink": "Learn more about creating workflows",
"browseTemplates": {
"title": "Browse Workflow Templates",
"description": "Choose from pre-built workflows for common tasks"
},
"createNew": {
"title": "Create a new Workflow",
"description": "Start a new workflow from scratch"
},
"loadFromFile": {
"title": "Load workflow from existing image or file",
"description": "Drag or upload a workflow to start with an existing setup"
}
},
"upscaling": {
"uploadImage": {
"title": "Upload Image to Upscale",
"description": "Click or drag an image to upscale (JPG, PNG, WebP up to 100MB)"
},
"imageReady": {
"title": "Image Ready",
"description": "Press Invoke to begin upscaling"
},
"readyToUpscale": {
"title": "Ready to upscale!",
"description": "Configure your settings below, then click the Invoke button to begin upscaling your image."
},
"upscaleModel": "Upscale Model",
"model": "Model",
"scale": "Scale",
"helpText": {
"promptAdvice": "When upscaling, use a prompt that describes the medium and style. Avoid describing specific content details in the image.",
"styleAdvice": "Upscaling works best with the general style of your image."
}
}
}
},
"system": {

View File

@@ -1,4 +1,4 @@
import { Box, Flex, FormControl, FormLabel, Grid, Heading, Icon, Text } from '@invoke-ai/ui-library';
import { Box, Flex, Grid, Heading, Icon, Text } from '@invoke-ai/ui-library';
import { useAppDispatch, useAppSelector } from 'app/store/storeHooks';
import { useImageUploadButton } from 'common/hooks/useImageUploadButton';
import { setUpscaleInitialImageDndTarget } from 'features/dnd/dnd';
@@ -47,8 +47,8 @@ export const UpscalingLaunchpadPanel = memo(() => {
<>
<Icon as={PiImageBold} boxSize={8} color="base.500" />
<Flex flexDir="column" alignItems="flex-start" gap={2}>
<Heading size="sm">Upload Image to Upscale</Heading>
<Text color="base.300">Click or drag an image to upscale (JPG, PNG, WebP up to 100MB)</Text>
<Heading size="sm">{t('ui.launchpad.upscaling.uploadImage.title')}</Heading>
<Text color="base.300">{t('ui.launchpad.upscaling.uploadImage.description')}</Text>
</Flex>
<Flex position="absolute" right={3} bottom={3}>
<PiUploadBold />
@@ -83,8 +83,8 @@ export const UpscalingLaunchpadPanel = memo(() => {
>{`${upscaleInitialImage.width}x${upscaleInitialImage.height}`}</Text>
</Flex>
<Flex flexDir="column" alignItems="flex-start" gap={2}>
<Heading size="sm">Image Ready</Heading>
<Text color="base.300">Press Invoke to begin upscaling</Text>
<Heading size="sm">{t('ui.launchpad.upscaling.imageReady.title')}</Heading>
<Text color="base.300">{t('ui.launchpad.upscaling.imageReady.description')}</Text>
</Flex>
</>
)}
@@ -97,16 +97,9 @@ export const UpscalingLaunchpadPanel = memo(() => {
{/* Guidance text */}
{upscaleInitialImage && (
<Flex
bg="base.800"
p={4}
borderRadius="base"
border="1px solid"
borderColor="base.700"
mt={6}
>
<Flex bg="base.800" p={4} borderRadius="base" border="1px solid" borderColor="base.700" mt={6}>
<Text variant="subtext" fontSize="sm" lineHeight="1.6">
<strong>Ready to upscale!</strong> Configure your settings below, then click the <strong>Invoke</strong> button to begin upscaling your image.
<strong>{t('ui.launchpad.upscaling.readyToUpscale.title')}</strong> {t('ui.launchpad.upscaling.readyToUpscale.description')}
</Text>
</Flex>
)}
@@ -117,19 +110,25 @@ export const UpscalingLaunchpadPanel = memo(() => {
{/* Left Column: All parameters stacked */}
<Flex flexDir="column" gap={6} alignItems="flex-start">
<Box w="full">
<Text fontWeight="semibold" fontSize="sm" mb={1}>Upscale Model</Text>
<Text fontWeight="semibold" fontSize="sm" mb={1}>
{t('ui.launchpad.upscaling.upscaleModel')}
</Text>
<Box className="launchpad-hide-label">
<ParamSpandrelModel />
</Box>
</Box>
<Box w="full">
<Text fontWeight="semibold" fontSize="sm" mb={1}>Model</Text>
<Text fontWeight="semibold" fontSize="sm" mb={1}>
{t('ui.launchpad.upscaling.model')}
</Text>
<Box className="launchpad-hide-label">
<MainModelPicker />
</Box>
</Box>
<Box w="full">
<Text fontWeight="semibold" fontSize="sm" mb={1}>Scale</Text>
<Text fontWeight="semibold" fontSize="sm" mb={1}>
{t('ui.launchpad.upscaling.scale')}
</Text>
<Box className="launchpad-hide-label">
<UpscaleScaleSlider />
</Box>
@@ -138,10 +137,10 @@ export const UpscalingLaunchpadPanel = memo(() => {
{/* Right Column: Description/help text */}
<Box>
<Text variant="subtext" fontSize="sm" lineHeight="1.6">
When upscaling, use a prompt that describes the medium and style. Avoid describing specific content details in the image.
{t('ui.launchpad.upscaling.helpText.promptAdvice')}
</Text>
<Text variant="subtext" fontSize="sm" lineHeight="1.6" mt={3}>
Upscaling works best with the general style of your image.
{t('ui.launchpad.upscaling.helpText.styleAdvice')}
</Text>
</Box>
</Grid>

View File

@@ -1,5 +1,4 @@
import { Button, Flex, Heading, Icon, Link, Text } from '@invoke-ai/ui-library';
import { useImageUploadButton } from 'common/hooks/useImageUploadButton';
import { Flex, Heading, Icon, Link, Text } from '@invoke-ai/ui-library';
import { useWorkflowLibraryModal } from 'features/nodes/store/workflowLibraryModal';
import { useNewWorkflow } from 'features/workflowLibrary/components/NewWorkflowConfirmationAlertDialog';
import { useLoadWorkflowFromFile } from 'features/workflowLibrary/hooks/useLoadWorkflowFromFile';
@@ -22,13 +21,6 @@ export const WorkflowsLaunchpadPanel = memo(() => {
[loadWorkflowFromFile]
);
const uploadApi = useImageUploadButton({
allowMultiple: false,
onUpload: (imageDTOs) => {
// Handle workflow file upload - this would need to be adapted for workflow files
}
});
const handleBrowseTemplates = useCallback(() => {
workflowLibraryModal.open();
}, [workflowLibraryModal]);
@@ -58,17 +50,16 @@ export const WorkflowsLaunchpadPanel = memo(() => {
{/* Description */}
<Text variant="subtext" fontSize="md" lineHeight="1.6">
Workflows are reusable templates that automate image generation tasks,
allowing you to quickly perform complex operations and get consistent results.
{t('ui.launchpad.workflows.description')}
</Text>
<Link
href="https://invoke-ai.github.io/InvokeAI/features/WORKFLOWS/"
isExternal
<Link
href="https://support.invoke.ai/support/solutions/articles/151000189610-getting-started-with-workflows-denoise-latents"
isExternal
color="invokeBlue.400"
fontSize="sm"
>
{t('learnMore')} about creating workflows
{t('ui.launchpad.workflows.learnMoreLink')}
</Link>
{/* Action Buttons */}
@@ -77,8 +68,8 @@ export const WorkflowsLaunchpadPanel = memo(() => {
<LaunchpadButton onClick={handleBrowseTemplates} position="relative" gap={8}>
<Icon as={PiFolderOpenBold} boxSize={8} color="base.500" />
<Flex flexDir="column" alignItems="flex-start" gap={2}>
<Heading size="sm">Browse Workflow Templates</Heading>
<Text color="base.300">Choose from pre-built workflows for common tasks</Text>
<Heading size="sm">{t('ui.launchpad.workflows.browseTemplates.title')}</Heading>
<Text color="base.300">{t('ui.launchpad.workflows.browseTemplates.description')}</Text>
</Flex>
</LaunchpadButton>
@@ -86,8 +77,8 @@ export const WorkflowsLaunchpadPanel = memo(() => {
<LaunchpadButton onClick={handleCreateNew} position="relative" gap={8}>
<Icon as={PiFilePlusBold} boxSize={8} color="base.500" />
<Flex flexDir="column" alignItems="flex-start" gap={2}>
<Heading size="sm">Create a new Workflow</Heading>
<Text color="base.300">Start a new workflow from scratch</Text>
<Heading size="sm">{t('ui.launchpad.workflows.createNew.title')}</Heading>
<Text color="base.300">{t('ui.launchpad.workflows.createNew.description')}</Text>
</Flex>
</LaunchpadButton>
@@ -95,8 +86,8 @@ export const WorkflowsLaunchpadPanel = memo(() => {
<LaunchpadButton onClick={handleLoadFromFile} position="relative" gap={8}>
<Icon as={PiUploadBold} boxSize={8} color="base.500" />
<Flex flexDir="column" alignItems="flex-start" gap={2}>
<Heading size="sm">Load workflow from existing image or file</Heading>
<Text color="base.300">Drag or upload a workflow to start with an existing setup</Text>
<Heading size="sm">{t('ui.launchpad.workflows.loadFromFile.title')}</Heading>
<Text color="base.300">{t('ui.launchpad.workflows.loadFromFile.description')}</Text>
</Flex>
</LaunchpadButton>
</Flex>