nodebb-theme-persona 15.0.11 → 15.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/package.json +2 -2
  2. package/templates/account/blocks.tpl +8 -8
  3. package/templates/account/categories.tpl +5 -5
  4. package/templates/account/consent.tpl +21 -21
  5. package/templates/account/edit/password.tpl +7 -7
  6. package/templates/account/edit/username.tpl +5 -5
  7. package/templates/account/edit.tpl +21 -21
  8. package/templates/account/followers.tpl +2 -2
  9. package/templates/account/following.tpl +2 -2
  10. package/templates/account/groups.tpl +2 -2
  11. package/templates/account/info.tpl +35 -35
  12. package/templates/account/posts.tpl +7 -7
  13. package/templates/account/profile.tpl +20 -37
  14. package/templates/account/sessions.tpl +1 -1
  15. package/templates/account/settings.tpl +55 -55
  16. package/templates/account/theme.tpl +8 -8
  17. package/templates/account/topics.tpl +6 -6
  18. package/templates/account/uploads.tpl +4 -4
  19. package/templates/categories.tpl +1 -1
  20. package/templates/category.tpl +6 -6
  21. package/templates/modules/usercard.tpl +4 -5
  22. package/templates/notifications.tpl +2 -2
  23. package/templates/partials/account/header.tpl +4 -4
  24. package/templates/partials/account/menu.tpl +27 -27
  25. package/templates/partials/account/session-list.tpl +3 -3
  26. package/templates/partials/buttons/newTopic.tpl +1 -1
  27. package/templates/partials/categories/item.tpl +4 -4
  28. package/templates/partials/categories/lastpost.tpl +4 -4
  29. package/templates/partials/category/subcategory.tpl +2 -2
  30. package/templates/partials/chats-menu.tpl +2 -2
  31. package/templates/partials/cookie-consent.tpl +1 -1
  32. package/templates/partials/header/chats.tpl +3 -3
  33. package/templates/partials/header/notifications.tpl +5 -5
  34. package/templates/partials/header/search.tpl +4 -4
  35. package/templates/partials/header/user-menu.tpl +18 -18
  36. package/templates/partials/menu.tpl +8 -8
  37. package/templates/partials/notifications_list.tpl +3 -3
  38. package/templates/partials/paginator.tpl +9 -9
  39. package/templates/partials/post_bar.tpl +2 -2
  40. package/templates/partials/posts_list_item.tpl +2 -2
  41. package/templates/partials/quick-category-search-results.tpl +4 -4
  42. package/templates/partials/quick-search-results.tpl +2 -2
  43. package/templates/partials/search/results.tpl +2 -2
  44. package/templates/partials/topic/crosspost.tpl +1 -1
  45. package/templates/partials/topic/event.tpl +31 -5
  46. package/templates/partials/topic/navigation-post.tpl +1 -1
  47. package/templates/partials/topic/navigator.tpl +4 -4
  48. package/templates/partials/topic/post-editor.tpl +1 -1
  49. package/templates/partials/topic/post.tpl +11 -11
  50. package/templates/partials/topic/quickreply.tpl +6 -4
  51. package/templates/partials/topic/reply-button.tpl +5 -5
  52. package/templates/partials/topic/selection-tooltip.tpl +1 -1
  53. package/templates/partials/topic/sort.tpl +5 -5
  54. package/templates/partials/topic/stats.tpl +11 -11
  55. package/templates/partials/topic/tools.tpl +1 -1
  56. package/templates/partials/topic/watch.tpl +9 -9
  57. package/templates/partials/topics_list.tpl +14 -14
  58. package/templates/partials/users_list.tpl +1 -1
  59. package/templates/partials/users_list_menu.tpl +6 -6
  60. package/templates/popular.tpl +2 -2
  61. package/templates/recent.tpl +3 -3
  62. package/templates/tag.tpl +3 -3
  63. package/templates/tags.tpl +2 -2
  64. package/templates/top.tpl +2 -2
  65. package/templates/topic.tpl +4 -4
  66. package/templates/unread.tpl +3 -3
  67. package/templates/users.tpl +2 -2
  68. package/templates/world.tpl +18 -18
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "nodebb-theme-persona",
3
- "version": "15.0.11",
3
+ "version": "15.1.1",
4
4
  "nbbpm": {
5
- "compatibility": "^4.14.0"
5
+ "compatibility": "^4.15.0"
6
6
  },
