@@ -126,15 +126,7 @@ private void runOnFile(RdfToolkitOptions rdfToolkitOptions) throws Exception {
126126 IRI replacedPredicate = st .getPredicate ();
127127 //Replaced language serialization
128128 if (modelObject instanceof Literal ) {
129- Optional <String > lang = ((Literal ) modelObject ).getLanguage ();
130- if (lang .isPresent () && lang .get ().contains ("-" )) {
131- String langString = lang .get ();
132- String [] langTab = langString .split ("-" );
133- langTab [1 ] = langTab [1 ].toUpperCase ();
134- langString = String .join ("-" , langTab );
135- String label = ((Literal ) modelObject ).getLabel ();
136- modelObject = valueFactory .createLiteral (label , langString );
137- }
129+ modelObject = secondPartOfLangToUpperCaseIfNotX (modelObject );
138130 }
139131 // Do any URI replacements
140132 if (isIriPatternAndIriReplacementNotNull ) {
@@ -220,6 +212,20 @@ private void runOnFile(RdfToolkitOptions rdfToolkitOptions) throws Exception {
220212 targetWriter .close ();
221213 }
222214
215+ private Value secondPartOfLangToUpperCaseIfNotX (Value modelObject ) {
216+ Optional <String > lang = ((Literal ) modelObject ).getLanguage ();
217+ if (lang .isPresent () && lang .get ().contains ("-" )) {
218+ String langString = lang .get ();
219+ String [] langTab = langString .split ("-" );
220+ // Convert the second part of the language string to uppercase, except if the entire second part is 'x'
221+ if (!langTab [1 ].equals ("x" )) { langTab [1 ] = langTab [1 ].toUpperCase (); }
222+ langString = String .join ("-" , langTab );
223+ String label = ((Literal ) modelObject ).getLabel ();
224+ modelObject = valueFactory .createLiteral (label , langString );
225+ }
226+ return modelObject ;
227+ }
228+
223229 private Model readModel (RdfToolkitOptions rdfToolkitOptions ) {
224230 Model sourceModel = null ;
225231 try {
0 commit comments