@@ -7,7 +7,7 @@ class CoCreateServerSideRender {
77 this . crud = crud ;
88 }
99
10- async HTML ( file ) {
10+ async HTML ( file , organization , urlObject , langRegion , lang ) {
1111 const self = this ;
1212 let ignoreElement = {
1313 INPUT : true ,
@@ -21,7 +21,7 @@ class CoCreateServerSideRender {
2121 let dep = [ ] ;
2222 let dbCache = new Map ( ) ;
2323 let organization_id = file . organization_id ;
24- const host = file . urlObject . hostname ;
24+ const host = urlObject . hostname ;
2525
2626 async function render ( dom , lastKey ) {
2727 // Handle elements with [array][key][object]
@@ -168,12 +168,16 @@ class CoCreateServerSideRender {
168168
169169 let dom = parse ( file . src ) ;
170170 dom = await render ( dom , "root" ) ;
171- if ( file . langRegion || file . lang ) {
172- dom = await this . translate ( dom , file ) ;
171+ if ( langRegion || lang ) {
172+ dom = await this . translate ( dom , file , langRegion , lang ) ;
173173 }
174174
175- if ( file . languages && file . languages . length > 0 ) {
176- let langLinkTags = this . createLanguageLinkTags ( file ) ;
175+ if ( organization . languages && organization . languages . length > 0 ) {
176+ let langLinkTags = this . createLanguageLinkTags (
177+ file ,
178+ organization ,
179+ urlObject
180+ ) ;
177181 const head = dom . querySelector ( "head" ) ;
178182 if ( head && langLinkTags ) {
179183 const linksFragment = parse ( langLinkTags ) ;
@@ -186,26 +190,24 @@ class CoCreateServerSideRender {
186190 }
187191 }
188192 }
189-
193+
190194 dep = [ ] ;
191195 dbCache . clear ( ) ;
192196 return dom . toString ( ) ;
193- } ;
197+ }
194198
195- createLanguageLinkTags ( file ) {
196- let generatedLinksString = `<link rel="alternate" hreflang="x-default" href="https://${ file . urlObject . hostname } ${ file . pathname } ">\n` ;
199+ createLanguageLinkTags ( file , organization , urlObject ) {
200+ let generatedLinksString = `<link rel="alternate" hreflang="x-default" href="https://${ urlObject . hostname } ${ file . pathname } ">\n` ;
197201
198- for ( const language of file . languages ) {
202+ for ( const language of organization . languages ) {
199203 let langPath = `/${ language } ${ file . pathname } ` ;
200- const hrefUrl = `https://${ file . urlObject . hostname } ${ langPath } ` ;
204+ const hrefUrl = `https://${ urlObject . hostname } ${ langPath } ` ;
201205 generatedLinksString += `<link rel="alternate" hreflang="${ language } " href="${ hrefUrl } ">\n` ;
202206 }
203207 return generatedLinksString ;
204208 }
205209
206- async translate ( dom , file ) {
207- let langRegion = file . langRegion ;
208- let lang = file . lang ;
210+ async translate ( dom , file , langRegion , lang ) {
209211 if ( file . translations && ( langRegion || lang ) ) {
210212 for ( let translation of file . translations ) {
211213 let elements = dom . querySelectorAll ( translation . selector ) || [ ] ;
@@ -220,10 +222,11 @@ class CoCreateServerSideRender {
220222 }
221223 }
222224 if ( translation . attributes ) {
223- for ( let [ key , language ] of Object . entries (
225+ for ( let [ key , languageObj ] of Object . entries (
224226 translation . attributes
225227 ) ) {
226- let value = language [ langRegion ] || language [ lang ] ;
228+ let value =
229+ languageObj [ langRegion ] || languageObj [ lang ] ;
227230 if ( value ) {
228231 el . setAttribute ( key , value ) ;
229232 }
0 commit comments