7
7
  "description": "Persona theme for NodeBB",
8
8
  "main": "library.js",
@@ -1,16 +1,16 @@
1
1
  <!-- IMPORT partials/account/header.tpl -->
2
- <h1 class="fs-4">[[pages:account/blocks, {username}]]</h1>
2
+ <h1 class="fs-4">{{tx("pages:account/blocks", txEscape(username))}}</h1>
3
3
  <div class="row justify-content-end mb-2">
4
4
  <div class="col-3">
5
5
  <div class="dropdown">
6
- <input class="form-control" type="text" id="user-search" placeholder="[[users:enter-username]]" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false"/>
6
+ <input class="form-control" type="text" id="user-search" placeholder="{{tx("users:enter-username")}}" data-bs-toggle="dropdown" autocomplete="off" aria-haspopup="true" aria-expanded="false"/>
7
7
 
8
8
  <ul component="blocks/search/list" class="dropdown-menu p-1 block-edit list-unstyled" role="menu">
9
9
  <li component="blocks/start-typing">
10
- <a href="#" class="dropdown-item rounded-1" role="menuitem">[[admin/menu:search.start-typing]]</a>
10
+ <a href="#" class="dropdown-item rounded-1" role="menuitem">{{tx("admin/menu:search.start-typing")}}</a>
11
11
  </li>
12
12
  <li component="blocks/no-users" class="hidden">
13
- <a href="#" class="dropdown-item rounded-1" role="menuitem">[[users:no-users-found]]</a>
13
+ <a href="#" class="dropdown-item rounded-1" role="menuitem">{{tx("users:no-users-found")}}</a>
14
14
  </li>
15
15
  {{{ each edit }}}
16
16
  <li component="blocks/search/match">
@@ -19,8 +19,8 @@
19
19
  <a href="{config.relative_path}/uid/{../uid}">{{buildAvatar(edit, "24px", true)}} {../username}</a>
20
20
  </div>
21
21
 
22
- <button class="btn btn-sm btn-outline-danger text-nowrap {{{ if ./isBlocked }}}hidden{{{ end }}}" data-uid="{./uid}" data-action="block">[[user:block-user]]</button>
23
- <button class="btn btn-sm btn-outline-primary text-nowrap {{{ if !./isBlocked }}}hidden{{{ end }}}" data-uid="{./uid}" data-action="unblock">[[user:unblock-user]]</button>
22
+ <button class="btn btn-sm btn-outline-danger text-nowrap {{{ if ./isBlocked }}}hidden{{{ end }}}" data-uid="{./uid}" data-action="block">{{tx("user:block-user")}}</button>
23
+ <button class="btn btn-sm btn-outline-primary text-nowrap {{{ if !./isBlocked }}}hidden{{{ end }}}" data-uid="{./uid}" data-action="unblock">{{tx("user:unblock-user")}}</button>
24
24
  </div>
25
25
  </li>
26
26
  {{{ end }}}
@@ -30,12 +30,12 @@
30
30
  </div>
31
31
 
32
32
  <div class="users row">
33
- <div class="alert alert-warning text-center {{{ if users.length }}}hidden{{{ end }}}">[[user:has-no-blocks]]</div>
33
+ <div class="alert alert-warning text-center {{{ if users.length }}}hidden{{{ end }}}">{{tx("user:has-no-blocks")}}</div>
34
34
  <div id="users-container" class="users-container list-unstyled d-flex flex-wrap gap-2">
35
35
  {{{ each users }}}
36
36
  <div class="d-flex flex-column gap-1">
37
37
  <!-- IMPORT partials/users/item.tpl -->
38
- <button class="btn btn-sm btn-outline-primary text-nowrap mx-auto" data-uid="{./uid}" data-action="unblock">[[user:unblock-user]]</button>
38
+ <button class="btn btn-sm btn-outline-primary text-nowrap mx-auto" data-uid="{./uid}" data-action="unblock">{{tx("user:unblock-user")}}</button>
39
39
  </div>
