Skip to content

Commit 8140904

Browse files
committedOct 10, 2023
pkp/pkp-lib#9371 Exposing locale keys used in vue.js via endpoint
pkp/pkp-lib#9371 fix typo pkp/pkp-lib#9371 CR Improvements pkp/pkp-lib#9371 Clean up setLocaleKeys as thats not needed anymore. Fetch ui.js early to improve performance on first load. pkp/pkp-lib#9371 rename json file, move vite tools to lib/pkp
1 parent 139e76e commit 8140904

File tree

6 files changed

+176
-8
lines changed

6 files changed

+176
-8
lines changed
 

‎.php-cs-fixer.php

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
return $folders;
3434
})());
3535

36-
$rules = include './lib/pkp/.php_cs_rules';
36+
$rules = include __DIR__ . '/lib/pkp/.php_cs_rules';
3737
$config = new PhpCsFixer\Config();
3838
return $config->setRules($rules)
3939
->setFinder($finder);

‎api/v1/_i18n/index.php

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<?php
2+
/**
3+
* @defgroup api_v1_i18n Backend i18n API requests
4+
*/
5+
6+
/**
7+
* @file api/v1/_i18n/index.php
8+
*
9+
* Copyright (c) 2023 Simon Fraser University
10+
* Copyright (c) 2023 John Willinsky
11+
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
12+
*
13+
* @ingroup api_v1_i18n
14+
*
15+
* @brief Handle API requests for backend i18n operations.
16+
*/
17+
18+
19+
return new \PKP\API\v1\_i18n\I18nHandler();

‎classes/components/listPanels/DoiListPanel.php

-6
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
use APP\components\forms\FieldSelectIssues;
2020
use APP\core\Application;
21-
use APP\template\TemplateManager;
2221
use PKP\components\listPanels\PKPDoiListPanel;
2322
use PKP\core\PKPApplication;
2423

@@ -70,10 +69,5 @@ protected function setAppConfig(array &$config): void
7069

7170
// Provide required locale keys
7271
$request = Application::get()->getRequest();
73-
$templateMgr = TemplateManager::getManager($request);
74-
$templateMgr->setLocaleKeys([
75-
'article.article',
76-
'issue.issue'
77-
]);
7872
}
7973
}

