Add translation for boolean value in toggle columns for text cell (#364)

pull/369/head
Louis Delbosc 2 years ago committed by GitHub
parent 0b4371ee22
commit 4116949ea5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -9,6 +9,9 @@ import { cssIconBackground, icon } from 'app/client/ui2018/icons';
import { gristLink } from 'app/client/ui2018/links';
import { NewAbstractWidget, Options } from 'app/client/widgets/NewAbstractWidget';
import { Computed, dom, DomArg, DomContents, fromKo, Observable, styled } from 'grainjs';
import {makeT} from 'app/client/lib/localization';
const t = makeT('NTextBox');
/**
* TextBox - The most basic widget for displaying text information.
@ -62,7 +65,7 @@ export class NTextBox extends NewAbstractWidget {
return dom('div.field_clip',
dom.style('text-align', this.alignment),
dom.cls('text_wrapping', this.wrapping),
dom.domComputed((use) => use(row._isAddRow) ? null : makeLinks(use(this.valueFormatter).formatAny(use(value))))
dom.domComputed((use) => use(row._isAddRow) ? null : makeLinks(use(this.valueFormatter).formatAny(use(value), t)))
);
}
}

@ -79,19 +79,28 @@ export class BaseFormatter {
* Formats using this.format() if a value is of the right type for this formatter, or using
* AnyFormatter otherwise. This method the recommended API. There is no need to override it.
*/
public formatAny(value: any): string {
return this.isRightType(value) ? this.format(value) : formatUnknown(value);
public formatAny(value: any, translate?: (val: string) => string): string {
return this.isRightType(value) ? this.format(value, translate) : formatUnknown(value);
}
/**
* Formats a value that matches the type of this formatter. This should be overridden by derived
* classes to handle values in formatter-specific ways.
*/
protected format(value: any): string {
protected format(value: any, _translate?: (val: string) => string): string {
return String(value);
}
}
export class BoolFormatter extends BaseFormatter {
public format(value: boolean | 0 | 1, translate?: (val: string) => string): string {
if (typeof value === 'boolean' && translate) {
return translate(String(value));
}
return super.format(value, translate);
}
}
class AnyFormatter extends BaseFormatter {
public format(value: any): string {
return formatUnknown(value);
@ -265,7 +274,7 @@ class ReferenceListFormatter extends ReferenceFormatter {
const formatters: { [name: string]: typeof BaseFormatter } = {
Numeric: NumericFormatter,
Int: IntFormatter,
Bool: BaseFormatter,
Bool: BoolFormatter,
Date: DateFormatter,
DateTime: DateTimeFormatter,
Ref: ReferenceFormatter,

@ -354,6 +354,10 @@
"GiveFeedback": "Give feedback",
"NoNotifications": "No notifications"
},
"NTextBox": {
"false": "false",
"true": "true"
},
"OnBoardingPopups": {
"Finish": "Finish",
"Next": "Next"

@ -351,6 +351,10 @@
"GiveFeedback": "Donnez votre avis",
"NoNotifications": "Aucune notification"
},
"NTextBox": {
"false": "faux",
"true": "vrai"
},
"OnBoardingPopups": {
"Finish": "Terminer",
"Next": "Suivant"

Loading…
Cancel
Save