Skip to content

Commit 9ea6170

Browse files
authored
Merge pull request #2 from kshetline/development
Localization, collapsible control panel.
2 parents e66db26 + 9d11eb6 commit 9ea6170

18 files changed

Lines changed: 2100 additions & 127 deletions

angular.json

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,22 @@
1616
"root": "",
1717
"sourceRoot": "src",
1818
"prefix": "app",
19+
"i18n": {
20+
"sourceLocale": "en-US",
21+
"locales": {
22+
"cs": {
23+
"translation": "src/locales/messages.cs.xlf"
24+
},
25+
"es": {
26+
"translation": "src/locales/messages.es.xlf"
27+
}
28+
}
29+
},
1930
"architect": {
2031
"build": {
2132
"builder": "@angular-devkit/build-angular:browser",
2233
"options": {
34+
"localize": true,
2335
"outputPath": "dist/prague-clock",
2436
"index": "src/index.html",
2537
"main": "src/main.ts",
@@ -68,6 +80,15 @@
6880
"extractLicenses": false,
6981
"sourceMap": true,
7082
"namedChunks": true
83+
},
84+
"cs": {
85+
"localize": ["cs"]
86+
},
87+
"es": {
88+
"localize": ["es"]
89+
},
90+
"en-US": {
91+
"localize": ["en-US"]
7192
}
7293
},
7394
"defaultConfiguration": "production"
@@ -80,6 +101,15 @@
80101
},
81102
"development": {
82103
"browserTarget": "prague-clock:build:development"
104+
},
105+
"cs": {
106+
"browserTarget": "prague-clock:build:cs"
107+
},
108+
"es": {
109+
"browserTarget": "prague-clock:build:es"
110+
},
111+
"en-US": {
112+
"browserTarget": "prague-clock:build:en-US"
83113
}
84114
},
85115
"defaultConfiguration": "development"

messages.xlf

Lines changed: 449 additions & 0 deletions
Large diffs are not rendered by default.

package-lock.json

