Skip to content
This repository was archived by the owner on Dec 19, 2023. It is now read-only.

Commit 320db48

Browse files
authored
translations for more strings (#197)
1 parent ba89125 commit 320db48

File tree

15 files changed

+138
-75
lines changed

15 files changed

+138
-75
lines changed

docs/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1767,7 +1767,7 @@ <h4 id="contributing-building-build"><a class="link" href="#contributing-buildin
17671767
</div>
17681768
<div id="footer">
17691769
<div id="footer-text">
1770-
Last updated 2018-01-03 12:37:41 CET
1770+
Last updated 2018-01-03 18:23:11 CET
17711771
</div>
17721772
</div>
17731773
<link rel="stylesheet" href="highlight/styles/github.min.css">

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/constraints/ConstraintAndGroupDescriptionResolver.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package capital.scalable.restdocs.constraints;
1818

19+
import static capital.scalable.restdocs.i18n.SnippetTranslationResolver.translate;
1920
import static java.util.Collections.emptyList;
2021
import static java.util.Collections.singletonMap;
2122
import static org.apache.commons.lang3.StringUtils.isBlank;
@@ -88,7 +89,7 @@ public String resolveGroupDescription(Class group, String constraintDescription)
8889
}
8990

9091
private String fallbackGroupDescription(Class group, String constraintDescription) {
91-
return constraintDescription + " (groups: [" + group.getSimpleName() + "])";
92+
return translate("constraints-groups", constraintDescription, group.getSimpleName());
9293
}
9394

9495
private String resolvePlainDescription(Constraint constraint) {

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/constraints/ConstraintReaderImpl.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
import static capital.scalable.restdocs.constraints.ConstraintAndGroupDescriptionResolver.VALUE;
2020
import static capital.scalable.restdocs.constraints.MethodParameterValidatorConstraintResolver
2121
.CONSTRAINT_CLASS;
22+
import static capital.scalable.restdocs.i18n.SnippetTranslationResolver.translate;
2223
import static capital.scalable.restdocs.util.FormatUtil.arrayToString;
2324
import static java.util.Collections.emptyList;
2425
import static java.util.Collections.singletonList;
@@ -120,7 +121,7 @@ private List<String> getEnumConstraintMessage(Class<?> rawClass) {
120121

121122
// fallback
122123
if (isBlank(message) || message.equals(enumName)) {
123-
message = "Must be one of " + value;
124+
message = translate("constraints-enum", value);
124125
}
125126
return singletonList(message);
126127
}

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/i18n/SnippetTranslationResolver.java

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616

1717
package capital.scalable.restdocs.i18n;
1818

19+
import java.text.MessageFormat;
1920
import java.util.Locale;
2021
import java.util.MissingResourceException;
2122
import java.util.ResourceBundle;
@@ -41,19 +42,23 @@ private static ResourceBundle getBundle(String name) {
4142
}
4243
}
4344