40
40
  {{{ end }}}
41
41
 
@@ -6,14 +6,14 @@
6
6
  <div class="mb-2">
7
7
  <div class="dropdown bottom-sheet" component="category/watch/all">
8
8
  <button class="btn btn-outline-secondary dropdown-toggle" data-bs-toggle="dropdown" type="button" aria-haspopup="true" aria-expanded="false">
9
- <span>[[user:change-all]]</span>
9
+ <span>{{tx("user:change-all")}}</span>
10
10
  <span class="caret"></span>
11
11
  </button>
12
12
  <ul class="dropdown-menu p-1" role="menu">
13
- <li><a class="dropdown-item rounded-1" href="#" component="category/watching" data-state="watching" role="menuitem"><i class="fa fa-fw fa-bell-o"></i> [[category:watching]]<p class="help-text"><small>[[category:watching.description]]</small></p></a></li>
14
- <li><a class="dropdown-item rounded-1" href="#" component="category/tracking" data-state="tracking" role="menuitem"><i class="fa fa-fw fa-inbox"></i> [[category:tracking]]<p class="help-text"><small>[[category:tracking.description]]</small></p></a></li>
15
- <li><a class="dropdown-item rounded-1" href="#" component="category/notwatching" data-state="notwatching" role="menuitem"><i class="fa fa-fw fa-clock-o"></i> [[category:not-watching]]<p class="help-text"><small>[[category:not-watching.description]]</small></p></a></li>
16
- <li><a class="dropdown-item rounded-1" href="#" component="category/ignoring" data-state="ignoring" role="menuitem"><i class="fa fa-fw fa-eye-slash"></i> [[category:ignoring]]<p class="help-text"><small>[[category:ignoring.description]]</small></p></a></li>
13
+ <li><a class="dropdown-item rounded-1" href="#" component="category/watching" data-state="watching" role="menuitem"><i class="fa fa-fw fa-bell-o"></i> {{tx("category:watching")}}<p class="help-text"><small>{{tx("category:watching.description")}}</small></p></a></li>
14
+ <li><a class="dropdown-item rounded-1" href="#" component="category/tracking" data-state="tracking" role="menuitem"><i class="fa fa-fw fa-inbox"></i> {{tx("category:tracking")}}<p class="help-text"><small>{{tx("category:tracking.description")}}</small></p></a></li>
15
+ <li><a class="dropdown-item rounded-1" href="#" component="category/notwatching" data-state="notwatching" role="menuitem"><i class="fa fa-fw fa-clock-o"></i> {{tx("category:not-watching")}}<p class="help-text"><small>{{tx("category:not-watching.description")}}</small></p></a></li>
16
+ <li><a class="dropdown-item rounded-1" href="#" component="category/ignoring" data-state="ignoring" role="menuitem"><i class="fa fa-fw fa-eye-slash"></i> {{tx("category:ignoring")}}<p class="help-text"><small>{{tx("category:ignoring.description")}}</small></p></a></li>
17
17
  </ul>
18
18
  </div>
19
19
  </div>
@@ -1,7 +1,7 @@
1
1
  <!-- IMPORT partials/account/header.tpl -->
2
- <h3>[[user:consent.title]]</h3>
3
- <p class="lead">[[user:consent.lead]]</p>
4
- <p>[[user:consent.intro]]</p>
2
+ <h3>{{tx("user:consent.title")}}</h3>
3
+ <p class="lead">{{tx("user:consent.lead")}}</p>
4
+ <p>{{tx("user:consent.intro")}}</p>
5
5
 
6
6
  <hr />
7
7
 
@@ -9,31 +9,31 @@
9
9
  <div class="col-sm-6">
10
10
  <!-- IF gdpr_consent -->
11
11
  <div class="alert alert-success d-flex gap-3">
12
- [[user:consent.received]]
12
+ {{tx("user:consent.received")}}
13
13
  <i class="fa fa-check fa-3x"></i>
14
14
  </div>
15
15
  <!-- ELSE -->
16
16
  <div class="alert alert-warning">
17
- [[user:consent.not-received]]
17
+ {{tx("user:consent.not-received")}}
18
18
  <br /><br />
19
19
  <div class="text-center">
