Skip to content

Commit de314cf

Browse files
committed
dev
1 parent 943ba74 commit de314cf

File tree

8 files changed

+73
-55
lines changed

8 files changed

+73
-55
lines changed

.gitattributes

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
# Denote all files that are truly binary and should not be modified
55
js/* binary
66
screenshots/* binary
7+
locales/* binary
8+
translationfiles/* binary
79
*.png binary
810
*.hif binary
911

Makefile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ register:
6969
docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:unregister ui_example --silent --force || true
7070
docker exec master-nextcloud-1 rm -rf /tmp/ui_example_l10n && docker cp l10n master-nextcloud-1:/tmp/ui_example_l10n
7171
docker exec master-nextcloud-1 sudo -u www-data php occ app_api:app:register ui_example manual_install --json-info \
72-
"{\"id\":\"ui_example\",\"name\":\"UI Example\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"port\":9035,\"scopes\":[],\"system_app\":0, \"translations_folder\":\"\/tmp\/ui_example_l10n\"}" \
72+
"{\"id\":\"ui_example\",\"name\":\"UI Example\",\"daemon_config_name\":\"manual_install\",\"version\":\"1.0.0\",\"secret\":\"12345\",\"port\":9035,\"scopes\":[\"NOTIFICATIONS\"],\"system_app\":0, \"translations_folder\":\"\/tmp\/ui_example_l10n\"}" \
7373
--force-scopes --wait-finish
7474

7575
.PHONY: translation_templates

lib/main.py

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
from contextlib import asynccontextmanager
66
from typing import Annotated
77

8-
from fastapi import FastAPI, responses, Header, Request
8+
from fastapi import FastAPI, responses, Header, Request, Depends
99
from starlette.middleware.base import BaseHTTPMiddleware
1010
from pydantic import BaseModel
1111

@@ -17,7 +17,8 @@
1717
SettingsField,
1818
SettingsFieldType,
1919
SettingsForm,
20-
UiActionFileInfo
20+
UiActionFileInfo,
21+
nc_app
2122
)
2223
from contextvars import ContextVar
2324

@@ -32,7 +33,7 @@ def _(text):
3233
return current_translator.get().gettext(text)
3334

3435

35-
print(_("UI example")) # this does not work
36+
print(_("UI example"))
3637

3738

3839
class LocalizationMiddleware(BaseHTTPMiddleware):
@@ -222,13 +223,18 @@ async def verify_initial_value(
222223
content={"initial_value": str(random.randint(0, 100))}, status_code=200
223224
)
224225

226+
225227
@APP.post("/test_menu")
226228
async def test_menu_handler(
227229
file: UiActionFileInfo,
230+
nc: Annotated[NextcloudApp, Depends(nc_app)],
228231
accept_language: Annotated[str | None, Header()] = None
229232
):
230233
print(f'File: {file}')
231234
print(f'Accept-Language: {accept_language}')
235+
print(_("Test menu"))
236+
# Note: Only singular string translations are supported
237+
nc.notifications.create(_('Test notification subject'), _("Test notification message"))
232238
return responses.Response()
233239

234240

0 Bytes
Binary file not shown.

locale/uk/LC_MESSAGES/ui_example.po

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgstr ""
88
"Project-Id-Version: Nextcloud 3.14159\n"
99
"Report-Msgid-Bugs-To: translations\\@example.com\n"
1010
"POT-Creation-Date: 2024-02-20 15:37+0200\n"
11-
"PO-Revision-Date: 2024-02-20 17:02+0200\n"
11+
"PO-Revision-Date: 2024-02-20 18:37+0200\n"
1212
"Last-Translator: \n"
1313
"Language-Team: \n"
1414
"Language: uk_UA\n"

translationfiles/templates/ui_example.pot

Lines changed: 59 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgid ""
88
msgstr ""
99
"Project-Id-Version: Nextcloud 3.14159\n"
1010
"Report-Msgid-Bugs-To: translations\\@example.com\n"
11-
"POT-Creation-Date: 2024-02-20 15:37+0200\n"
11+
"POT-Creation-Date: 2024-02-20 18:10+0200\n"
1212
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
1313
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
1414
"Language-Team: LANGUAGE <[email protected]>\n"
@@ -17,177 +17,187 @@ msgstr ""
1717
"Content-Type: text/plain; charset=CHARSET\n"
1818
"Content-Transfer-Encoding: 8bit\n"
1919

20-
#: /home/andrey/coding/ui_example/lib/main.py:41
20+
#: /home/andrey/coding/ui_example/lib/main.py:55
2121
msgid "UI example"
2222
msgstr ""
2323

24-
#: /home/andrey/coding/ui_example/lib/main.py:52
24+
#: /home/andrey/coding/ui_example/lib/main.py:67
2525
msgid "Example of declarative settings"
2626
msgstr ""
2727

28-
#: /home/andrey/coding/ui_example/lib/main.py:53
28+
#: /home/andrey/coding/ui_example/lib/main.py:68
2929
msgid "These fields are rendered dynamically from declarative schema"
3030
msgstr ""
3131

32-
#: /home/andrey/coding/ui_example/lib/main.py:58
33-
#: /home/andrey/coding/ui_example/lib/main.py:129
34-
#: /home/andrey/coding/ui_example/lib/main.py:132
35-
#: /home/andrey/coding/ui_example/lib/main.py:138
36-
#: /home/andrey/coding/ui_example/lib/main.py:141
32+
#: /home/andrey/coding/ui_example/lib/main.py:73
33+
#: /home/andrey/coding/ui_example/lib/main.py:144
34+
#: /home/andrey/coding/ui_example/lib/main.py:147
35+
#: /home/andrey/coding/ui_example/lib/main.py:153
36+
#: /home/andrey/coding/ui_example/lib/main.py:156
3737
msgid "Select some option setting"
3838
msgstr ""
3939

40-
#: /home/andrey/coding/ui_example/lib/main.py:61
40+
#: /home/andrey/coding/ui_example/lib/main.py:76
4141
msgid "Select some multiple options"
4242
msgstr ""
4343

44-
#: /home/andrey/coding/ui_example/lib/main.py:66
45-
#: /home/andrey/coding/ui_example/lib/main.py:70
44+
#: /home/andrey/coding/ui_example/lib/main.py:81
45+
#: /home/andrey/coding/ui_example/lib/main.py:85
4646
msgid "Choose init status check background job interval"
4747
msgstr ""
4848

49-
#: /home/andrey/coding/ui_example/lib/main.py:67
49+
#: /home/andrey/coding/ui_example/lib/main.py:82
5050
msgid "How often ExApp should check for initialization status"
5151
msgstr ""
5252

53-
#: /home/andrey/coding/ui_example/lib/main.py:72
53+
#: /home/andrey/coding/ui_example/lib/main.py:87
5454
msgid "Each 40 minutes"
5555
msgstr ""
5656

57-
#: /home/andrey/coding/ui_example/lib/main.py:73
57+
#: /home/andrey/coding/ui_example/lib/main.py:88
5858
msgid "Each 60 minutes"
5959
msgstr ""
6060

61-
#: /home/andrey/coding/ui_example/lib/main.py:74
61+
#: /home/andrey/coding/ui_example/lib/main.py:89
6262
msgid "Each 120 minutes"
6363
msgstr ""
6464

65-
#: /home/andrey/coding/ui_example/lib/main.py:75
65+
#: /home/andrey/coding/ui_example/lib/main.py:90
6666
msgid "Each day"
6767
msgstr ""
6868

69-
#: /home/andrey/coding/ui_example/lib/main.py:80
69+
#: /home/andrey/coding/ui_example/lib/main.py:95
7070
msgid "Default text field"
7171
msgstr ""
7272

73-
#: /home/andrey/coding/ui_example/lib/main.py:81
73+
#: /home/andrey/coding/ui_example/lib/main.py:96
7474
msgid "Set some simple text setting"
7575
msgstr ""
7676

77-
#: /home/andrey/coding/ui_example/lib/main.py:84
77+
#: /home/andrey/coding/ui_example/lib/main.py:99
7878
msgid "Enter text setting"
7979
msgstr ""
8080

81-
#: /home/andrey/coding/ui_example/lib/main.py:88
81+
#: /home/andrey/coding/ui_example/lib/main.py:103
8282
msgid "Email field"
8383
msgstr ""
8484

85-
#: /home/andrey/coding/ui_example/lib/main.py:89
85+
#: /home/andrey/coding/ui_example/lib/main.py:104
8686
msgid "Set email config"
8787
msgstr ""
8888

89-
#: /home/andrey/coding/ui_example/lib/main.py:92
89+
#: /home/andrey/coding/ui_example/lib/main.py:107
9090
msgid "Enter email"
9191
msgstr ""
9292

93-
#: /home/andrey/coding/ui_example/lib/main.py:96
93+
#: /home/andrey/coding/ui_example/lib/main.py:111
9494
msgid "Tel field"
9595
msgstr ""
9696

97-
#: /home/andrey/coding/ui_example/lib/main.py:97
97+
#: /home/andrey/coding/ui_example/lib/main.py:112
9898
msgid "Set tel config"
9999
msgstr ""
100100

101-
#: /home/andrey/coding/ui_example/lib/main.py:100
101+
#: /home/andrey/coding/ui_example/lib/main.py:115
102102
msgid "Enter your tel"
103103
msgstr ""
104104

105-
#: /home/andrey/coding/ui_example/lib/main.py:104
105+
#: /home/andrey/coding/ui_example/lib/main.py:119
106106
msgid "Url (website) field"
107107
msgstr ""
108108

109-
#: /home/andrey/coding/ui_example/lib/main.py:105
109+
#: /home/andrey/coding/ui_example/lib/main.py:120
110110
msgid "Set url config"
111111
msgstr ""
112112

113-
#: /home/andrey/coding/ui_example/lib/main.py:108
113+
#: /home/andrey/coding/ui_example/lib/main.py:123
114114
msgid "Enter url"
115115
msgstr ""
116116

117-
#: /home/andrey/coding/ui_example/lib/main.py:112
117+
#: /home/andrey/coding/ui_example/lib/main.py:127
118118
msgid "Number field"
119119
msgstr ""
120120

121-
#: /home/andrey/coding/ui_example/lib/main.py:113
121+
#: /home/andrey/coding/ui_example/lib/main.py:128
122122
msgid "Set number config"
123123
msgstr ""
124124

125-
#: /home/andrey/coding/ui_example/lib/main.py:116
125+
#: /home/andrey/coding/ui_example/lib/main.py:131
126126
msgid "Enter number value"
127127
msgstr ""
128128

129-
#: /home/andrey/coding/ui_example/lib/main.py:120
129+
#: /home/andrey/coding/ui_example/lib/main.py:135
130130
msgid "Password"
131131
msgstr ""
132132

133-
#: /home/andrey/coding/ui_example/lib/main.py:121
133+
#: /home/andrey/coding/ui_example/lib/main.py:136
134134
msgid "Set some secure value setting"
135135
msgstr ""
136136

137-
#: /home/andrey/coding/ui_example/lib/main.py:124
137+
#: /home/andrey/coding/ui_example/lib/main.py:139
138138
msgid "Set secure value"
139139
msgstr ""
140140

141-
#: /home/andrey/coding/ui_example/lib/main.py:128
142-
#: /home/andrey/coding/ui_example/lib/main.py:137
141+
#: /home/andrey/coding/ui_example/lib/main.py:143
142+
#: /home/andrey/coding/ui_example/lib/main.py:152
143143
msgid "Selection"
144144
msgstr ""
145145

146-
#: /home/andrey/coding/ui_example/lib/main.py:146
146+
#: /home/andrey/coding/ui_example/lib/main.py:161
147147
msgid "Toggle something"
148148
msgstr ""
149149

150-
#: /home/andrey/coding/ui_example/lib/main.py:147
151-
#: /home/andrey/coding/ui_example/lib/main.py:155
150+
#: /home/andrey/coding/ui_example/lib/main.py:162
151+
#: /home/andrey/coding/ui_example/lib/main.py:170
152152
msgid "Select checkbox option setting"
153153
msgstr ""
154154

155-
#: /home/andrey/coding/ui_example/lib/main.py:150
155+
#: /home/andrey/coding/ui_example/lib/main.py:165
156156
msgid "Verify something if enabled"
157157
msgstr ""
158158

159-
#: /home/andrey/coding/ui_example/lib/main.py:154
159+
#: /home/andrey/coding/ui_example/lib/main.py:169
160160
msgid "Multiple checkbox toggles, describing one setting"
161161
msgstr ""
162162

163-
#: /home/andrey/coding/ui_example/lib/main.py:162
163+
#: /home/andrey/coding/ui_example/lib/main.py:177
164164
msgid "Radio toggles, describing one setting like single select"
165165
msgstr ""
166166

167-
#: /home/andrey/coding/ui_example/lib/main.py:163
167+
#: /home/andrey/coding/ui_example/lib/main.py:178
168168
msgid "Select radio option setting"
169169
msgstr ""
170170

171-
#: /home/andrey/coding/ui_example/lib/main.py:165
171+
#: /home/andrey/coding/ui_example/lib/main.py:180
172172
msgid "Select single toggle"
173173
msgstr ""
174174

175-
#: /home/andrey/coding/ui_example/lib/main.py:167
175+
#: /home/andrey/coding/ui_example/lib/main.py:182
176176
msgid "First radio"
177177
msgstr ""
178178

179-
#: /home/andrey/coding/ui_example/lib/main.py:167
179+
#: /home/andrey/coding/ui_example/lib/main.py:182
180180
msgid "Second radio"
181181
msgstr ""
182182

183-
#: /home/andrey/coding/ui_example/lib/main.py:167
183+
#: /home/andrey/coding/ui_example/lib/main.py:182
184184
msgid "Third radio"
185185
msgstr ""
186186

187-
#: /home/andrey/coding/ui_example/lib/main.py:184
187+
#: /home/andrey/coding/ui_example/lib/main.py:191
188+
#: /home/andrey/coding/ui_example/lib/main.py:201
189+
#: /home/andrey/coding/ui_example/lib/main.py:236
188190
msgid "Test menu"
189191
msgstr ""
190192

193+
#: /home/andrey/coding/ui_example/lib/main.py:238
194+
msgid "Test notification subject"
195+
msgstr ""
196+
197+
#: /home/andrey/coding/ui_example/lib/main.py:238
198+
msgid "Test notification message"
199+
msgstr ""
200+
191201
#: /home/andrey/coding/ui_example/specialAppInfoFakeDummyForL10nScript.php:2
192202
msgid "UI Example"
193203
msgstr ""

translationfiles/uk/ui_example.mo

0 Bytes
Binary file not shown.

translationfiles/uk/ui_example.po

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ msgstr ""
88
"Project-Id-Version: Nextcloud 3.14159\n"
99
"Report-Msgid-Bugs-To: translations\\@example.com\n"
1010
"POT-Creation-Date: 2024-02-20 15:37+0200\n"
11-
"PO-Revision-Date: 2024-02-20 17:02+0200\n"
11+
"PO-Revision-Date: 2024-02-20 18:37+0200\n"
1212
"Last-Translator: \n"
1313
"Language-Team: \n"
1414
"Language: uk_UA\n"

0 commit comments

Comments
 (0)