44-
public static String translate(String key) {
45+
public static String translate(String key, Object... args) {
4546
try {
4647
if (userMessages != null) {
47-
return userMessages.getString(key);
48+
return format(userMessages.getString(key), args);
4849
}
4950
} catch (MissingResourceException ex) {
5051
// Continue and return default description, if available
5152
}
52-
return defaultMessages.getString(key);
53+
return format(defaultMessages.getString(key), args);
5354
}
5455

5556
// visible for testing
56-
public static void setUserMessages(String name) {
57+
static void setUserMessages(String name) {
5758
userMessages = getBundle(name);
5859
}
60+
61+
private static String format(String message, Object[] args) {
62+
return new MessageFormat(message).format(args);
63+
}
5964
}

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/jackson/FieldDocumentationVisitorContext.java

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,11 @@
1919
import static capital.scalable.restdocs.constraints.ConstraintReader.CONSTRAINTS_ATTRIBUTE;
2020
import static capital.scalable.restdocs.constraints.ConstraintReader.DEPRECATED_ATTRIBUTE;
2121
import static capital.scalable.restdocs.constraints.ConstraintReader.OPTIONAL_ATTRIBUTE;
22+
import static capital.scalable.restdocs.i18n.SnippetTranslationResolver.translate;
2223
import static capital.scalable.restdocs.util.FieldUtil.fromGetter;
2324
import static capital.scalable.restdocs.util.FieldUtil.isGetter;
2425
import static capital.scalable.restdocs.util.FormatUtil.addDot;
26+
import static capital.scalable.restdocs.util.FormatUtil.join;
2527
import static capital.scalable.restdocs.util.TypeUtil.isPrimitive;
2628
import static org.apache.commons.lang3.StringUtils.isBlank;
2729
import static org.apache.commons.lang3.StringUtils.isNotBlank;
@@ -73,7 +75,7 @@ public void addField(InternalFieldInfo info, String jsonType) {
7375
Class<?> javaBaseClass = info.getJavaBaseClass();
7476
String javaFieldName = info.getJavaFieldName();
7577
String comment = resolveComment(javaBaseClass, javaFieldName);
76-
comment = attachTags(comment, resolveSeeTag(javaBaseClass, javaFieldName));
78+
comment = join("<br>", comment, resolveSeeTag(javaBaseClass, javaFieldName));
7779

7880
FieldDescriptor fieldDescriptor = fieldWithPath(jsonFieldPath)
7981
.type(jsonType)
@@ -168,18 +170,13 @@ private String resolveDeprecatedMessage(Class<?> javaBaseClass, String javaField
168170
}
169171
}
170172

171-
private String attachTags(String comment, String... tagComments) {
172-
for (String tagComment : tagComments) {
173-
if (isNotBlank(tagComment)) {
174-
comment += "<br>" + addDot(tagComment);
175-
}
176-
}
177-
return comment;
178-
}
179-
180173
private String resolveSeeTag(Class<?> javaBaseClass, String javaFieldName) {
181174
String comment = resolveTag(javaBaseClass, javaFieldName, "see");
182-
return isNotBlank(comment) ? "See " + comment : "";
175+
if (isNotBlank(comment)) {
176+
return addDot(translate("tags-see", comment));
177+
} else {
178+
return "";
179+
}
183180
}
184181

185182
private String resolveComment(Class<?> javaBaseClass, String javaFieldName) {

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/misc/DescriptionSnippet.java

Lines changed: 15 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,10 @@
1919
import static capital.scalable.restdocs.OperationAttributeHelper.determineTemplateFormatting;
2020
import static capital.scalable.restdocs.OperationAttributeHelper.getHandlerMethod;
2121
import static capital.scalable.restdocs.OperationAttributeHelper.getJavadocReader;
22+
import static capital.scalable.restdocs.i18n.SnippetTranslationResolver.translate;
2223
import static capital.scalable.restdocs.javadoc.JavadocUtil.convertFromJavadoc;
2324
import static capital.scalable.restdocs.util.FormatUtil.addDot;
25+
import static capital.scalable.restdocs.util.FormatUtil.join;
2426
import static org.apache.commons.lang3.StringUtils.capitalize;
2527
import static org.apache.commons.lang3.StringUtils.isNotBlank;
2628

@@ -50,9 +52,10 @@ protected Map<String, Object> createModel(Operation operation) {
5052

5153
JavadocReader javadocReader = getJavadocReader(operation);
5254
String methodComment = resolveComment(handlerMethod, javadocReader);
53-
String tagComment = resolveSeeTag(handlerMethod, javadocReader);
54-
String deprecated = resolveDeprecated(handlerMethod, javadocReader);
55-
String description = convertFromJavadoc(deprecated + methodComment + tagComment,
55+
String seeTagComment = resolveSeeTag(handlerMethod, javadocReader);
56+
String deprecatedComment = resolveDeprecated(handlerMethod, javadocReader);
57+
String completeComment = join("<p>", deprecatedComment, methodComment, seeTagComment);
58+
String description = convertFromJavadoc(completeComment,
5659
determineTemplateFormatting(operation));
5760

5861
model.put("description", description);
@@ -61,11 +64,10 @@ protected Map<String, Object> createModel(Operation operation) {
6164

6265
private String resolveDeprecated(HandlerMethod handlerMethod, JavadocReader javadocReader) {
6366
boolean isDeprecated = handlerMethod.getMethod().getAnnotation(Deprecated.class) != null;
64-
String comment = javadocReader.resolveMethodTag(handlerMethod.getBeanType(),
67+
String deprecatedDoc = javadocReader.resolveMethodTag(handlerMethod.getBeanType(),
6568
handlerMethod.getMethod().getName(), "deprecated");
66-
if (isDeprecated || isNotBlank(comment)) {
67-
comment = capitalize(addDot(comment));
68-
return "<b>Deprecated.</b> " + comment + "<p>";
69+
if (isDeprecated || isNotBlank(deprecatedDoc)) {
70+
return addDot(translate("tags-deprecated", capitalize(deprecatedDoc)));
6971
} else {
7072
return "";
7173
}
@@ -74,13 +76,17 @@ private String resolveDeprecated(HandlerMethod handlerMethod, JavadocReader java
7476
private String resolveComment(HandlerMethod handlerMethod, JavadocReader javadocReader) {
7577
String methodComment = javadocReader.resolveMethodComment(handlerMethod.getBeanType(),
7678
handlerMethod.getMethod().getName());
77-
return capitalize(addDot(methodComment));
79+
return addDot(capitalize(methodComment));
7880
}
7981

8082
private String resolveSeeTag(HandlerMethod handlerMethod, JavadocReader javadocReader) {
8183
String comment = javadocReader.resolveMethodTag(handlerMethod.getBeanType(),
8284
handlerMethod.getMethod().getName(), "see");
83-
return isNotBlank(comment) ? "<p>See " + addDot(comment) : "";
85+
if (isNotBlank(comment)) {
86+
return addDot(translate("tags-see", comment));
87+
} else {
88+
return "";
89+
}
8490
}
8591

8692
private Map<String, Object> defaultModel() {

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/section/SectionSnippet.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,10 @@ private String resolveTitle(HandlerMethod handlerMethod, JavadocReader javadocRe
125125
String deprecated = javadocReader.resolveMethodTag(handlerMethod.getBeanType(),
126126
handlerMethod.getMethod().getName(), "deprecated");
127127
if (isDeprecated || isNotBlank(deprecated)) {
128-
title += " (deprecated)";
128+
return translate("tags-deprecated-title", title);
129+
} else {
130+
return title;
129131
}
130-
return title;
131132
}
132133

133134
private String createTitle(String name) {

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/snippet/StandardTableSnippet.java

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,8 @@
2525
import static capital.scalable.restdocs.i18n.SnippetTranslationResolver.translate;
2626
import static capital.scalable.restdocs.javadoc.JavadocUtil.convertFromJavadoc;
2727
import static capital.scalable.restdocs.util.FormatUtil.addDot;
28+
import static capital.scalable.restdocs.util.FormatUtil.join;
2829
import static org.apache.commons.lang3.StringUtils.capitalize;
29-
import static org.apache.commons.lang3.StringUtils.join;
3030
import static org.apache.commons.lang3.StringUtils.trimToEmpty;
3131

3232
import java.util.ArrayList;
@@ -102,8 +102,9 @@ protected Map<String, Object> createModelForDescriptor(FieldDescriptor descripto
102102
String path = descriptor.getPath();
103103
String type = toString(descriptor.getType());
104104
String methodComment = resolveComment(descriptor);
105-
String deprecated = resolveDeprecated(descriptor);
106-
String description = convertFromJavadoc(deprecated + methodComment, templateFormatting);
105+
String deprecatedComment = resolveDeprecated(descriptor);
106+
String completeComment = join("<p>", deprecatedComment, methodComment);
107+
String description = convertFromJavadoc(completeComment, templateFormatting);
107108

108109
String optional = resolveOptional(descriptor, templateFormatting);
109110
List<String> constraints = resolveConstraints(descriptor);
@@ -132,7 +133,7 @@ private String resolveOptional(FieldDescriptor descriptor,
132133
TemplateFormatting templateFormatting) {
133134
List<String> optionalMessages = (List<String>) descriptor.getAttributes()
134135
.get(OPTIONAL_ATTRIBUTE);
135-
return "" + join(optionalMessages, templateFormatting.getLineBreak());
136+
return "" + join(templateFormatting.getLineBreak(), optionalMessages.toArray());
136137
}
137138

138139
private String resolveComment(FieldDescriptor descriptor) {
@@ -142,7 +143,7 @@ private String resolveComment(FieldDescriptor descriptor) {
142143
private String resolveDeprecated(FieldDescriptor descriptor) {
143144
Object deprecated = descriptor.getAttributes().get(DEPRECATED_ATTRIBUTE);
144145
if (deprecated != null) {
145-
return "<b>Deprecated.</b> " + capitalize(addDot(toString(deprecated))) + "<p>";
146+
return addDot(translate("tags-deprecated", capitalize(toString(deprecated))));
146147
} else {
147148
return "";
148149
}
@@ -151,7 +152,7 @@ private String resolveDeprecated(FieldDescriptor descriptor) {
151152
private String resolveDefaultValue(FieldDescriptor descriptor) {
152153
Object defaultValue = descriptor.getAttributes().get(DEFAULT_VALUE_ATTRIBUTE);
153154
if (defaultValue != null) {
154-
return "Default value: \"" + toString(defaultValue) + "\".";
155+
return addDot(translate("default-value", toString(defaultValue)));
155156
} else {
156157
return "";
157158
}

spring-auto-restdocs-core/src/main/java/capital/scalable/restdocs/util/FormatUtil.java

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,23 @@ public static String arrayToString(Object[] o) {
1313
}
1414

1515
public static String addDot(String text) {
16-
return isNotBlank(text) && !text.endsWith(".") ? text + "." : text;
16+
return isNotBlank(text) && !text.endsWith(".") && !text.endsWith(" ")
17+
? text + "."
18+
: text;
19+
}
20+
21+
public static String join(String delimiter, Object... texts) {
22+
StringBuilder result = new StringBuilder();
23+
for (Object text : texts) {
24+
if (text != null && isNotBlank(text.toString())) {
25+
result.append(text.toString());
26+
result.append(delimiter);
27+
}
28+
}
29+
if (result.length() > 0) {
30+
return result.substring(0, result.length() - delimiter.length());
31+
} else {
32+
return result.toString();
33+
}
1734
}
1835
}

spring-auto-restdocs-core/src/main/resources/capital/scalable/restdocs/i18n/DefaultSnippetMessages.properties

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,4 +19,10 @@ no-headers=No headers.
1919
pagination-request-adoc=Supports standard <<overview-pagination,paging>> query parameters.
2020
pagination-request-md=Supports standard [paging](#overview-pagination) query parameters.
2121
pagination-response-adoc=Standard <<overview-pagination,paging>> response where `content` field is list of following objects:
22-
pagination-response-md=Standard [paging](#overview-pagination) response where `content` field is list of following objects:
22+
pagination-response-md=Standard [paging](#overview-pagination) response where `content` field is list of following objects:
23+
constraints-groups={0} (groups: [{1}])
24+
constraints-enum=Must be one of {0}
25+
tags-deprecated=<b>Deprecated.</b> {0}
26+
tags-deprecated-title={0} (deprecated)
27+
tags-see=See {0}
28+
default-value=Default value: ''{0}''

0 commit comments

Comments
 (0)