20
- <button class="btn btn-warning" data-action="consent">[[user:consent.give]]</button>
20
+ <button class="btn btn-warning" data-action="consent">{{tx("user:consent.give")}}</button>
21
21
  </div>
22
22
  </div>
23
23
  <!-- END -->
24
24
  <div class="card">
25
25
  <div class="card-body">
26
- <p>[[user:consent.email-intro]]</p>
26
+ <p>{{tx("user:consent.email-intro")}}</p>
27
27
  <!-- IF digest.enabled -->
28
- <p>[[user:consent.digest-frequency, {digest.frequency}]]</p>
28
+ <p>{{tx("user:consent.digest-frequency", digest.frequency)}}</p>
29
29
  <!-- ELSE -->
30
- [[user:consent.digest-off]]
30
+ {{tx("user:consent.digest-off")}}
31
31
  <!-- END -->
32
32
 
33
33
  <div class="text-center">
34
34
  <a class="btn btn-outline-secondary" href="./settings">
35
35
  <i class="fa fa-cog"></i>
36
- [[pages:account/settings]]
36
+ {{tx("pages:account/settings")}}
37
37
  </a>
38
38
  </div>
39
39
  </div>
@@ -42,25 +42,25 @@
42
42
  <div class="col-sm-6">
43
43
  <div class="card">
44
44
  <div class="card-body">
45
- <p><strong>[[user:consent.right-of-access]]</strong></p>
46
- <p>[[user:consent.right-of-access-description]]</p>
47
- <p><strong>[[user:consent.right-to-rectification]]</strong></p>
48
- <p>[[user:consent.right-to-rectification-description]]</p>
49
- <p><strong>[[user:consent.right-to-erasure]]</strong></p>
50
- <p>[[user:consent.right-to-erasure-description]]</p>
51
- <p><strong>[[user:consent.right-to-data-portability]]</strong></p>
52
- <p>[[user:consent.right-to-data-portability-description]]</p>
45
+ <p><strong>{{tx("user:consent.right-of-access")}}</strong></p>
46
+ <p>{{tx("user:consent.right-of-access-description")}}</p>
47
+ <p><strong>{{tx("user:consent.right-to-rectification")}}</strong></p>
48
+ <p>{{tx("user:consent.right-to-rectification-description")}}</p>
49
+ <p><strong>{{tx("user:consent.right-to-erasure")}}</strong></p>
50
+ <p>{{tx("user:consent.right-to-erasure-description")}}</p>
51
+ <p><strong>{{tx("user:consent.right-to-data-portability")}}</strong></p>
52
+ <p>{{tx("user:consent.right-to-data-portability-description")}}</p>
53
53
 
54
54
  {{{ if canExport }}}
55
55
  <div class="btn-group-vertical d-grid">
56
56
  <a data-action="export-profile" class="btn btn-outline-secondary">
57
- <i class="fa fa-download"></i> [[user:consent.export-profile]]
57
+ <i class="fa fa-download"></i> {{tx("user:consent.export-profile")}}
58
58
  </a>
59
59
  <a data-action="export-posts" class="btn btn-outline-secondary">
60
- <i class="fa fa-download"></i> [[user:consent.export-posts]]
60
+ <i class="fa fa-download"></i> {{tx("user:consent.export-posts")}}
61
61
  </a>
62
62
  <a data-action="export-uploads" class="btn btn-outline-secondary">
63
- <i class="fa fa-download"></i> [[user:consent.export-uploads]]
63
+ <i class="fa fa-download"></i> {{tx("user:consent.export-uploads")}}
64
64
  </a>
65
65
  </div>
66
66
  {{{ end }}}
@@ -5,25 +5,25 @@
5
5
 
6
6
  <!-- IF isSelf -->
7
7
  <div class="mb-3">
8
- <label class="form-label fw-bold" for="inputCurrentPassword">[[user:current-password]]</label>
9
- <input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current-password]]" value=""<!-- IF !hasPassword --> disabled<!-- ENDIF !hasPassword -->>
8
+ <label class="form-label fw-bold" for="inputCurrentPassword">{{tx("user:current-password")}}</label>
9
+ <input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="{{tx("user:current-password")}}" value=""<!-- IF !hasPassword --> disabled<!-- ENDIF !hasPassword -->>
10
10
  </div>
