Translate placeholders

This commit is contained in:
Nicola Benaglia 2025-05-20 22:29:35 +02:00
parent 748a469598
commit 71475c2e77
13 changed files with 65 additions and 23 deletions

View File

@ -362,7 +362,9 @@ export const Wallets = ({ setExtState, setRawWallet, rawWallet }) => {
})}
</Label>
<Input
placeholder="Name"
placeholder={t('core:name', {
postProcess: 'capitalizeFirstChar',
})}
value={seedName}
onChange={(e) => setSeedName(e.target.value)}
/>
@ -370,12 +372,14 @@ export const Wallets = ({ setExtState, setRawWallet, rawWallet }) => {
<Spacer height="7px" />
<Label>
{t('auth:seed', {
{t('auth:seed_phrase', {
postProcess: 'capitalizeFirstChar',
})}
</Label>
<PasswordField
placeholder="Seed-phrase"
placeholder={t('auth:seed_phrase', {
postProcess: 'capitalizeFirstChar',
})}
id="standard-adornment-password"
value={seedValue}
onChange={(e) => setSeedValue(e.target.value)}
@ -554,7 +558,7 @@ const WalletItem = ({ wallet, updateWalletItem, idx, setSelectedWallet }) => {
})}
</Label>
<Input
placeholder="Name"
placeholder={t('core:name', { postProcess: 'capitalizeFirstChar' })}
value={name}
onChange={(e) => setName(e.target.value)}
sx={{
@ -570,7 +574,7 @@ const WalletItem = ({ wallet, updateWalletItem, idx, setSelectedWallet }) => {
})}
</Label>
<Input
placeholder="Note"
placeholder={t('core:note', { postProcess: 'capitalizeFirstChar' })}
value={note}
onChange={(e) => setNote(e.target.value)}
inputProps={{

View File

@ -292,7 +292,9 @@ export const AppPublish = ({ names, categories }) => {
</InputLabel>
<CustomSelect
placeholder="Select Name/App"
placeholder={t('core:action.select_name_app', {
postProcess: 'capitalizeFirstChar',
})}
displayEmpty
value={name}
onChange={(event) => setName(event?.target.value)}
@ -323,7 +325,9 @@ export const AppPublish = ({ names, categories }) => {
</InputLabel>
<CustomSelect
placeholder="SERVICE TYPE"
placeholder={t('core:service_type', {
postProcess: 'capitalizeFirstChar',
})}
displayEmpty
value={appType}
onChange={(event) => setAppType(event?.target.value)}
@ -339,11 +343,13 @@ export const AppPublish = ({ names, categories }) => {
})}
</em>
</CustomMenuItem>
<CustomMenuItem value={'APP'}>
{t('core:app', {
postProcess: 'capitalizeFirstChar',
})}
</CustomMenuItem>
<CustomMenuItem value={'WEBSITE'}>
{t('core:website', {
postProcess: 'capitalizeFirstChar',
@ -370,7 +376,7 @@ export const AppPublish = ({ names, categories }) => {
width: '100%',
maxWidth: '450px',
}}
placeholder="Title"
placeholder={t('core:title', { postProcess: 'capitalizeFirstChar' })}
inputProps={{
'aria-label': 'Title',
fontSize: '14px',
@ -397,7 +403,9 @@ export const AppPublish = ({ names, categories }) => {
width: '100%',
maxWidth: '450px',
}}
placeholder="Description"
placeholder={t('core:description', {
postProcess: 'capitalizeFirstChar',
})}
inputProps={{
'aria-label': 'Description',
fontSize: '14px',
@ -415,7 +423,9 @@ export const AppPublish = ({ names, categories }) => {
<CustomSelect
displayEmpty
placeholder="Select Category"
placeholder={t('core:action.select_category', {
postProcess: 'capitalizeFirstChar',
})}
value={category}
onChange={(event) => setCategory(event?.target.value)}
>

View File

@ -15,6 +15,7 @@ import IconClearInput from '../../assets/svgs/ClearInput.svg';
import { Spacer } from '../../common/Spacer';
import { AppInfoSnippet } from './AppInfoSnippet';
import { Virtuoso } from 'react-virtuoso';
import { useTranslation } from 'react-i18next';
const StyledVirtuosoContainer = styled('div')({
position: 'relative',
@ -44,6 +45,7 @@ export const AppsCategoryDesktop = ({
const [searchValue, setSearchValue] = useState('');
const virtuosoRef = useRef(null);
const theme = useTheme();
const { t } = useTranslation(['auth', 'core', 'group']);
const categoryList = useMemo(() => {
if (category?.id === 'all') return availableQapps;
@ -139,7 +141,9 @@ export const AppsCategoryDesktop = ({
ml: 1,
paddingLeft: '12px',
}}
placeholder="Search for apps"
placeholder={t('core:action.search_apps', {
postProcess: 'capitalizeFirstChar',
})}
inputProps={{
'aria-label': 'Search for apps',
fontSize: '16px',

View File

@ -415,7 +415,9 @@ export const AppsPrivate = ({ myName }) => {
{t('core:name', { postProcess: 'capitalizeFirstChar' })}
</Label>
<Input
placeholder="name"
placeholder={t('core:name', {
postProcess: 'capitalizeFirstChar',
})}
value={privateAppValues?.name}
onChange={(e) =>
setPrivateAppValues((prev) => {

View File

@ -589,7 +589,9 @@ export const ChatDirect = ({
fontSize: '18px',
padding: '5px',
}}
placeholder="Name or address"
placeholder={t('auth:message.generic.name_address', {
postProcess: 'capitalizeFirstChar',
})}
value={directToValue}
onChange={(e) => setDirectToValue(e.target.value)}
/>

View File

@ -422,7 +422,9 @@ export const ChatOptions = ({
value={searchValue}
onChange={(e) => setSearchValue(e.target.value)}
sx={{ ml: 1, flex: 1 }}
placeholder="Search chat text"
placeholder={t('core:action.search_chat_text', {
postProcess: 'capitalizeFirstChar',
})}
inputProps={{
'aria-label': 'Search for apps',
fontSize: '16px',

View File

@ -187,7 +187,9 @@ export const BlockedUsersModal = () => {
}}
>
<TextField
placeholder="Name or address"
placeholder={t('auth:message.generic.name_address', {
postProcess: 'capitalizeFirstChar',
})}
value={value}
onChange={(e) => {
setValue(e.target.value);

View File

@ -476,7 +476,9 @@ export const NewThread = ({
onChange={(e) => {
setThreadTitle(e.target.value);
}}
placeholder="Thread Title"
placeholder={t('core:thread_title', {
postProcess: 'capitalizeFirstChar',
})}
disableUnderline
autoComplete="off"
autoCorrect="off"

View File

@ -92,7 +92,9 @@ export const InviteMember = ({ groupId, setInfoSnack, setOpenSnack, show }) => {
<Input
value={value}
placeholder="Name or address"
placeholder={t('auth:message.generic.name_address', {
postProcess: 'capitalizeFirstChar',
})}
onChange={(e) => setValue(e.target.value)}
/>

View File

@ -925,14 +925,18 @@ export const NotAuthenticated = ({
}}
>
<Input
placeholder="Url"
placeholder={t('core:url', {
postProcess: 'capitalizeAll',
})}
value={url}
onChange={(e) => {
setUrl(e.target.value);
}}
/>
<Input
placeholder="Api key"
placeholder={t('auth:apikey.key', {
postProcess: 'capitalizeFirstChar',
})}
value={customApikey}
onChange={(e) => {
setCustomApiKey(e.target.value);

View File

@ -235,7 +235,9 @@ export const RegisterName = ({
autoFocus
onChange={(e) => setRegisterNameValue(e.target.value)}
value={registerNameValue}
placeholder="Choose a name"
placeholder={t('core:action.choose_name', {
postProcess: 'capitalizeFirstChar',
})}
/>
{(!balance || (nameFee && balance && balance < nameFee)) && (
<>

View File

@ -69,6 +69,7 @@
"choose_block": "choose 'block txs' or 'all' to block chat messages",
"congrats_setup": "congrats, youre all set up!",
"decide_block": "decide what to block",
"name_address": "name or address",
"no_account": "no accounts saved",
"no_minimum_length": "there is no minimum length requirement",
"no_secret_key_published": "no secret key published yet",
@ -96,7 +97,7 @@
"note": "note",
"password": "password",
"password_confirmation": "confirm password",
"seed": "seed phrase",
"seed_phrase": "seed phrase",
"seed_your": "your seedphrase",
"tips": {
"additional_wallet": "use this option to connect additional Qortal wallets you've already made, in order to login with them afterwards. You will need access to your backup JSON file in order to do so.",

View File

@ -17,6 +17,8 @@
"choose": "choose",
"choose_file": "choose file",
"choose_image": "choose image",
"choose_logo": "choose a logo",
"choose_name": "choose a name",
"close": "close",
"close_chat": "close Direct Chat",
"continue": "continue",
@ -25,8 +27,6 @@
"create_apps": "create apps",
"create_file": "create file",
"create_thread": "create thread",
"choose_logo": "choose a logo",
"choose_name": "choose a name",
"decline": "decline",
"decrypt": "decrypt",
"disable_enter": "disable enter",
@ -67,6 +67,7 @@
"save_disk": "save to disk",
"search": "search",
"search_apps": "search for apps",
"search_chat_text": "search chat text",
"select_app_type": "select App Type",
"select_category": "select Category",
"select_name_app": "select Name/App",
@ -289,6 +290,7 @@
"name_app": "name/App",
"new_post_in": "new post in {{ title }}",
"none": "none",
"note": "note",
"option": "option",
"option_other": "options",
"page": {
@ -311,6 +313,7 @@
"receiver": "receiver",
"sender": "sender",
"server": "server",
"service_type": "service type",
"settings": "settings",
"sort": {
"by_member": "by member"
@ -323,6 +326,7 @@
},
"thread": "thread",
"thread_other": "threads",
"thread_title": "thread title",
"time": {
"day_one": "{{count}} day",
"day_other": "{{count}} days",
@ -335,6 +339,7 @@
"title": "title",
"to": "to",
"tutorial": "tutorial",
"url": "url",
"user_lookup": "user lookup",
"vote": "vote",
"vote_other": "{{ count }} votes",