Skip to content

Commit 92597d9

Browse files
Merge pull request #459 from cap-java/errorMessages
Separate UI and Backend Error Keys for Localization
2 parents c717ca1 + a69d420 commit 92597d9

15 files changed

Lines changed: 149 additions & 105 deletions

.github/workflows/cfdeploy.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,7 +114,7 @@ jobs:
114114
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo tee /etc/apt/trusted.gpg.d/cloudfoundry.asc
115115
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
116116
sudo apt update
117-
sudo apt install cf-cli
117+
sudo apt install cf8-cli
118118
119119
cf install-plugin multiapps -f
120120
@@ -249,7 +249,7 @@ jobs:
249249
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo tee /etc/apt/trusted.gpg.d/cloudfoundry.asc
250250
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
251251
sudo apt update
252-
sudo apt install cf-cli
252+
sudo apt install cf8-cli
253253
254254
cf install-plugin multiapps -f
255255

.github/workflows/multiTenancyDeployLocal.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,7 @@ jobs:
105105
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo tee /etc/apt/trusted.gpg.d/cloudfoundry.asc
106106
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
107107
sudo apt update
108-
sudo apt install cf-cli
108+
sudo apt install cf8-cli
109109
110110
cf install-plugin multiapps -f
111111
echo "✅ Cloud Foundry CLI setup complete!"

.github/workflows/multiTenant_deploy_and_Integration_test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ jobs:
8181
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo tee /etc/apt/trusted.gpg.d/cloudfoundry.asc
8282
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
8383
sudo apt update
84-
sudo apt install cf-cli
84+
sudo apt install cf8-cli
8585
8686
cf install-plugin multiapps -f
8787
echo "✅ Cloud Foundry CLI setup complete!"

.github/workflows/multiTenant_deploy_and_Integration_test_LatestVersion.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ jobs:
129129
wget -q -O - https://packages.cloudfoundry.org/debian/cli.cloudfoundry.org.key | sudo tee /etc/apt/trusted.gpg.d/cloudfoundry.asc
130130
echo "deb https://packages.cloudfoundry.org/debian stable main" | sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
131131
sudo apt update
132-
sudo apt install cf-cli
132+
sudo apt install cf8-cli
133133
134134
cf install-plugin multiapps -f
135135
echo "✅ Cloud Foundry CLI setup complete!"

.github/workflows/singleTenant_deploy_and_Integration_test.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ jobs:
9898
echo "deb https://packages.cloudfoundry.org/debian stable main" \
9999
| sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
100100
sudo apt update
101-
sudo apt install cf-cli
101+
sudo apt install cf8-cli
102102
103103
# Install cf CLI plugin
104104
cf install-plugin multiapps -f

.github/workflows/singleTenant_deploy_and_Integration_test_LatestVersion.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,7 @@ jobs:
149149
echo "deb https://packages.cloudfoundry.org/debian stable main" \
150150
| sudo tee /etc/apt/sources.list.d/cloudfoundry-cli.list
151151
sudo apt update
152-
sudo apt install cf-cli
152+
sudo apt install cf8-cli
153153
154154
# Install cf CLI plugin
155155
cf install-plugin multiapps -f

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1299,9 +1299,12 @@ type=Type
12991299

13001300
### Error Messages Localization
13011301