11
11
  <!-- ENDIF isSelf -->
12
12
 
13
13
  <div class="mb-3">
14
- <label class="form-label fw-bold" for="inputNewPassword">[[user:new-password]]</label>
15
- <input class="form-control" type="password" id="inputNewPassword" placeholder="[[user:password]]" value="">
14
+ <label class="form-label fw-bold" for="inputNewPassword">{{tx("user:new-password")}}</label>
15
+ <input class="form-control" type="password" id="inputNewPassword" placeholder="{{tx("user:new-password")}}" value="">
16
16
  <span class="form-text" id="password-notify"></span>
17
17
  </div>
18
18
 
19
19
  <div class="mb-3">
20
- <label class="form-label fw-bold" for="inputNewPasswordAgain">[[user:confirm-password]]</label>
21
- <input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="[[user:confirm-password]]" value="">
20
+ <label class="form-label fw-bold" for="inputNewPasswordAgain">{{tx("user:confirm-password")}}</label>
21
+ <input class="form-control" type="password" id="inputNewPasswordAgain" placeholder="{{tx("user:confirm-password")}}" value="">
22
22
  <span class="form-text" id="password-confirm-notify"></span>
23
23
  </div>
24
24
 
25
25
  <div class="form-actions">
26
- <button id="changePasswordBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change-password]]</button>
26
+ <button id="changePasswordBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> {{tx("user:change-password")}}</button>
27
27
  </div>
28
28
  </form>
29
29
 
@@ -2,23 +2,23 @@
2
2
 
3
3
  <form class="form-horizontal edit-form">
4
4
  <div class="mb-3">
5
- <label class="form-label fw-bold" for="inputNewUsername">[[user:username]]</label>
6
- <input class="form-control" type="text" id="inputNewUsername" placeholder="[[user:username]]" value="{username}">
5
+ <label class="form-label fw-bold" for="inputNewUsername">{{tx("user:username")}}</label>
6
+ <input class="form-control" type="text" id="inputNewUsername" placeholder="{{tx("user:username")}}" value="{username}">
7
7
  </div>
8
8
 
9
9
  <!-- disables autocomplete on FF --><input type="password" style="display:none">
10
10
 
11
11
  <!-- IF isSelf -->
12
12
  <div class="mb-3">
13
- <label class="form-label fw-bold" for="inputCurrentPassword">[[user:current-password]]</label>
14
- <input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="[[user:current-password]]" value=""<!-- IF !hasPassword --> disabled<!-- ENDIF !hasPassword -->>
13
+ <label class="form-label fw-bold" for="inputCurrentPassword">{{tx("user:current-password")}}</label>
14
+ <input autocomplete="off" class="form-control" type="password" id="inputCurrentPassword" placeholder="{{tx("user:current-password")}}" value=""<!-- IF !hasPassword --> disabled<!-- ENDIF !hasPassword -->>
15
15
  </div>
16
16
  <!-- ENDIF isSelf -->
17
17
 
18
18
  <input type="hidden" name="uid" id="inputUID" value="{uid}" />
19
19
 
20
20
  <div class="form-actions">
21
- <button id="submitBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> [[user:change-username]]</button>
21
+ <button id="submitBtn" class="btn btn-primary btn-block"><i class="hide fa fa-spinner fa-spin"></i> {{tx("user:change-username")}}</button>
22
22
  </div>
23
23
  </form>
24
24
 
@@ -5,33 +5,33 @@
5
5
  <div class="account-picture-block text-center">
6
6
  <ul class="list-group mb-3">
7
7
  {{{ if allowProfilePicture }}}
8
- <li class="list-group-item"><a component="profile/change/picture" href="#" class="text-decoration-none text-reset">[[user:change-picture]]</a></li>
8
+ <li class="list-group-item"><a component="profile/change/picture" href="#" class="text-decoration-none text-reset">{{tx("user:change-picture")}}</a></li>
9
9
  {{{ end }}}
10
10
  {{{ if !username:disableEdit }}}
