Skip to content

Commit c5427ba

Browse files
committed
localize datetime label #7
1 parent 4f9cd5e commit c5427ba

File tree

4 files changed

+10
-7
lines changed

4 files changed

+10
-7
lines changed

src/__tests__/datetime/DatetimeLabel.svelte.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const resetDateMock = resetDate as jest.MockedFunction<typeof resetDate>
1010

1111
describe('DatetimeLabel.svelte', () => {
1212
const entity = {};
13-
const hass = {};
13+
const hass = { localize: (key: string, params: any) => `${params["count"]} ${key}` };
1414

1515
test("when hass and entity are undefined", () => {
1616
expect(render(DatetimeLabel)).toBeDefined();
@@ -19,14 +19,14 @@ describe('DatetimeLabel.svelte', () => {
1919
test("when state is 1", () => {
2020
getStateMock.mockReturnValue(1);
2121
const { getByTestId } = render(DatetimeLabel, { entity, hass });
22-
expect(getByTestId("days")).toHaveTextContent("1 day");
22+
expect(getByTestId("days")).toHaveTextContent("1 ui.duration.day");
2323
});
2424

2525
[0, 2, 3].forEach((state) => {
2626
test("when state is not 1", () => {
2727
getStateMock.mockReturnValue(state);
2828
const { getByTestId } = render(DatetimeLabel, { entity, hass });
29-
expect(getByTestId("days")).toHaveTextContent(`${state} days`);
29+
expect(getByTestId("days")).toHaveTextContent(`${state} ui.duration.day`);
3030
});
3131
});
3232

src/__tests__/hass.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,8 @@
11
import { setDatetimeServiceFactory } from "../hass";
2+
import type { IHass } from "../types";
23

34
describe("hass", () => {
4-
const hass = { states: {} };
5+
const hass = { localize: (key: string) => key, states: {} };
56
const entity_id = "entity_id";
67
const date = new Date().toISOString().split("T")[0];
78

src/datetime/DatetimeLabel.svelte

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@
88
export let entity: IEntity = undefined;
99
export let hass: IHass = undefined;
1010
11-
$: state = getState(hass, entity);
11+
$: label = hass?.localize("ui.duration.day", {
12+
count: getState(hass, entity),
13+
});
1214
</script>
1315

1416
<div
@@ -17,8 +19,7 @@
1719
use:hold
1820
on:hold={($event) => resetDate($event, hass, entity)}
1921
>
20-
{state}
21-
{"day" + (state !== 1 ? "s" : "")}
22+
{label}
2223
</div>
2324

2425
<style>

src/types.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ export interface IEntity {
1919
}
2020

2121
export interface IHass {
22+
localize(message: string, params: any): string;
2223
states: { [key: string]: IState; };
2324
}
2425

0 commit comments

Comments
 (0)