1302-
The plugin provides error message keys in the `SDMErrorKeys` [class](https://github.com/cap-java/sdm/blob/develop/sdm/src/main/java/com/sap/cds/sdm/constants/SDMErrorKeys.java). You can override these messages by adding translations to `messages_[languagecode].properties` files in your leading application under `srv/src/main/resources`.
1302+
The plugin provides two classes for error keys:
13031303

1304-
Default messages are present in `SDMErrorMessages` [class](https://github.com/cap-java/sdm/blob/develop/sdm/src/main/java/com/sap/cds/sdm/constants/SDMErrorMessages.java). If the leading application does not provide translations in their language-specific properties files, these default English language messages are shown to the user.
1304+
- `SDMUIErrorKeys` - UI-facing messages that should be translated
1305+
- `SDMErrorKeys` - Backend/internal messages (no translation needed)
1306+
1307+
To translate UI messages, add entries to `messages_[languagecode].properties` in `srv/src/main/resources/`. If the leading application does not provide translations in their language-specific properties files, these default English language messages are shown to the user.
13051308

13061309
Example `messages_de.properties` for German language:
13071310
```properties
@@ -1311,7 +1314,6 @@ SDM.mimetypeInvalidError=Der Dateityp ist nicht zulässig
13111314
SDM.maxCountErrorMessage=Maximale Anzahl von Anhängen erreicht
13121315
```
13131316

1314-
13151317
## Support for Attachment Upload Status
13161318

13171319
The attachment upload process displays a status indicator for each file being uploaded.

sdm/src/main/java/com/sap/cds/sdm/constants/SDMErrorKeys.java

Lines changed: 17 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -8,48 +8,39 @@
88
import java.util.LinkedHashMap;
99
import java.util.Map;
1010

11+
// Backend/Internal Error Keys
1112
public class SDMErrorKeys {
12-
private SDMErrorKeys() {
13-
// Doesn't do anything
14-
}
13+
private SDMErrorKeys() {}
1514

16-
public static final String COULD_NOT_UPDATE_THE_ATTACHMENT_KEY =
17-
"SDM.couldNotUpdateTheAttachment";
18-
public static final String ATTACHMENT_NOT_FOUND_KEY = "SDM.attachmentNotFound";
19-
public static final String GENERIC_ERROR_KEY = "SDM.genericError";
20-
public static final String EVENT_UPLOAD_KEY = "SDM.eventUpload";
21-
public static final String VERSIONED_REPO_ERROR_KEY = "SDM.Repository.versionedRepoError";
22-
public static final String VIRUS_REPO_ERROR_MORE_THAN_400MB_KEY =
23-
"SDM.virusRepoErrorMoreThan400MB";
24-
public static final String VIRUS_ERROR_KEY = "SDM.virusError";
25-
public static final String REPOSITORY_ERROR_KEY = "SDM.repositoryError";
26-
public static final String SDM_MISSING_ROLES_EXCEPTION_KEY = "SDM.sdmMissingRolesException";
27-
public static final String SDM_SERVER_ERROR_KEY = "SDM.sdmServerError";
2815
public static final String ENTITY_PROCESSING_ERROR_LINK_KEY = "SDM.entityProcessingErrorLink";
29-
public static final String USER_NOT_AUTHORISED_ERROR_KEY = "SDM.userNotAuthorisedError";
30-
public static final String MIMETYPE_INVALID_ERROR_KEY = "SDM.mimetypeInvalidError";
31-
public static final String USER_NOT_AUTHORISED_ERROR_LINK_KEY = "SDM.userNotAuthorisedErrorLink";
32-
public static final String FILE_NOT_FOUND_ERROR_KEY = "SDM.fileNotFoundError";
16+
public static final String FAILED_TO_EDIT_LINK_KEY = "SDM.failedToEditLink";
3317
public static final String ONBOARD_REPO_MESSAGE_KEY = "SDM.onboardRepoMessage";
3418
public static final String REPOSITORY_ALREADY_EXIST_KEY = "SDM.repositoryAlreadyExist";
3519
public static final String ONBOARD_REPO_ERROR_MESSAGE_KEY = "SDM.onboardRepoErrorMessage";
36-
public static final String UPDATE_ATTACHMENT_ERROR_KEY = "SDM.updateAttachmentError";
20+
public static final String FAILED_TO_OFFBOARD_REPOSITORY_KEY = "SDM.failedToOffboardRepository";
21+
public static final String ERROR_WHILE_OFFBOARDING_REPOSITORY_KEY =
22+
"SDM.errorWhileOffboardingRepository";
23+
public static final String UNEXPECTED_ERROR_WHILE_OFFBOARDING_REPOSITORY_KEY =
24+
"SDM.unexpectedErrorWhileOffboardingRepository";
3725
public static final String DRAFT_NOT_FOUND_KEY = "SDM.draftNotFound";
38-
public static final String UNSUPPORTED_PROPERTIES_KEY = "SDM.unsupportedProperties";
39-
public static final String FAILED_TO_COPY_ATTACHMENT_KEY = "SDM.failedToCopyAttachment";
4026
public static final String PARENT_ENTITY_NOT_FOUND_ERROR_KEY = "SDM.parentEntityNotFoundError";
4127
public static final String COMPOSITION_NOT_FOUND_ERROR_KEY = "SDM.compositionNotFoundError";
4228
public static final String TARGET_ATTACHMENT_ENTITY_NOT_FOUND_ERROR_KEY =
4329
"SDM.targetAttachmentEntityNotFoundError";
4430
public static final String INVALID_FACET_FORMAT_ERROR_KEY = "SDM.invalidFacetFormatError";
4531
public static final String FETCH_ATTACHMENT_COMPOSITION_ERROR_KEY =
4632
"SDM.fetchAttachmentCompositionError";
47-
public static final String FAILED_TO_EDIT_LINK_KEY = "SDM.failedToEditLink";
4833
public static final String ERROR_IN_SETTING_TIMEOUT_KEY = "SDM.errorInSettingTimeout";
4934
public static final String SDM_CREDENTIALS_MISSING_OR_INVALID_KEY =
5035
"SDM.sdmCredentialsMissingOrInvalid";
5136
public static final String FAILED_TO_RETRIEVE_SDM_CREDENTIALS_KEY =
5237
"SDM.failedToRetrieveSdmCredentials";
38+
public static final String CLIENT_CREDENTIALS_MISSING_OR_INVALID_KEY =
39+
"SDM.clientCredentialsMissingOrInvalid";
40+
public static final String FAILED_TO_CREATE_CLIENT_CREDENTIALS_KEY =
41+
"SDM.failedToCreateClientCredentials";
42+
public static final String FAILED_TO_REPLACE_SUBDOMAIN_IN_BASE_TOKEN_URL_KEY =
43+
"SDM.failedToReplaceSubdomainInBaseTokenUrl";
5344
public static final String FAILED_TO_CREATE_HTTP_CLIENT_KEY = "SDM.failedToCreateHttpClient";
5445
public static final String ERROR_WHILE_CREATING_HTTP_CLIENT_KEY =
5546
"SDM.errorWhileCreatingHttpClient";
@@ -58,67 +49,17 @@ private SDMErrorKeys() {
5849
public static final String FAILED_TO_SERIALIZE_REPOSITORY_OBJECT_TO_JSON_KEY =
5950
"SDM.failedToSerializeRepositoryObjectToJson";
6051
public static final String FAILED_TO_CREATE_STRING_ENTITY_KEY = "SDM.failedToCreateStringEntity";
61-
public static final String CLIENT_CREDENTIALS_MISSING_OR_INVALID_KEY =
62-
"SDM.clientCredentialsMissingOrInvalid";
63-
public static final String FAILED_TO_CREATE_CLIENT_CREDENTIALS_KEY =
64-
"SDM.failedToCreateClientCredentials";
65-
public static final String FAILED_TO_REPLACE_SUBDOMAIN_IN_BASE_TOKEN_URL_KEY =
66-
"SDM.failedToReplaceSubdomainInBaseTokenUrl";
6752
public static final String ERROR_WHILE_FETCHING_REPOSITORY_ID_KEY =
68-
"SDM.errowWhileFetchingRepositoryId";
53+
"SDM.errorWhileFetchingRepositoryId";
6954
public static final String UNEXPECTED_ERROR_WHILE_FETCHING_REPOSITORY_ID_KEY =
7055
"SDM.unexpectedErrorWhileFetchingRepositoryId";
71-
public static final String FAILED_TO_OFFBOARD_REPOSITORY_KEY = "SDM.failedToOffboardRepository";
72-
public static final String ERROR_WHILE_OFFBOARDING_REPOSITORY_KEY =
73-
"SDM.errorWhileOffboardingRepository";
74-
public static final String UNEXPECTED_ERROR_WHILE_OFFBOARDING_REPOSITORY_KEY =
75-
"SDM.unexpectedErrorWhileOffboardingRepository";
7656
public static final String FAILED_TO_PARSE_REPOSITORY_RESPONSE_KEY =
7757
"SDM.failedToParseRepositoryResponse";
7858
public static final String FAILED_TO_CREATE_FOLDER_KEY = "SDM.failedToCreateFolder";
79-
public static final String FILENAME_WHITESPACE_ERROR_MESSAGE_KEY =
80-
"SDM.filenameWhitespaceErrorMessage";
81-
public static final String SINGLE_RESTRICTED_CHARACTER_IN_FILE_KEY =
82-
"SDM.singleRestrictedCharacterInFile";
83-
public static final String SINGLE_DUPLICATE_FILENAME_KEY = "SDM.singleDuplicateFilename";
84-
public static final String VIRUS_DETECTED_FILE_ERROR_KEY = "SDM.virusDetectedFileError";
85-
public static final String VIRUS_SCAN_IN_PROGRESS_FILE_ERROR_KEY =
86-
"SDM.virusScanInProgressFileError";
87-
88-
public static final String UPLOAD_IN_PROGRESS_FILE_ERROR_KEY = "SDM.uploadInProgressFileError";
89-
public static final String VIRUS_DETECTED_FILES_PREFIX_KEY = "SDM.virusDetectedFilesPrefix";
90-
public static final String VIRUS_DETECTED_FILES_SUFFIX_KEY = "SDM.virusDetectedFilesSuffix";
91-
public static final String VIRUS_SCAN_IN_PROGRESS_FILES_PREFIX_KEY =
92-
"SDM.virusScanInProgressFilesPrefix";
93-
public static final String VIRUS_SCAN_IN_PROGRESS_FILES_SUFFIX_KEY =
94-
"SDM.virusScanInProgressFilesSuffix";
95-
public static final String SCAN_FAILED_FILES_PREFIX_KEY = "SDM.scanFailedFilesPrefix";
96-
public static final String SCAN_FAILED_FILES_SUFFIX_KEY = "SDM.scanFailedFilesSuffix";
97-
public static final String RESTRICTED_CHARACTERS_IN_MULTIPLE_FILES_KEY =
98-
"SDM.restrictedCharactersInMultipleFiles";
99-
public static final String MULTIPLE_DUPLICATE_FILENAMES_PREFIX_KEY =
100-
"SDM.multipleDuplicateFilenamesPrefix";
101-
public static final String MULTIPLE_DUPLICATE_FILENAMES_SUFFIX_KEY =
102-
"SDM.multipleDuplicateFilenamesSuffix";
103-
public static final String FILE_NOT_FOUND_PREFIX_KEY = "SDM.fileNotFoundPrefix";
104-
public static final String FILE_NOT_FOUND_SUFFIX_KEY = "SDM.fileNotFoundSuffix";
105-
public static final String BAD_REQUEST_PREFIX_KEY = "SDM.badRequestPrefix";
106-
public static final String BAD_REQUEST_SUFFIX_KEY = "SDM.badRequestSuffix";
107-
public static final String EVENT_CREATE_KEY = "SDM.eventCreate";
108-
public static final String EVENT_UPDATE_KEY = "SDM.eventUpdate";
109-
public static final String NO_SDM_ROLES_PREFIX_KEY = "SDM.noSdmRolesPrefix";
11059
public static final String CONTEXT_INFO_TABLE = "SDM.contextInfoTable";
11160
public static final String CONTEXT_INFO_PAGE = "SDM.contextInfoPage";
112-
public static final String UNSUPPORTED_PROPERTIES_PREFIX_KEY = "SDM.unsupportedPropertiesPrefix";
113-
public static final String UNSUPPORTED_PROPERTIES_SUFFIX_KEY = "SDM.unsupportedPropertiesSuffix";
114-
public static final String MAX_COUNT_ERROR_MESSAGE_KEY = "SDM.maxCountErrorMessage";
115-
public static final String FETCH_CHANGELOG_ERROR_KEY = "SDM.fetchChangelogError";
116-
public static final String FAILED_TO_MOVE_ATTACHMENT_KEY = "SDM.failedToMoveAttachment";
117-
public static final String INVALID_SECONDARY_PROPERTIES_FOR_MOVE_PREFIX_KEY =
118-
"SDM.invalidSecondaryPropertiesForMovePrefix";
119-
public static final String INVALID_SECONDARY_PROPERTIES_FOR_MOVE_SUFFIX_KEY =
120-
"SDM.invalidSecondaryPropertiesForMoveSuffix";
121-
public static final String SDM_MOVE_OPERATION_FAILED_KEY = "SDM.sdmMoveOperationFailed";
61+
public static final String EVENT_CREATE_KEY = "SDM.eventCreate";
62+
public static final String EVENT_UPDATE_KEY = "SDM.eventUpdate";
12263
public static final String FAILED_TO_ACCESS_ERROR_KEY_FIELDS_KEY =
12364
"SDM.failedToAccessErrorKeyFields";
12465
public static final String FAILED_TO_ACCESS_ERROR_MESSAGES_FIELDS_KEY =

sdm/src/main/java/com/sap/cds/sdm/constants/SDMErrorMessages.java

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,8 @@ private SDMErrorMessages() {
1919

2020
public static final String COULD_NOT_UPDATE_THE_ATTACHMENT = "Could not update the attachment";
2121
public static final String ATTACHMENT_NOT_FOUND = "Attachment not found";
22-
public static final String GENERIC_ERROR = "Could not %s the document.";
23-
public static final String EVENT_UPLOAD = "upload";
24-
public static final String EVENT_DELETE = "delete";
22+
public static final String COULD_NOT_UPLOAD_DOCUMENT = "Could not upload the document.";
23+
public static final String COULD_NOT_DELETE_DOCUMENT = "Could not delete the document.";
2524
public static final String VERSIONED_REPO_ERROR =
2625
"Upload not supported for versioned repositories.";
2726
public static final String VIRUS_REPO_ERROR_MORE_THAN_400MB =
@@ -263,8 +262,12 @@ public static String getDuplicateFilesError(String filename) {
263262
return duplicateFilenameFormat(filenames);
264263
}
265264

266-
public static String getGenericError(String event) {
267-
return String.format(SDMUtils.getErrorMessage("GENERIC_ERROR"), event);
265+
public static String getCouldNotUploadDocument() {
266+
return SDMUtils.getErrorMessage("COULD_NOT_UPLOAD_DOCUMENT");
267+
}
268+
269+
public static String getCouldNotDeleteDocument() {
270+
return SDMUtils.getErrorMessage("COULD_NOT_DELETE_DOCUMENT");
268271
}
269272

270273
public static String getVirusFilesError(String filename) {

0 commit comments

Comments
 (0)