11
- <li class="list-group-item"><a href="{config.relative_path}/user/{userslug}/edit/username" class="text-decoration-none text-reset">[[user:change-username]]</a></li>
11
+ <li class="list-group-item"><a href="{config.relative_path}/user/{userslug}/edit/username" class="text-decoration-none text-reset">{{tx("user:change-username")}}</a></li>
12
12
  {{{ end }}}
13
13
  {{{ if !email:disableEdit }}}
14
- <li class="list-group-item"><a href="{config.relative_path}/user/{userslug}/edit/email" class="text-decoration-none text-reset">[[user:change-email]]</a></li>
14
+ <li class="list-group-item"><a href="{config.relative_path}/user/{userslug}/edit/email" class="text-decoration-none text-reset">{{tx("user:change-email")}}</a></li>
15
15
  {{{ end }}}
16
16
  {{{ if canChangePassword }}}
17
- <li class="list-group-item"><a href="{config.relative_path}/user/{userslug}/edit/password" class="text-decoration-none text-reset">[[user:change-password]]</a></li>
17
+ <li class="list-group-item"><a href="{config.relative_path}/user/{userslug}/edit/password" class="text-decoration-none text-reset">{{tx("user:change-password")}}</a></li>
18
18
  {{{ end }}}
19
19
  {{{ each editButtons }}}
20
- <li class="list-group-item"><a href="{config.relative_path}{./link}" class="text-decoration-none text-reset">{./text}</a></li>
20
+ <li class="list-group-item"><a href="{config.relative_path}{./link}" class="text-decoration-none text-reset">{{tx(./text)}}</a></li>
21
21
  {{{ end }}}
22
22
  </ul>
23
23
 
24
24
  <!-- IF config.requireEmailConfirmation -->
25
25
  <!-- IF email -->
26
26
  <!-- IF isSelf -->
27
- <a id="confirm-email" href="#" class="btn btn-warning <!-- IF email:confirmed -->hide<!-- ENDIF email:confirmed -->">[[user:confirm-email]]</a><br/><br/>
27
+ <a id="confirm-email" href="#" class="btn btn-warning <!-- IF email:confirmed -->hide<!-- ENDIF email:confirmed -->">{{tx("user:confirm-email")}}</a><br/><br/>
28
28
  <!-- ENDIF isSelf -->
29
29
  <!-- ENDIF email -->
30
30
  <!-- ENDIF config.requireEmailConfirmation -->
31
31
 
32
32
  <!-- IF allowAccountDelete -->
33
33
  <!-- IF isSelf -->
34
- <a id="deleteAccountBtn" href="#" class="btn btn-danger">[[user:delete-account]]</a><br/><br/>
34
+ <a id="deleteAccountBtn" href="#" class="btn btn-danger">{{tx("user:delete-account")}}</a><br/><br/>
35
35
  <!-- ENDIF isSelf -->
36
36
  <!-- ENDIF allowAccountDelete -->
37
37
 
@@ -41,12 +41,12 @@
41
41
  <div class="<!-- IF !sso.length -->col-md-9 col-sm-8<!-- ELSE -->col-md-5 col-sm-4<!-- ENDIF !sso.length -->">
42
42
  <form role="form" component="profile/edit/form">
43
43
  <div class="mb-2">
44
- <label class="form-label fw-bold" for="fullname">[[user:fullname]]</label>
45
- <input class="form-control" type="text" id="fullname" name="fullname" placeholder="[[user:fullname]]" value="{fullname}">
44
+ <label class="form-label fw-bold" for="fullname">{{tx("user:fullname")}}</label>
45
+ <input class="form-control" type="text" id="fullname" name="fullname" placeholder="{{tx("user:fullname")}}" value="{fullname}">
46
46
  </div>
47
47
 
48
48
  <div class="mb-2">
49
- <label class="form-label fw-bold" for="birthday">[[user:birthday]]</label>
49
+ <label class="form-label fw-bold" for="birthday">{{tx("user:birthday")}}</label>
50
50
  <input class="form-control" type="date" id="birthday" name="birthday" value="{birthday}" placeholder="mm/dd/yyyy">
51
51
  </div>
52
52
 
@@ -76,18 +76,18 @@
76
76
  {{{ end }}}
77
77
 