Lines changed: 168 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
{
22
"name": "prague-clock",
3-
"version": "1.0.1",
3+
"version": "1.1.0",
44
"scripts": {
55
"ng": "ng",
6-
"start": "ng serve",
6+
"start": "ng serve --configuration=en-US",
7+
"start:cs": "ng serve --configuration=cs",
8+
"start:es": "ng serve --configuration=es",
79
"build": "ng build --base-href /orloj/",
810
"watch": "ng build --watch --configuration development",
911
"test": "ng test",
@@ -45,6 +47,7 @@
4547
"@angular-eslint/template-parser": "^13.1.0",
4648
"@angular/cli": "~13.2.5",
4749
"@angular/compiler-cli": "~13.2.0",
50+
"@angular/localize": "^13.2.7",
4851
"@types/jasmine": "~3.10.0",
4952
"@types/node": "^12.11.1",
5053
"@types/three": "^0.138.0",

src/app/app.component.html

Lines changed: 26 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,13 @@
1-
<div class="controls tbw-dark-mode" [class.short]="lastHeight <= 420 && lastHeight > 380" [class.extra-short]="lastHeight <= 380">
2-
<div class="place-name-group">
1+
<div class="controls tbw-dark-mode"
2+
[class.short]="lastHeight <= 420 && lastHeight > 380"
3+
[class.extra-short]="lastHeight <= 380"
4+
[class.collapsed]="collapsed">
5+
<p-menu #menu [popup]="true" [model]="menuItems" appendTo="body"></p-menu>
6+
<i class="pi pi-bars" (click)="menu.toggle($event)" [class.collapsed]="collapsed"></i>
7+
<i class="pi pi-chevron-down" (click)="collapsed = !collapsed" [class.collapsed]="collapsed"></i>
8+
<div class="place-name-group" [class.collapsed]="collapsed">
39
<span *ngIf="!canSaveName && placeName" class="place-name">{{placeName}}</span>
4-
<span *ngIf="!canSaveName && !placeName" class="no-name">No name provided</span>
10+
<span i18n *ngIf="!canSaveName && !placeName" class="no-name">No name provided</span>
511
<input *ngIf="canSaveName" id="name-input" class="name-input" [value]="inputName"
612
(input)="inputChanged($event)" (keydown.enter)="saveName()">
713
<span *ngIf="canSaveName" class="height-holder">&nbsp;</span>
@@ -10,16 +16,15 @@
1016
[class.icon-disabled]="inputLength === 0" (click)="saveName()"></i>
1117
<i *ngIf="canSaveName" class="pi pi-undo" (click)="cancelEdit()"></i>
1218
</div>
13-
<p-menu #menu [popup]="true" [model]="menuItems" appendTo="body"></p-menu>
14-
<i class="pi pi-bars" (click)="menu.toggle($event)"></i>
1519
<div class="time-row">
1620
<i class="pi pi-caret-left" (click)="skipToEvent(true)"></i>
1721
<tbw-time-editor
1822
[max]="MAX_YEAR + '-12-31'"
1923
[min]="MIN_YEAR + '-01-01'"
2024
wideSpinner
2125
(click)="checkIfTimeIsEditable()"
22-
pTooltip='Uncheck on "Track current time" to modify the time'
26+
i18n-pTooltip
27+
pTooltip='Uncheck "Track current time" to modify the time'
2328
tooltipPosition="bottom"
2429
[tooltipDisabled]="!trackTime"
2530
[options]="isoFormat ? ISO_OPTS : LOCAL_OPTS"
@@ -30,25 +35,28 @@
3035
<i class="pi pi-caret-right" (click)="skipToEvent()"></i>
3136
</div>
3237
<div class="button-row">
33-
<p-checkbox [(ngModel)]="isoFormat" [binary]="true" label="ISO time format"></p-checkbox>
34-
<p-checkbox [(ngModel)]="disableDst" [binary]="true" label="Disable DST on clock" (onChange)="updateTime(true)"></p-checkbox>
38+
<p-checkbox [(ngModel)]="isoFormat" [binary]="true"
39+
i18n-label label="ISO time format"></p-checkbox>
40+
<p-checkbox [(ngModel)]="disableDst" [binary]="true"
41+
i18n-label label="Disable DST on clock" (onChange)="updateTime(true)"></p-checkbox>
3542
</div>
3643
<tze-zone-selector [(ngModel)]="zone" [recents]="recentLocations" (clearItem)='clearItem($event)' (clearRecents)="clearRecents()"
3744
[autofocus]="false" [disabled]="canSaveName" (location)="changeLocation($event)"></tze-zone-selector>
3845
<div class="button-row time-row">
39-
<p-checkbox [(ngModel)]="trackTime" [binary]="true" label="Track current time"></p-checkbox><span>&nbsp;&nbsp;</span>
40-
<button type="button" pButton (click)="setNow()" [disabled]="trackTime">Now</button>
46+
<p-checkbox [(ngModel)]="trackTime" [binary]="true"
47+
i18n-label label="Track current time"></p-checkbox><span>&nbsp;&nbsp;</span>
48+
<button i18n type="button" pButton (click)="setNow()" [disabled]="trackTime">Now</button>
4149
</div>
4250
<div class="button-row">
43-
<tbw-angle-editor wideSpinner [(ngModel)]="latitude" [disableMobileKeyboard]="suppressOsKeyboard"
44-
[disabled]="canSaveName" [options]="{ angleStyle: DD, compass: true, decimalPrecision: 1 }"></tbw-angle-editor>
45-
<tbw-angle-editor wideSpinner [(ngModel)]="longitude" [disableMobileKeyboard]="suppressOsKeyboard"
46-
[disabled]="canSaveName" [options]="{ angleStyle: DDD, compass: true, decimalPrecision: 1 }"></tbw-angle-editor>
51+
<tbw-angle-editor wideSpinner [(ngModel)]="latitude" [disableMobileKeyboard]="suppressOsKeyboard" [disabled]="canSaveName"
52+
[options]="{ angleStyle: DD, compass: SOUTH_NORTH, decimalPrecision: 1, locale: specificLocale }"></tbw-angle-editor>
53+
<tbw-angle-editor wideSpinner [(ngModel)]="longitude" [disableMobileKeyboard]="suppressOsKeyboard" [disabled]="canSaveName"
54+
[options]="{ angleStyle: DDD, compass: WEST_EAST, decimalPrecision: 1, locale: specificLocale }"></tbw-angle-editor>
4755
</div>
4856
</div>
4957

5058
<div id="svg-wrapper">
51-
<svg viewBox="0 0 600 600" xml:space="preserve">
59+
<svg viewBox="0 0 600 600" xml:space="preserve" [class.controls-collapsed]="collapsed">
5260
<defs>
5361
<filter id="filterHand" x="0" y="0" width="200%" height="200%">
5462
<feOffset result="offOut" in="SourceAlpha" dx="8" dy="8"/>
@@ -344,7 +352,7 @@
344352
consistent across browsers, with Safari and Chrome on Android having particular problems. -->
345353
<div id="globe-host"></div>
346354

347-
<svg viewBox="0 0 600 600" xml:space="preserve" class="svg-overlay">
355+
<svg viewBox="0 0 600 600" xml:space="preserve" class="svg-overlay" [class.controls-collapsed]="collapsed">
348356
<g transform="translate(300, 300)" class="content">
349357
<g id="frontPart">
350358
<g [attr.filter]="svgFilteringOn ? 'url(#filterHand)' : null">
@@ -609,7 +617,7 @@
609617
</svg>
610618
</div>
611619

612-
<div id="graphics-credit">Original SVG clock graphics by Jan Tošovský</div>
620+
<div i18n id="graphics-credit">Original SVG clock graphics by Jan Tošovský</div>
613621

614622
<p-toast position="center"></p-toast>
615-
<p-confirmDialog header="Change time"></p-confirmDialog>
623+
<p-confirmDialog i18n-header header="Change time"></p-confirmDialog>

0 commit comments

Comments
 (0)