‎js/load.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import SubmissionsPage from '@/components/Container/SubmissionsPage.vue';
3737
// styles
3838
import '@/styles/_global.less';
3939
// Expose Vue, the registry and controllers in a global var
40-
window.pkp = Object.assign(PkpLoad, {
40+
window.pkp = Object.assign(PkpLoad, window.pkp || {}, {
4141
controllers: {
4242
AccessPage,
4343
AddContextContainer,

‎registry/uiLocaleKeysBackend.json

+144
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,144 @@
1+
[
2+
"article.article",
3+
"common.attachFiles",
4+
"common.cancel",
5+
"common.clearSearch",
6+
"common.close",
7+
"common.commaListSeparator",
8+
"common.delete",
9+
"common.description",
10+
"common.edit",
11+
"common.editItem",
12+
"common.filter",
13+
"common.filterAdd",
14+
"common.filterRemove",
15+
"common.insertContent",
16+
"common.lastActivity",
17+
"common.loaded",
18+
"common.loading",
19+
"common.no",
20+
"common.noItemsFound",
21+
"common.none",
22+
"common.ok",
23+
"common.order",
24+
"common.orderDown",
25+
"common.orderUp",
26+
"common.pageNumber",
27+
"common.pagination.goToPage",
28+
"common.pagination.label",
29+
"common.pagination.next",
30+
"common.pagination.previous",
31+
"common.remove",
32+
"common.required",
33+
"common.save",
34+
"common.saving",
35+
"common.search",
36+
"common.selectAll",
37+
"common.selectNone",
38+
"common.selectWithName",
39+
"common.status",
40+
"common.type",
41+
"common.unknownError",
42+
"common.uploaded",
43+
"common.uploadedByAndWhen",
44+
"common.view",
45+
"common.viewWithName",
46+
"common.yes",
47+
"doi.manager.versions.countStatement",
48+
"doi.manager.versions.modalTitle",
49+
"doi.manager.versions.view",
50+
"editor.submissionArchive.confirmDelete",
51+
"filterAdd",
52+
"filterRemove",
53+
"form.errorA11y",
54+
"form.errorGoTo",
55+
"form.errorMany",
56+
"form.errorOne",
57+
"form.errors",
58+
"form.multilingualLabel",
59+
"form.multilingualProgress",
60+
"form.saved",
61+
"grid.action.sort",
62+
"help.help",
63+
"issue.issue",
64+
"list.collapseAll",
65+
"list.expandAll",
66+
"list.viewLess",
67+
"list.viewMore",
68+
"manager.dois.actions.assign.label",
69+
"manager.dois.actions.assign.prompt",
70+
"manager.dois.actions.bulkActions",
71+
"manager.dois.actions.deposit.all",
72+
"manager.dois.actions.deposit.label",
73+
"manager.dois.actions.deposit.prompt",
74+
"manager.dois.actions.depositAll.label",
75+
"manager.dois.actions.depositAll.prompt",
76+
"manager.dois.actions.description",
77+
"manager.dois.actions.export.label",
78+
"manager.dois.actions.export.prompt",
79+
"manager.dois.actions.markRegistered.label",
80+
"manager.dois.actions.markRegistered.prompt",
81+
"manager.dois.actions.markStale.label",
82+
"manager.dois.actions.markStale.prompt",
83+
"manager.dois.actions.markUnregistered.label",
84+
"manager.dois.actions.markUnregistered.prompt",
85+
"manager.dois.filters.doiAssigned",
86+
"manager.dois.filters.doiAssigned.description",
87+
"manager.dois.help.statuses.title",
88+
"manager.dois.notification.assignDoisSuccess",
89+
"manager.dois.notification.depositQueuedSuccess",
90+
"manager.dois.notification.exportSuccess",
91+
"manager.dois.notification.markRegisteredSuccess",
92+
"manager.dois.notification.markStaleSuccess",
93+
"manager.dois.notification.markUnregisteredSuccess",
94+
"manager.dois.registration.depositDois",
95+
"manager.dois.registration.manuallyMarkedRegistered",
96+
"manager.dois.registration.notPublishedDescription",
97+
"manager.dois.registration.notSubmittedDescription",
98+
"manager.dois.registration.submittedDescription",
99+
"manager.dois.registration.viewError",
100+
"manager.dois.registration.viewError.title",
101+
"manager.dois.registration.viewRecord",
102+
"manager.dois.status.error",
103+
"manager.dois.status.error.description",
104+
"manager.dois.status.error.filterTitle",
105+
"manager.dois.status.needsDoi",
106+
"manager.dois.status.needsDoi.description",
107+
"manager.dois.status.registered",
108+
"manager.dois.status.registered.description",
109+
"manager.dois.status.stale",
110+
"manager.dois.status.stale.description",
111+
"manager.dois.status.submitted",
112+
"manager.dois.status.submitted.description",
113+
"manager.dois.status.unregistered",
114+
"manager.dois.status.unregistered.description",
115+
"manager.dois.title",
116+
"manager.dois.update.failedCreation",
117+
"manager.dois.update.partialFailure",
118+
"manger.dois.update.success",
119+
"navigation.backTo",
120+
"publication.status.published",
121+
"publication.status.unpublished",
122+
"publication.version",
123+
"stats.countWithYearlyAverage",
124+
"stats.descriptionForStat",
125+
"submission.list.assignEditor",
126+
"submission.list.copyeditsSubmitted",
127+
"submission.list.currentStage",
128+
"submission.list.discussions",
129+
"submission.list.dualWorkflowLinks",
130+
"submission.list.empty",
131+
"submission.list.galleysCreated",
132+
"submission.list.infoCenter",
133+
"submission.list.responseDue",
134+
"submission.list.reviewAssignment",
135+
"submission.list.reviewCancelled",
136+
"submission.list.reviewComplete",
137+
"submission.list.reviewDue",
138+
"submission.list.reviewerWorkflowLink",
139+
"submission.list.reviewsCompleted",
140+
"submission.list.revisionsSubmitted",
141+
"submission.submit.newSubmissionSingle",
142+
"submissions.incomplete",
143+
"validator.required"
144+
]

‎vite.config.js

+11
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import {defineConfig} from 'vite';
22
import Vue from '@vitejs/plugin-vue';
33
import path from 'path';
44
import copy from 'rollup-plugin-copy';
5+
import i18nExtractKeys from './lib/pkp/tools/i18nExtractKeys.vite.js';
56

67
export default defineConfig(({mode}) => {
78
// its very unclear how the plugin-vue is handling inProduction option
@@ -10,6 +11,16 @@ export default defineConfig(({mode}) => {
1011
process.env.NODE_ENV = mode;
1112
return {
1213
plugins: [
14+
i18nExtractKeys({
15+
// existing in tpl files, to be replaced in future
16+
extraKeys: [
17+
'common.view',
18+
'common.close',
19+
'common.editItem',
20+
'stats.descriptionForStat',
21+
'common.commaListSeparator',
22+
],
23+
}),
1324
Vue({
1425
isProduction: mode === 'production',
1526
template: {

0 commit comments

Comments
 (0)
Please sign in to comment.