78
78
  <div class="mb-2">
79
- <label class="form-label fw-bold" for="groupTitle">[[user:grouptitle]]</label>
79
+ <label class="form-label fw-bold" for="groupTitle">{{tx("user:grouptitle")}}</label>
80
80
 
81
81
  <div class="d-flex flex-column gap-2" component="group/badge/list">
82
82
  {{{ each groups }}}
83
83
  <div component="group/badge/item" class="d-flex gap-2 justify-content-between align-items-center" data-value="{./displayName}" data-selected="{./selected}">
84
84
  <!-- IMPORT partials/groups/badge.tpl -->
85
85
  <div class="d-flex gap-1">
86
- <button component="group/toggle/hide" type="button" class="btn btn-ghost btn-sm {{{ if !./selected }}}hidden{{{ end }}}" title="[[user:hide-group-title]]"><i class="fa fa-fw fa-eye"></i></button>
87
- <button component="group/toggle/show" type="button" class="btn btn-ghost btn-sm {{{ if ./selected }}}hidden{{{ end }}}" title="[[user:show-group-title]]"><i class="fa fa-fw fa-eye-slash"></i></button>
86
+ <button component="group/toggle/hide" type="button" class="btn btn-ghost btn-sm {{{ if !./selected }}}hidden{{{ end }}}" title="{{tx("user:hide-group-title")}}"><i class="fa fa-fw fa-eye"></i></button>
87
+ <button component="group/toggle/show" type="button" class="btn btn-ghost btn-sm {{{ if ./selected }}}hidden{{{ end }}}" title="{{tx("user:show-group-title")}}"><i class="fa fa-fw fa-eye-slash"></i></button>
88
88
  {{{ if allowMultipleBadges }}}
89
- <button component="group/order/up" type="button" class="btn btn-ghost btn-sm" title="[[user:order-group-up]]"><i class="fa fa-fw fa-chevron-up"></i></button>
90
- <button component="group/order/down" type="button" class="btn btn-ghost btn-sm" title="[[user:order-group-down]]"><i class="fa fa-fw fa-chevron-down"></i></button>
89
+ <button component="group/order/up" type="button" class="btn btn-ghost btn-sm" title="{{tx("user:order-group-up")}}"><i class="fa fa-fw fa-chevron-up"></i></button>
90
+ <button component="group/order/down" type="button" class="btn btn-ghost btn-sm" title="{{tx("user:order-group-down")}}"><i class="fa fa-fw fa-chevron-down"></i></button>
91
91
  {{{ end }}}
92
92
  </div>
93
93
  </div>
@@ -97,7 +97,7 @@
97
97
 
98
98
  <!-- IF allowAboutMe -->
99
99
  <div class="mb-2">
100
- <label class="form-label fw-bold" for="aboutme">[[user:aboutme]]</label> <small><label id="aboutMeCharCountLeft"></label></small>
100
+ <label class="form-label fw-bold" for="aboutme">{{tx("user:aboutme")}}</label> <small><label id="aboutMeCharCountLeft"></label></small>
101
101
  <textarea class="form-control" id="aboutme" name="aboutme" rows="5">{aboutme}</textarea>
102
102
  </div>
103
103
  <!-- ENDIF allowAboutMe -->
@@ -105,13 +105,13 @@
105
105
  <!-- IF allowSignature -->
106
106
  <!-- IF !disableSignatures -->
107
107
  <div class="mb-2">
108
- <label class="form-label fw-bold" for="signature">[[user:signature]]</label> <small><label id="signatureCharCountLeft"></label></small>
108
+ <label class="form-label fw-bold" for="signature">{{tx("user:signature")}}</label> <small><label id="signatureCharCountLeft"></label></small>
109
109
  <textarea class="form-control" id="signature" name="signature" rows="5">{signature}</textarea>
110
110
  </div>
111
111
  <!-- ENDIF !disableSignatures -->
112
112
  <!-- ENDIF allowSignature -->
113
113
 
114
- <a id="submitBtn" href="#" class="btn btn-primary">[[global:save-changes]]</a>
114
+ <a id="submitBtn" href="#" class="btn btn-primary">{{tx("global:save-changes")}}</a>
115
115
  </form>
