@@ -206,6 +206,68 @@ public function testDefaultTranslationDomainWithNamedArguments()
206
206
$ this ->assertEquals ('foo (custom)foo (foo)foo (custom)foo (custom)foo (fr)foo (custom)foo (fr) ' , trim ($ template ->render ([])));
207
207
}
208
208
209
+ public function testDefaultTranslationDomainWithExpression ()
210
+ {
211
+ $ templates = [
212
+ 'index ' => '
213
+ {%- extends "base" %}
214
+
215
+ <
8000
span class=pl-s> {%- trans_default_domain custom_domain %}
216
+
217
+ {%- block content %}
218
+ {{- "foo"|trans }}
219
+ {%- endblock %}
220
+ ' ,
221
+
222
+ 'base ' => '
223
+ {%- block content "" %}
224
+ ' ,
225
+ ];
226
+
227
+ $ translator = new Translator ('en ' );
228
+ $ translator ->addLoader ('array ' , new ArrayLoader ());
229
+ $ translator ->addResource ('array ' , ['foo ' => 'foo (messages) ' ], 'en ' );
230
+ $ translator ->addResource ('array ' , ['foo ' => 'foo (custom) ' ], 'en ' , 'custom ' );
231
+ $ translator ->addResource ('array ' , ['foo ' => 'foo (foo) ' ], 'en ' , 'foo ' );
232
+
233
+ $ template = $ this ->getTemplate ($ templates , $ translator );
234
+
235
+ $ this ->assertEquals ('foo (foo) ' , trim ($ template ->render (['custom_domain ' => 'foo ' ])));
236
+ }
237
+
238
+ public function testDefaultTranslationDomainWithExpressionAndInheritance ()
239
+ {
240
+ $ templates = [
241
+ 'index ' => '
242
+ {%- extends "base" %}
243
+
244
+ {%- trans_default_domain foo_domain %}
245
+
246
+ {%- block content %}
247
+ {{- "foo"|trans }}
248
+ {%- endblock %}
249
+ ' ,
250
+
251
+ 'base ' => '
252
+ {%- trans_default_domain custom_domain %}
253
+
254
+ {{- "foo"|trans }}
255
+ {%- block content "" %}
256
+ {{- "foo"|trans }}
257
+ ' ,
258
+ ];
259
+
260
+ $ translator = new Translator ('en ' );
261
+ $ translator ->addLoader ('array ' , new ArrayLoader ());
262
+ $ translator ->addResource ('array ' , ['foo ' => 'foo (messages) ' ], 'en ' );
263
+ $ translator ->addResource ('array ' , ['foo ' => 'foo (custom) ' ], 'en ' , 'custom ' );
264
+ $ translator ->addResource ('array ' , ['foo ' => 'foo (foo) ' ], 'en ' , 'foo ' );
265
+
266
+ $ template = $ this ->getTemplate ($ templates , $ translator );
267
+
268
+ $ this ->assertEquals ('foo (custom)foo (foo)foo (custom) ' , trim ($ template ->render (['foo_domain ' => 'foo ' , 'custom_domain ' => 'custom ' ])));
269
+ }
270
+
209
271
private function getTemplate ($ template , ?TranslatorInterface $ translator = null ): TemplateWrapper
210
272
{
211
273
$ translator ??= new Translator ('en ' );
0 commit comments