fix: misc

This commit is contained in:
Ibrahima G. Coulibaly
2025-07-13 11:25:05 +01:00
parent 035eb2edd1
commit 21c4f44d4e
121 changed files with 987 additions and 837 deletions

View File

@@ -47,18 +47,18 @@ export default function Base64({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.base64.optionsTitle'),
title: t('string:base64.optionsTitle'),
component: (
<Box>
<SimpleRadio
onClick={() => updateField('mode', 'encode')}
checked={values.mode === 'encode'}
title={t('string.base64.encode')}
title={t('string:base64.encode')}
/>
<SimpleRadio
onClick={() => updateField('mode', 'decode')}
checked={values.mode === 'decode'}
title={t('string.base64.decode')}
title={t('string:base64.decode')}
/>
</Box>
)
@@ -70,19 +70,19 @@ export default function Base64({ title }: ToolComponentProps) {
title={title}
inputComponent={
<ToolTextInput
title={t('string.base64.inputTitle')}
title={t('string:base64.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult title={t('string.base64.resultTitle')} value={result} />
<ToolTextResult title={t('string:base64.resultTitle')} value={result} />
}
initialValues={initialValues}
getGroups={getGroups}
toolInfo={{
title: t('string.base64.toolInfo.title'),
description: t('string.base64.toolInfo.description')
title: t('string:base64.toolInfo.title'),
description: t('string:base64.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['base64'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.base64.name',
description: 'string.base64.description',
shortDescription: 'string.base64.shortDescription'
name: 'string:base64.title',
description: 'string:base64.description',
shortDescription: 'string:base64.shortDescription'
}
});

View File

@@ -14,9 +14,9 @@ export const tool = defineTool('string', {
keywords: ['text', 'censor', 'words', 'characters'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.censor.name',
description: 'string.censor.description',
shortDescription: 'string.censor.shortDescription',
longDescription: 'string.censor.longDescription'
name: 'string:censor.title',
description: 'string:censor.description',
shortDescription: 'string:censor.shortDescription',
longDescription: 'string:censor.longDescription'
}
});

View File

@@ -14,8 +14,8 @@ export const tool = defineTool('string', {
keywords: ['create', 'palindrome'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.createPalindrome.name',
description: 'string.createPalindrome.description',
shortDescription: 'string.createPalindrome.shortDescription'
name: 'string:createPalindrome.title',
description: 'string:createPalindrome.description',
shortDescription: 'string:createPalindrome.shortDescription'
}
});

View File

@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['extract', 'substring'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.extractSubstring.name',
description: 'string.extractSubstring.description',
shortDescription: 'string.extractSubstring.shortDescription'
name: 'string:extractSubstring.title',
description: 'string:extractSubstring.description',
shortDescription: 'string:extractSubstring.shortDescription'
}
});

View File

@@ -121,18 +121,18 @@ export default function JoinText({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.join.textMergedOptions'),
title: t('string:join.textMergedOptions'),
component: (
<TextFieldWithDesc
placeholder={t('string.join.joinCharacterPlaceholder')}
placeholder={t('string:join.joinCharacterPlaceholder')}
value={values['joinCharacter']}
onOwnChange={(value) => updateField(mergeOptions.accessor, value)}
description={t('string.join.joinCharacterDescription')}
description={t('string:join.joinCharacterDescription')}
/>
)
},
{
title: t('string.join.blankLinesAndTrailingSpaces'),
title: t('string:join.blankLinesAndTrailingSpaces'),
component: blankTrailingOptions.map((option) => (
<CheckboxWithDesc
key={option.accessor}
@@ -153,18 +153,18 @@ export default function JoinText({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.join.inputTitle')}
title={t('string:join.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult title={t('string.join.resultTitle')} value={result} />
<ToolTextResult title={t('string:join.resultTitle')} value={result} />
}
getGroups={getGroups}
toolInfo={{
title: t('string.join.toolInfo.title'),
description: t('string.join.toolInfo.description')
title: t('string:join.toolInfo.title'),
description: t('string:join.toolInfo.description')
}}
exampleCards={exampleCards}
/>

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['join'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.join.name',
description: 'string.join.description',
shortDescription: 'string.join.shortDescription'
name: 'string:join.title',
description: 'string:join.description',
shortDescription: 'string:join.shortDescription'
}
});

View File

@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['palindrome'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.palindrome.name',
description: 'string.palindrome.description',
shortDescription: 'string.palindrome.shortDescription'
name: 'string:palindrome.title',
description: 'string:palindrome.description',
shortDescription: 'string:palindrome.shortDescription'
}
});

View File

@@ -95,33 +95,33 @@ export default function Quote({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.quote.quoteOptions'),
title: t('string:quote.quoteOptions'),
component: (
<Box>
<TextFieldWithDesc
value={values.leftQuote}
onOwnChange={(val) => updateField('leftQuote', val)}
description={t('string.quote.leftQuoteDescription')}
description={t('string:quote.leftQuoteDescription')}
/>
<TextFieldWithDesc
value={values.rightQuote}
onOwnChange={(val) => updateField('rightQuote', val)}
description={t('string.quote.rightQuoteDescription')}
description={t('string:quote.rightQuoteDescription')}
/>
<CheckboxWithDesc
checked={values.doubleQuotation}
onChange={(checked) => updateField('doubleQuotation', checked)}
title={t('string.quote.allowDoubleQuotation')}
title={t('string:quote.allowDoubleQuotation')}
/>
<CheckboxWithDesc
checked={values.emptyQuoting}
onChange={(checked) => updateField('emptyQuoting', checked)}
title={t('string.quote.quoteEmptyLines')}
title={t('string:quote.quoteEmptyLines')}
/>
<CheckboxWithDesc
checked={values.multiLine}
onChange={(checked) => updateField('multiLine', checked)}
title={t('string.quote.processAsMultiLine')}
title={t('string:quote.processAsMultiLine')}
/>
</Box>
)
@@ -133,19 +133,19 @@ export default function Quote({ title }: ToolComponentProps) {
title={title}
inputComponent={
<ToolTextInput
title={t('string.quote.inputTitle')}
title={t('string:quote.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult title={t('string.quote.resultTitle')} value={result} />
<ToolTextResult title={t('string:quote.resultTitle')} value={result} />
}
initialValues={initialValues}
getGroups={getGroups}
toolInfo={{
title: t('string.quote.toolInfo.title'),
description: t('string.quote.toolInfo.description')
title: t('string:quote.toolInfo.title'),
description: t('string:quote.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}

View File

@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['quote'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.quote.name',
description: 'string.quote.description',
shortDescription: 'string.quote.shortDescription'
name: 'string:quote.title',
description: 'string:quote.description',
shortDescription: 'string:quote.shortDescription'
}
});

View File

@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['randomize', 'case'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.randomizeCase.name',
description: 'string.randomizeCase.description',
shortDescription: 'string.randomizeCase.shortDescription'
name: 'string:randomizeCase.title',
description: 'string:randomizeCase.description',
shortDescription: 'string:randomizeCase.shortDescription'
}
});

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['remove', 'duplicate', 'lines'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.removeDuplicateLines.name',
description: 'string.removeDuplicateLines.description',
shortDescription: 'string.removeDuplicateLines.shortDescription'
name: 'string:removeDuplicateLines.title',
description: 'string:removeDuplicateLines.description',
shortDescription: 'string:removeDuplicateLines.shortDescription'
}
});

View File

@@ -62,12 +62,12 @@ export default function Replacer({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.repeat.textRepetitions'),
title: t('string:repeat.textRepetitions'),
component: (
<Box>
<TextFieldWithDesc
description={t('string.repeat.repeatAmountDescription')}
placeholder={t('string.repeat.numberPlaceholder')}
description={t('string:repeat.repeatAmountDescription')}
placeholder={t('string:repeat.numberPlaceholder')}
value={values.repeatAmount}
onOwnChange={(val) => updateField('repeatAmount', val)}
type={'number'}
@@ -76,12 +76,12 @@ export default function Replacer({ title }: ToolComponentProps) {
)
},
{
title: t('string.repeat.repetitionsDelimiter'),
title: t('string:repeat.repetitionsDelimiter'),
component: (
<Box>
<TextFieldWithDesc
description={t('string.repeat.delimiterDescription')}
placeholder={t('string.repeat.delimiterPlaceholder')}
description={t('string:repeat.delimiterDescription')}
placeholder={t('string:repeat.delimiterPlaceholder')}
value={values.delimiter}
onOwnChange={(val) => updateField('delimiter', val)}
type={'text'}
@@ -101,17 +101,17 @@ export default function Replacer({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.repeat.inputTitle')}
title={t('string:repeat.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult title={t('string.repeat.resultTitle')} value={result} />
<ToolTextResult title={t('string:repeat.resultTitle')} value={result} />
}
toolInfo={{
title: t('string.repeat.toolInfo.title'),
description: t('string.repeat.toolInfo.description')
title: t('string:repeat.toolInfo.title'),
description: t('string:repeat.toolInfo.description')
}}
exampleCards={exampleCards}
/>

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['text', 'repeat'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.repeat.name',
description: 'string.repeat.description',
shortDescription: 'string.repeat.shortDescription'
name: 'string:repeat.title',
description: 'string:repeat.description',
shortDescription: 'string:repeat.shortDescription'
}
});

View File

@@ -76,27 +76,27 @@ export default function Reverse({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.reverse.reversalOptions'),
title: t('string:reverse.reversalOptions'),
component: [
<CheckboxWithDesc
key="multiLine"
checked={values.multiLine}
title={t('string.reverse.processMultiLine')}
description={t('string.reverse.processMultiLineDescription')}
title={t('string:reverse.processMultiLine')}
description={t('string:reverse.processMultiLineDescription')}
onChange={(val) => updateField('multiLine', val)}
/>,
<CheckboxWithDesc
key="emptyItems"
checked={values.emptyItems}
title={t('string.reverse.skipEmptyLines')}
description={t('string.reverse.skipEmptyLinesDescription')}
title={t('string:reverse.skipEmptyLines')}
description={t('string:reverse.skipEmptyLinesDescription')}
onChange={(val) => updateField('emptyItems', val)}
/>,
<CheckboxWithDesc
key="trim"
checked={values.trim}
title={t('string.reverse.trimWhitespace')}
description={t('string.reverse.trimWhitespaceDescription')}
title={t('string:reverse.trimWhitespace')}
description={t('string:reverse.trimWhitespaceDescription')}
onChange={(val) => updateField('trim', val)}
/>
]
@@ -113,14 +113,14 @@ export default function Reverse({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.reverse.inputTitle')}
title={t('string:reverse.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult
title={t('string.reverse.resultTitle')}
title={t('string:reverse.resultTitle')}
value={result}
/>
}

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['reverse'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.reverse.name',
description: 'string.reverse.description',
shortDescription: 'string.reverse.shortDescription'
name: 'string:reverse.title',
description: 'string:reverse.description',
shortDescription: 'string:reverse.shortDescription'
}
});

View File

@@ -44,19 +44,19 @@ export default function Rot13({ title }: ToolComponentProps) {
title={title}
inputComponent={
<ToolTextInput
title={t('string.rot13.inputTitle')}
title={t('string:rot13.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult title={t('string.rot13.resultTitle')} value={result} />
<ToolTextResult title={t('string:rot13.resultTitle')} value={result} />
}
initialValues={initialValues}
getGroups={null}
toolInfo={{
title: t('string.rot13.toolInfo.title'),
description: t('string.rot13.toolInfo.description')
title: t('string:rot13.toolInfo.title'),
description: t('string:rot13.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}

View File

@@ -81,29 +81,29 @@ export default function Rotate({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.rotate.rotationOptions'),
title: t('string:rotate.rotationOptions'),
component: (
<Box>
<TextFieldWithDesc
value={values.step}
onOwnChange={(val) => updateField('step', val)}
description={t('string.rotate.stepDescription')}
description={t('string:rotate.stepDescription')}
type="number"
/>
<SimpleRadio
onClick={() => updateField('direction', 'right')}
checked={values.direction === 'right'}
title={t('string.rotate.rotateRight')}
title={t('string:rotate.rotateRight')}
/>
<SimpleRadio
onClick={() => updateField('direction', 'left')}
checked={values.direction === 'left'}
title={t('string.rotate.rotateLeft')}
title={t('string:rotate.rotateLeft')}
/>
<CheckboxWithDesc
checked={values.multiLine}
onChange={(checked) => updateField('multiLine', checked)}
title={t('string.rotate.processAsMultiLine')}
title={t('string:rotate.processAsMultiLine')}
/>
</Box>
)
@@ -115,19 +115,19 @@ export default function Rotate({ title }: ToolComponentProps) {
title={title}
inputComponent={
<ToolTextInput
title={t('string.rotate.inputTitle')}
title={t('string:rotate.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult title={t('string.rotate.resultTitle')} value={result} />
<ToolTextResult title={t('string:rotate.resultTitle')} value={result} />
}
initialValues={initialValues}
getGroups={getGroups}
toolInfo={{
title: t('string.rotate.toolInfo.title'),
description: t('string.rotate.toolInfo.description')
title: t('string:rotate.toolInfo.title'),
description: t('string:rotate.toolInfo.description')
}}
exampleCards={exampleCards}
input={input}

View File

@@ -173,12 +173,12 @@ export default function SplitText({ title }: ToolComponentProps) {
input={input}
inputComponent={<ToolTextInput value={input} onChange={setInput} />}
resultComponent={
<ToolTextResult title={t('string.split.resultTitle')} value={result} />
<ToolTextResult title={t('string:split.resultTitle')} value={result} />
}
initialValues={initialValues}
getGroups={({ values, updateField }) => [
{
title: t('string.split.splitSeparatorOptions'),
title: t('string:split.splitSeparatorOptions'),
component: splitOperators.map(({ title, description, type }) => (
<RadioWithTextField
key={type}
@@ -193,7 +193,7 @@ export default function SplitText({ title }: ToolComponentProps) {
))
},
{
title: t('string.split.outputSeparatorOptions'),
title: t('string:split.outputSeparatorOptions'),
component: outputOptions.map((option) => (
<TextFieldWithDesc
key={option.accessor}

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['split'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.split.name',
description: 'string.split.description',
shortDescription: 'string.split.shortDescription'
name: 'string:split.title',
description: 'string:split.description',
shortDescription: 'string:split.shortDescription'
}
});

View File

@@ -230,47 +230,47 @@ export default function Truncate({
updateField
}) => [
{
title: t('string.statistic.delimitersOptions'),
title: t('string:statistic.delimitersOptions'),
component: (
<Box>
<TextFieldWithDesc
value={values.sentenceDelimiters}
onOwnChange={(val) => updateField('sentenceDelimiters', val)}
placeholder={t('string.statistic.sentenceDelimitersPlaceholder')}
description={t('string.statistic.sentenceDelimitersDescription')}
placeholder={t('string:statistic.sentenceDelimitersPlaceholder')}
description={t('string:statistic.sentenceDelimitersDescription')}
/>
<TextFieldWithDesc
value={values.wordDelimiters}
onOwnChange={(val) => updateField('wordDelimiters', val)}
placeholder={t('string.statistic.wordDelimitersPlaceholder')}
description={t('string.statistic.wordDelimitersDescription')}
placeholder={t('string:statistic.wordDelimitersPlaceholder')}
description={t('string:statistic.wordDelimitersDescription')}
/>
</Box>
)
},
{
title: t('string.statistic.statisticsOptions'),
title: t('string:statistic.statisticsOptions'),
component: (
<Box>
<CheckboxWithDesc
checked={values.wordCount}
onChange={(value) => updateField('wordCount', value)}
title={t('string.statistic.wordFrequencyAnalysis')}
description={t('string.statistic.wordFrequencyAnalysisDescription')}
title={t('string:statistic.wordFrequencyAnalysis')}
description={t('string:statistic.wordFrequencyAnalysisDescription')}
/>
<CheckboxWithDesc
checked={values.characterCount}
onChange={(value) => updateField('characterCount', value)}
title={t('string.statistic.characterFrequencyAnalysis')}
title={t('string:statistic.characterFrequencyAnalysis')}
description={t(
'string.statistic.characterFrequencyAnalysisDescription'
'string:statistic.characterFrequencyAnalysisDescription'
)}
/>
<CheckboxWithDesc
checked={values.emptyLines}
onChange={(value) => updateField('emptyLines', value)}
title={t('string.statistic.includeEmptyLines')}
description={t('string.statistic.includeEmptyLinesDescription')}
title={t('string:statistic.includeEmptyLines')}
description={t('string:statistic.includeEmptyLinesDescription')}
/>
</Box>
)
@@ -287,19 +287,19 @@ export default function Truncate({
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.statistic.inputTitle')}
title={t('string:statistic.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult
title={t('string.statistic.resultTitle')}
title={t('string:statistic.resultTitle')}
value={result}
/>
}
toolInfo={{
title: t('string.statistic.toolInfo.title', { title }),
title: t('string:statistic.toolInfo.title', { title }),
description: longDescription
}}
exampleCards={exampleCards}

View File

@@ -13,9 +13,9 @@ export const tool = defineTool('string', {
keywords: ['text', 'statistics', 'count', 'lines', 'words', 'characters'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.statistic.name',
description: 'string.statistic.description',
shortDescription: 'string.statistic.shortDescription',
longDescription: 'string.statistic.longDescription'
name: 'string:statistic.title',
description: 'string:statistic.description',
shortDescription: 'string:statistic.shortDescription',
longDescription: 'string:statistic.longDescription'
}
});

View File

@@ -74,16 +74,16 @@ export default function Replacer({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.textReplacer.searchText'),
title: t('string:textReplacer.searchText'),
component: (
<Box>
<SimpleRadio
onClick={() => updateField('mode', 'text')}
checked={values.mode === 'text'}
title={t('string.textReplacer.findPatternInText')}
title={t('string:textReplacer.findPatternInText')}
/>
<TextFieldWithDesc
description={t('string.textReplacer.searchPatternDescription')}
description={t('string:textReplacer.searchPatternDescription')}
value={values.searchValue}
onOwnChange={(val) => updateField('searchValue', val)}
type={'text'}
@@ -91,10 +91,10 @@ export default function Replacer({ title }: ToolComponentProps) {
<SimpleRadio
onClick={() => updateField('mode', 'regexp')}
checked={values.mode === 'regexp'}
title={t('string.textReplacer.findPatternUsingRegexp')}
title={t('string:textReplacer.findPatternUsingRegexp')}
/>
<TextFieldWithDesc
description={t('string.textReplacer.regexpDescription')}
description={t('string:textReplacer.regexpDescription')}
value={values.searchRegexp}
onOwnChange={(val) => updateField('searchRegexp', val)}
type={'text'}
@@ -103,12 +103,12 @@ export default function Replacer({ title }: ToolComponentProps) {
)
},
{
title: t('string.textReplacer.replaceText'),
title: t('string:textReplacer.replaceText'),
component: (
<Box>
<TextFieldWithDesc
description={t('string.textReplacer.replacePatternDescription')}
placeholder={t('string.textReplacer.newTextPlaceholder')}
description={t('string:textReplacer.replacePatternDescription')}
placeholder={t('string:textReplacer.newTextPlaceholder')}
value={values.replaceValue}
onOwnChange={(val) => updateField('replaceValue', val)}
type={'text'}
@@ -128,20 +128,20 @@ export default function Replacer({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.textReplacer.inputTitle')}
title={t('string:textReplacer.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult
title={t('string.textReplacer.resultTitle')}
title={t('string:textReplacer.resultTitle')}
value={result}
/>
}
toolInfo={{
title: t('string.textReplacer.toolInfo.title'),
description: t('string.textReplacer.toolInfo.description')
title: t('string:textReplacer.toolInfo.title'),
description: t('string:textReplacer.toolInfo.description')
}}
exampleCards={exampleCards}
/>

View File

@@ -22,7 +22,7 @@ export default function ToMorse() {
return (
<ToolContent
title={t('string.toMorse.title')}
title={t('string:toMorse.title')}
initialValues={initialValues}
compute={computeOptions}
input={input}
@@ -30,26 +30,26 @@ export default function ToMorse() {
inputComponent={<ToolTextInput value={input} onChange={setInput} />}
resultComponent={
<ToolTextResult
title={t('string.toMorse.resultTitle')}
title={t('string:toMorse.resultTitle')}
value={result}
/>
}
getGroups={({ values, updateField }) => [
{
title: t('string.toMorse.shortSignal'),
title: t('string:toMorse.shortSignal'),
component: (
<TextFieldWithDesc
description={t('string.toMorse.dotSymbolDescription')}
description={t('string:toMorse.dotSymbolDescription')}
value={values.dotSymbol}
onOwnChange={(val) => updateField('dotSymbol', val)}
/>
)
},
{
title: t('string.toMorse.longSignal'),
title: t('string:toMorse.longSignal'),
component: (
<TextFieldWithDesc
description={t('string.toMorse.dashSymbolDescription')}
description={t('string:toMorse.dashSymbolDescription')}
value={values.dashSymbol}
onOwnChange={(val) => updateField('dashSymbol', val)}
/>

View File

@@ -12,8 +12,8 @@ export const tool = defineTool('string', {
keywords: ['to', 'morse'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.toMorse.name',
description: 'string.toMorse.description',
shortDescription: 'string.toMorse.shortDescription'
name: 'string:toMorse.title',
description: 'string:toMorse.description',
shortDescription: 'string:toMorse.shortDescription'
}
});

View File

@@ -81,31 +81,31 @@ export default function Truncate({ title }: ToolComponentProps) {
updateField
}) => [
{
title: t('string.truncate.truncationSide'),
title: t('string:truncate.truncationSide'),
component: (
<Box>
<SimpleRadio
onClick={() => updateField('truncationSide', 'right')}
checked={values.truncationSide === 'right'}
title={t('string.truncate.rightSideTruncation')}
description={t('string.truncate.rightSideDescription')}
title={t('string:truncate.rightSideTruncation')}
description={t('string:truncate.rightSideDescription')}
/>
<SimpleRadio
onClick={() => updateField('truncationSide', 'left')}
checked={values.truncationSide === 'left'}
title={t('string.truncate.leftSideTruncation')}
description={t('string.truncate.leftSideDescription')}
title={t('string:truncate.leftSideTruncation')}
description={t('string:truncate.leftSideDescription')}
/>
</Box>
)
},
{
title: t('string.truncate.lengthAndLines'),
title: t('string:truncate.lengthAndLines'),
component: (
<Box>
<TextFieldWithDesc
description={t('string.truncate.maxLengthDescription')}
placeholder={t('string.truncate.numberPlaceholder')}
description={t('string:truncate.maxLengthDescription')}
placeholder={t('string:truncate.numberPlaceholder')}
value={values.maxLength}
onOwnChange={(val) => updateField('maxLength', val)}
type={'number'}
@@ -113,25 +113,25 @@ export default function Truncate({ title }: ToolComponentProps) {
<CheckboxWithDesc
onChange={(val) => updateField('lineByLine', val)}
checked={values.lineByLine}
title={t('string.truncate.lineByLineTruncating')}
description={t('string.truncate.lineByLineDescription')}
title={t('string:truncate.lineByLineTruncating')}
description={t('string:truncate.lineByLineDescription')}
/>
</Box>
)
},
{
title: t('string.truncate.suffixAndAffix'),
title: t('string:truncate.suffixAndAffix'),
component: (
<Box>
<CheckboxWithDesc
onChange={(val) => updateField('addIndicator', val)}
checked={values.addIndicator}
title={t('string.truncate.addTruncationIndicator')}
title={t('string:truncate.addTruncationIndicator')}
description={''}
/>
<TextFieldWithDesc
description={t('string.truncate.indicatorDescription')}
placeholder={t('string.truncate.charactersPlaceholder')}
description={t('string:truncate.indicatorDescription')}
placeholder={t('string:truncate.charactersPlaceholder')}
value={values.indicator}
onOwnChange={(val) => updateField('indicator', val)}
type={'text'}
@@ -151,20 +151,20 @@ export default function Truncate({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.truncate.inputTitle')}
title={t('string:truncate.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult
title={t('string.truncate.resultTitle')}
title={t('string:truncate.resultTitle')}
value={result}
/>
}
toolInfo={{
title: t('string.truncate.toolInfo.title'),
description: t('string.truncate.toolInfo.description')
title: t('string:truncate.toolInfo.title'),
description: t('string:truncate.toolInfo.description')
}}
exampleCards={exampleCards}
/>

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['truncate'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.truncate.name',
description: 'string.truncate.description',
shortDescription: 'string.truncate.shortDescription'
name: 'string:truncate.title',
description: 'string:truncate.description',
shortDescription: 'string:truncate.shortDescription'
}
});

View File

@@ -57,14 +57,14 @@ export default function Uppercase({ title }: ToolComponentProps) {
setInput={setInput}
inputComponent={
<ToolTextInput
title={t('string.uppercase.inputTitle')}
title={t('string:uppercase.inputTitle')}
value={input}
onChange={setInput}
/>
}
resultComponent={
<ToolTextResult
title={t('string.uppercase.resultTitle')}
title={t('string:uppercase.resultTitle')}
value={result}
/>
}

View File

@@ -11,8 +11,8 @@ export const tool = defineTool('string', {
keywords: ['uppercase'],
component: lazy(() => import('./index')),
i18n: {
name: 'string.uppercase.name',
description: 'string.uppercase.description',
shortDescription: 'string.uppercase.shortDescription'
name: 'string:uppercase.title',
description: 'string:uppercase.description',
shortDescription: 'string:uppercase.shortDescription'
}
});