116
116
 
117
117
  <hr class="visible-xs visible-sm"/>
@@ -119,16 +119,16 @@
119
119
 
120
120
  <!-- IF sso.length -->
121
121
  <div class="col-md-4 col-sm-4">
122
- <label>[[user:sso.title]]</label>
122
+ <label>{{tx("user:sso.title")}}</label>
123
123
  <div class="list-group">
124
124
  {{{each sso}}}
125
125
  <div class="list-group-item">
126
126
  <!-- IF ../deauthUrl -->
127
- <a data-component="{../component}" class="btn btn-outline-secondary btn-sm float-end" href="{../deauthUrl}">[[user:sso.dissociate]]</a>
127
+ <a data-component="{../component}" class="btn btn-outline-secondary btn-sm float-end" href="{../deauthUrl}">{{tx("user:sso.dissociate")}}</a>
128
128
  <!-- END -->
129
129
  <a data-component="{../component}" href="{{{ if ./url }}}{./url}{{{ else }}}#{{{ end }}}" target="<!-- IF ../associated -->_blank<!-- ELSE -->_top<!-- ENDIF ../associated -->">
130
130
  <!-- IF ../icon --><i class="fa {../icon}"></i><!-- ENDIF ../icon -->
131
- <!-- IF ../associated -->[[user:sso.associated]]<!-- ELSE -->[[user:sso.not-associated]]<!-- ENDIF ../associated -->
131
+ <!-- IF ../associated -->{{tx("user:sso.associated")}}<!-- ELSE -->{{tx("user:sso.not-associated")}}<!-- ENDIF ../associated -->
132
132
  {../name}
133
133
  </a>
134
134
  </div>
@@ -1,12 +1,12 @@
1
1
  <!-- IMPORT partials/account/header.tpl -->
2
2
 
3
- <h1 class="fs-4">[[pages:{template.name}, {username}]]</h1>
3
+ <h1 class="fs-4">{{tx("pages:account/followers", txEscape(username))}}</h1>
4
4
  <div class="users row">
5
5
  <div class="col-12">
6
6
  <!-- IMPORT partials/users_list.tpl -->
7
7
 
8
8
  <!-- IF !users.length -->
9
- <div class="alert alert-warning text-center">[[user:has-no-follower]]</div>
9
+ <div class="alert alert-warning text-center">{{tx("user:has-no-follower")}}</div>
10
10
  <!-- ENDIF !users.length -->
11
11
 
12
12
  <!-- IMPORT partials/paginator.tpl -->
@@ -1,12 +1,12 @@
1
1
  <!-- IMPORT partials/account/header.tpl -->
2
2
 
3
- <h1 class="fs-4">[[pages:{template.name}, {username}]]</h1>
3
+ <h1 class="fs-4">{{tx("pages:account/following", txEscape(username))}}</h1>
4
4
  <div class="users row">
5
5
  <div class="col-12">
6
6
  <!-- IMPORT partials/users_list.tpl -->
7
7
 
8
8
  <!-- IF !users.length -->
9
- <div class="alert alert-warning text-center">[[user:follows-no-one]]</div>
9
+ <div class="alert alert-warning text-center">{{tx("user:follows-no-one")}}</div>
10
10
  <!-- ENDIF !users.length -->
11
11
 
12
12
  <!-- IMPORT partials/paginator.tpl -->
@@ -1,10 +1,10 @@
1
1
  <!-- IMPORT partials/account/header.tpl -->
2
- <h1 class="fs-4">[[pages:{template.name}, {username}]]</h1>
2
+ <h1 class="fs-4">{{tx("pages:account/groups", txEscape(username))}}</h1>
3
3
  <div class="row">
4
4
  <div class="col-12 groups list">
5
5
  <div component="groups/container" id="groups-list" class="row">
6
6
  <!-- IF !groups.length -->
7
- <div class="alert alert-warning text-center">[[groups:no-groups-found]]</div>
7
+ <div class="alert alert-warning text-center">{{tx("groups:no-groups-found")}}</div>
8
8
  <!-- ELSE -->
9
9
  <!-- IMPORT partials/groups/list.tpl -->
10
10
  <!-- ENDIF !groups.length -->