The following has evaluated to null or missing: ==> FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale ) [in template "252001#252047#252845" at line 128, column 37] ---- Tip: If the failing expression is known to legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)?? ---- ---- FTL stack trace ("~" means nesting-related): - Failed at: dMTJsonObject = FrontendService.media... [in template "252001#252047#252845" at line 128, column 21] ----
1<#-- used @ Veranstaltung-Detailseite Intro
2 used @ Publikation-Detailseite Intro
3-->
4
5<#--
6Web content templates to display teaser on thema detail page
7
8Generic template for detail pages Intro / Teaser element
9-->
10<#--
11Display the current page title
12-->
13<#include "${fullTemplatesPath}/functions/relatedContentUtil.ftl" />
14<#include "${fullTemplatesPath}/macros/debugging.ftl" />
15
16<#include "${fullTemplatesPath}/macros/page-modules/PMIntro.ftl" />
17<#include "${fullTemplatesPath}/macros/atomic-modules/AMPublicationCarousel.ftl" />
18<#include "${fullTemplatesPath}/macros/atomic-modules/AMMetadata.ftl" />
19<#include "${fullTemplatesPath}/macros/atomic-modules/AMDatetime.ftl" />
20
21
22<#--
23 renders the Intro for nearly all Pages
24 TODO: remove Share? (was in the designs, but not anymore?)
25 TODO: check if languageSelect/filter are working (js)
26
27 - portletId
28 - data = {
29 "media": string (src from image),
30 "category": string,
31 "title": string,
32 "author": string,
33 "subheadline": string,
34 "copy": string,
35 "filter": {
36 "id": string,
37 "name": string,
38 "entries": Array<Object> ({key:value}),
39 },
40 "languageSelect": {
41 "id": string,
42 "name": string,
43 "entries": Array<Object> ({key:value}),
44 },
45 "meta": {
46 "pos"; string (top/bottom)
47 "date": string,
48 "hash": string,
49 "info": string, (url)
50 },
51 "share" : {
52 "login": string,
53 "print": string,
54 "mail": string,
55 "multishare": string?? (tbd)
56 }
57 - AMMetadata: macro
58 - position: String ("top") -> defines wether the meta-data should be rendered above or below the intro-content
59 }
60-->
61
62<#assign
63 JournalArticleLocalService = serviceLocator.findService("com.liferay.journal.service.JournalArticleLocalService")
64
65 ServiceContext = staticUtil["com.liferay.portal.kernel.service.ServiceContextThreadLocal"].getServiceContext()
66 DLAPP = serviceLocator.findService("com.liferay.document.library.kernel.service.DLAppLocalService")
67
68 themeDisplay = ServiceContext.getThemeDisplay()
69 editmode = FrontendService.user.isPrivilegedUser(themeDisplay)
70
71 languageId = themeDisplay.getLocale()
72 groupId = themeDisplay.getScopeGroupId()
73 currentUrl = themeDisplay.getURLCurrent()
74
75 layout = themeDisplay.getLayout()
76 layouttpl = layout.getTypeSettingsProperties().getProperty("layout-template-id")
77/>
78
79<#setting locale="${languageId}">
80
81<#-- get article from url -->
82
83<#assign entry = FrontendService.article.getArticleToUrl(currentUrl, groupId?number)! >
84
85
86<#if entry?has_content>
87
88 <#if entry.resourcePrimKey??>
89 <#assign primaryKey = entry.resourcePrimKey?number >
90 <#elseif entry.classPK??>
91 <#assign primaryKey = entry.classPK?number >
92 </#if>
93
94 <#assign
95 jsonString = FrontendService.article.getWebcontent(primaryKey)
96 json = FrontendService.json.parseAsJson(jsonString)
97 availablelanguages = FrontendService.article.getAssetEntryToUrl(primaryKey).getAvailableLanguageIds()
98
99 title = entry.getTitle(languageId)
100 data = {
101 "title": title
102 }
103 />
104 <@debugJsonString jsonString "ADT_KASDE_DYNAMIC_INTRO" />
105
106 <#if hasContent('untertitel', languageId, json)>
107 <#assign data = data + { "subheadline": getValueForLanguage('untertitel', languageId, json, "first") } >
108 </#if>
109
110 <#if hasContent('beschreibung', languageId, json)>
111 <#assign data = data + { "copy": getValueForLanguage('beschreibung', languageId, json, "first") } >
112 </#if>
113
114 <#-- fill meta data -->
115 <#assign meta = {} />
116
117 <#-- PUBLIKATIONEN DETAIL -->
118 <#if layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL")>
119
120 <#if hasContent('coverDMTKASDEMEDIUM', languageId, json)>
121 <#assign
122 coverBildString = getValueForLanguage('coverDMTKASDEMEDIUM', languageId, json, "first")
123 />
124
125 <#if coverBildString?has_content>
126 <#assign
127 coverBild = FrontendService.json.parseAsJson(coverBildString)
128 dMTJsonObject = FrontendService.media.getDMTJsonObject( coverBild.groupId?number, coverBild.uuid, locale )
129 linkToDMT = FrontendService.media.getImageURLForAMConfiguration('hd-resolution',coverBild.groupId?number, coverBild.uuid )
130 data = data + { "media": linkToDMT, "meta" : dMTJsonObject }
131 />
132 <#if dMTJsonObject.altText?? >
133 <#assign data = data + {"alt" : dMTJsonObject.altText} />
134 </#if>
135 <#if dMTJsonObject.quelle??>
136 <#assign meta = meta + { "quelle": dMTJsonObject.quelle } />
137 </#if>
138 </#if>
139 <#-- uncomment to display pdf cover as Intro Image
140 <#elseif hasContent('document_pdfDMTBASICDOCUMENT', languageId, json)>
141 <#assign
142 pdfDocument = getValueForLanguage('document_pdfDMTBASICDOCUMENT', languageId, json, "first")
143 fileEntry = FrontendService.media.getFileEntry(pdfDocument.uuid, groupId?number)!/>
144 <#if fileEntry?has_content>
145 <#assign
146 linkToThumbnail = FrontendService.link.getThumbnailSrc(fileEntry , themeDisplay)
147 data = data + { "media": linkToThumbnail }
148 />
149 </#if>
150 -->
151 </#if>
152
153 <#assign
154 meta = meta + { "orderInfo": "true" }
155 verbundJournalArticle = FrontendService.publication.getVerbundToPublikation( entry )!""
156 />
157
158
159
160 <#if hasContent('erscheinungsdatum', languageId, json)>
161 <#assign
162 erscheinungsdatum = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
163 />
164 <#if erscheinungsdatum?has_content >
165 <#assign
166 erscheinungsdatumFormatted = FrontendService.date.getDateFormatLong( erscheinungsdatum, languageId )
167 meta = meta + { "date": erscheinungsdatumFormatted }
168 />
169 </#if>
170 </#if>
171
172 <#if verbundJournalArticle?has_content>
173 <#assign
174 verbundJsonString = FrontendService.article.getWebcontent(verbundJournalArticle.resourcePrimKey)
175 verbundJson = FrontendService.json.parseAsJson(verbundJsonString)
176 laufendenummer = getValueForLanguage('laufendenummer', languageId, verbundJson, "first")
177 coverImg = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, verbundJson, "first")
178 />
179 <@debugJsonString verbundJsonString "ADT_KASDE_DYNAMIC_INTRO-verbundJournalArticle" />
180 <#assign meta = meta + { "laufendenummer": laufendenummer } >
181
182 <#if coverImg?has_content && coverImg.url?has_content >
183 <#assign meta = meta + { "coverImg": coverImg.url } >
184 </#if>
185 </#if>
186
187
188 <#if meta?has_content>
189 <#assign data = data + {"meta": meta } >
190 </#if>
191
192 </#if>
193 <#-- PUBLIKATIONEN DETAIL END -->
194
195
196 <#-- VERANSTALTUNGEN DETAIL -->
197 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL")>
198 <#assign
199 friendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, languageId, groupId)!""
200 links = []
201 />
202 <#if availablelanguages?has_content && friendlyUrl?has_content>
203 <#if (availablelanguages?size > 1) >
204 <#list availablelanguages as language>
205 <#assign
206 defaultLanguage = "de_DE"
207 defaultLocale = FrontendService.language.getLocaleByKey(defaultLanguage)
208 linkLocale = (FrontendService.language.getLocaleByKey(language))!defaultLocale
209 langFriendlyUrl = FrontendService.article.getFriendlyUrl(primaryKey, linkLocale, groupId)
210
211 link = {
212 "key": language!defaultLanguage,
213 "value": linkLocale.getDisplayLanguage(languageId),
214 "url": "/c/portal/update_language?p_l_id=" +
215 layout.plid + "&redirect=" + langFriendlyUrl +
216 "&languageId=" + language
217 }
218 />
219 <#if language == languageId>
220 <#assign link = link + { "selected": "true" } >
221 </#if>
222 <#assign links = links + [link]>
223 </#list>
224 <#assign
225 data = data + {
226 "languageSelect": {
227 "id": "languageSelectRedirect",
228 "name": "languageselectRedirect",
229 "entries": links,
230 "label": languageUtil.get(languageId, "diese.veranstaltung.ist.in.weiteren.sprachen.verfuegbar")
231 }
232 }
233 />
234 </#if>
235 </#if>
236 </#if>
237
238 <#if hasContent('erscheinungsdatum', languageId, json)>
239 <#assign
240 startdate = getValueForLanguage('erscheinungsdatum', languageId, json, "first")
241 meta = meta + { "start": startdate?date.iso, "end": "" }
242 />
243 </#if>
244
245 <#if hasContent('startdatum', languageId, json)>
246 <#assign
247 startdate = getValueForLanguage('startdatum', languageId, json, "first")
248 meta = meta + { "start": startdate?date.iso, "end": "" }
249 />
250 </#if>
251
252 <#if hasValue('einfuehrungText', locale, json)>
253 <#assign data = data + { "einfuehrungText" : getValueForLanguage('einfuehrungText', locale, json, "first") } >
254 <#elseif hasValue(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first")>
255 <#assign data = data + { "einfuehrungText" : getValueForLanguage(FrontendService.article.getFieldNameByReferenceName(primaryKey, 'einfuehrungText'), locale, json, "first") } >
256 </#if>
257
258 <#if hasContent('endedatum', languageId, json)>
259 <#assign
260 enddate = getValueForLanguage('endedatum', languageId, json, "first")
261 meta = meta + { "end": enddate?date.iso }
262 />
263 </#if>
264
265 <#if hasContent('startzeit', languageId, json)>
266 <#assign
267 startzeit = getValueForLanguage('startzeit', languageId, json, "first")
268 />
269 <#if startzeit?has_content >
270 <#assign meta = meta + { "startzeit": startzeit } />
271 </#if>
272 </#if>
273
274 <#if hasContent('endezeit', languageId, json)>
275 <#assign
276 endezeit = getValueForLanguage('endezeit', languageId, json, "first")
277 meta = meta + { "endezeit": endezeit }
278 />
279 </#if>
280
281 <#if hasContent('ortWCSKASDEORT', languageId, json)>
282 <#assign
283 ortWCSKASDEORT = FrontendService.json.parseAsJson(getValueForLanguage('ortWCSKASDEORT', languageId, json, "first"))
284 ortWCSKASDEORTPrimaryKey = ortWCSKASDEORT.classPK?number
285 ortWCSKASDEORTWebContent = FrontendService.article.getWebcontentByPk(ortWCSKASDEORTPrimaryKey)!""
286 />
287 <#if ortWCSKASDEORTWebContent?has_content >
288 <#assign
289 ortWCSKASDEORTTitle = ortWCSKASDEORTWebContent.getTitle(languageId)!""
290 />
291 <#if ortWCSKASDEORTTitle?has_content >
292 <#assign
293 meta = meta + { "ortWCSKASDEORT": ortWCSKASDEORTTitle }
294 />
295 </#if>
296 </#if>
297 </#if>
298
299
300 <#if hasContent('veranstaltungsnummer', languageId, json)>
301 <#assign
302 verauuid = getValueForLanguage('veranstaltungsnummer', languageId, json, "first")
303 meta = meta + { "verauuid": verauuid }
304 />
305 </#if>
306
307
308 <#if (data.meta)?has_content >
309 <#assign meta = data.meta />
310 </#if>
311
312 <#if !(data.media)?has_content && hasContent('mediumDMTKASDEMEDIUM', languageId, json)>
313 <#assign
314 medium = getValueForLanguage('mediumDMTKASDEMEDIUM', languageId, json, "first")
315 mediaData = getRelatedMediaObject(medium, themeDisplay, languageId, FrontendService, "hd-resolution")
316 />
317 <#assign data = data + { "media": mediaData.url , "meta" : mediaData.meta} >
318
319
320 <#if mediaData.meta?? && mediaData.meta.quelle??>
321 <#assign meta = meta + data.meta + { "quelle": mediaData.meta.quelle } />
322 </#if>
323 </#if>
324
325
326 <#if meta?has_content>
327 <#assign data = data + {"meta": meta } >
328 </#if>
329
330 <#-- END fill meta data -->
331
332 <#if hasContentForSequence('autorenWCSKASDEPERSON', languageId, json)>
333 <#assign
334 journalArticles = getValueForLanguageAnsprechpartner('autorenWCSKASDEPERSON', languageId, json)
335 authors = []
336 />
337 <#list journalArticles as articleString>
338 <#assign article = FrontendService.json.parseAsJson(articleString) />
339 <#if article?has_content && article?is_hash && article.classPK??>
340 <#assign articleDereferenced = FrontendService.person.resolveContactInstanceToPerson(article, languageId)!"" />
341 <#if articleDereferenced?has_content >
342 <#assign
343 author = ""
344 articlePrimaryKey = articleDereferenced.classPK?number
345 articleJsonString = FrontendService.article.getWebcontent(articlePrimaryKey)
346 articleJson = FrontendService.json.parseAsJson(articleJsonString)
347 />
348 <@debugJsonString articleJsonString "ADT_KASDE_DYNAMIC_INTRO-autorenWCSKASDEPERSON" />
349 <#if hasValue('anredetitel', languageId, articleJson)>
350 <#assign author = author + getValueForLanguage('anredetitel', languageId, articleJson, " ") + " ">
351 </#if>
352 <#if hasValue('vorname', languageId, articleJson)>
353 <#assign author = author + getValueForLanguage('vorname', languageId, articleJson, " ") + " ">
354 </#if>
355 <#if hasValue('nachname', languageId, articleJson)>
356 <#assign author = author + getValueForLanguage('nachname', languageId, articleJson, " ") + " ">
357 </#if>
358
359 <#attempt>
360 <#assign href = FrontendService.article.getFriendlyUrl(articlePrimaryKey, languageId, groupId)!"#" >
361 <#recover>
362 <#assign href = "#" >
363 </#attempt>
364 <#if href?has_content && href != "#" && href != "/_404">
365 <#assign author = '<a href="' + href + '">' + author?trim + '</a>'>
366 </#if>
367
368 <#assign authors = authors + [author?trim]>
369 </#if>
370 </#if>
371 </#list>
372 <#if authors?has_content>
373 <#assign data = data + { "author": authors?join(", ") } >
374 </#if>
375 </#if>
376
377 <#if layouttpl?contains("LAYOUT_KASDE_VERANSTALTUNGEN_DETAIL") >
378 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "VERANSTALTUNGSTYP")! >
379 <#if categories?has_content && categories[0]?has_content >
380 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
381 </#if>
382
383 <#if hasContent('ausgebucht', languageId, json)>
384 <#assign data = data + { "ausgebucht" : getValueForLanguage('ausgebucht', languageId, json, "first") }>
385 </#if>
386
387 <#if hasContent('storniert', languageId, json)>
388 <#assign data = data + { "storniert" : getValueForLanguage('storniert', languageId, json, "first") }>
389 </#if>
390
391 <#elseif layouttpl?contains("LAYOUT_KASDE_PUBLIKATIONEN_DETAIL") >
392 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "PUBLIKATIONSREIHE")! >
393 <#if categories?has_content && categories[0]?has_content >
394 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
395 </#if>
396 <#else>
397 <#assign categories = FrontendService.category.getCategoriesToArticle(primaryKey, "THEMA")! >
398 <#if categories?has_content && categories[0]?has_content >
399 <#assign data = data + { "category": categories[0].getTitle(languageId,true)! } >
400 </#if>
401 </#if>
402
403
404 <#assign
405 languages = []
406 />
407
408 <#attempt>
409 <#if json["document_pdfDMTBASICDOCUMENT"]?? >
410 <#if availablelanguages?has_content>
411 <#list availablelanguages as pdf_language>
412 <#assign
413 docRefJson = getValueForLanguage('document_pdfDMTBASICDOCUMENT', pdf_language, json, "first")
414 docRef = FrontendService.json.parseAsJson(docRefJson)
415 />
416 <#if docRef?is_hash && pdf_language != languageId >
417 <#assign
418 lang = FrontendService.language.getLocaleByKey(pdf_language)!""
419 docGroupId = docRef["groupId"]?number
420 docUuid = docRef["uuid"]
421 dMTJsonObject = FrontendService.media.getDMTJsonObject( docGroupId, docUuid, locale )
422 dMTLink = FrontendService.media.getLinkToDMT( dMTJsonObject )
423 />
424 <#if lang?has_content>
425 <#assign
426 languages = languages + [
427 {
428 "key": pdf_language,
429 "value": FrontendService.language.getLocaleByKey(pdf_language).getDisplayLanguage(),
430 "url": dMTLink
431 }]
432 />
433 </#if>
434 </#if>
435 </#list>
436 </#if>
437 </#if>
438 <#recover>
439 </#attempt>
440
441 <#if (languages?size > 0)>
442 <#attempt>
443 <#assign
444 data = data + { "languageSelect": {
445 "id": "languageSelect",
446 "name": "languageselect",
447 "entries": languages,
448 "documents": "",
449 "button": "true"
450 }}
451 />
452 <#recover>
453 </#attempt>
454 </#if>
455
456 <@PMIntro "ADT_KASDE_DYNAMIC_INTRO" data AMMetadata AMDatetime "bottom" />
457 ${FrontendService.article.getEditArticleHtml(primaryKey, themeDisplay)}
458
459 <#if data.meta?has_content>
460 <#if data.meta.laufendenummer?has_content !isACColorScheme() && !isVLCColorScheme() && !isDPMColorScheme()>
461 <div>
462 <div id="publicationVerbundPagination">
463 <@AMPublicationCarousel data.meta.laufendenummer data.meta.date data.meta.coverImg />
464 </div>
465 </div>
466 </#if>
467 </#if>
468
469<#elseif (editmode?? && editmode)>
470 <@errorMessage languageUtil.get(locale, "kein.journalArticle.gefunden") "ADT_KASDE_DYNAMIC_INTRO" layouttpl currentUrl />
471</#if>
Nach dem wenig überraschenden Rücktritt von Yoshihide Suga, der in seiner kurzen Amtszeit vor enormen Herausforderungen stand, übernahm am 29. September dieses Jahres Fumio Kishida (64) den Parteivorsitz der Liberaldemokraten (LDP) und am 4. Oktober das Amt des Premierministers. Kishida, der aus familiärer Verbundenheit seinen Heimatwahlkreis Hiroshima I seit 1996 im nationalen Parlament vertritt, ist Japans längst-gedienter Außenminister (2012-2017). Nach zwei erfolglosen Versuchen, die LDP zu anzuführen (2018, 2020), setzte sich Kishida gegen drei starke Kandidaten durch.
Zum ersten Mal überhaupt bewarben sich zwei Frauen um das Präsidentenamt der regierenden LDP. Dass sie unterlagen, ist weniger ihren sehr unterschiedlichen politischen Inhalten als der fehlenden innerparteilichen Unterstützung geschuldet und verweist auf ein endemisches Problem: Frauen werden diese Führungspositionen noch nicht zugetraut. Das positive Echo auf die Aussicht, dass Japan von einer Frau hätte regiert werden können, setzt die konservative LDP etwas unter Zugzwang. Das einst unter Shinzo Abe ausgegebene Ziel, bis 2020 mindestens 30% mehr weibliche Führungskräfte zu benennen, wurde wegen grober Zielverfehlung gekappt und kurzerhand auf 2030 verschoben. Im Ergebnis belegt Japan Platz 120 (von 156) im Global Gender Gap Report 2021 des World Economic Forums. Bezeichnend dafür ist der geringe Frauenanteil im neuen Parlament: sie stellen nicht einmal 10% der gesamten Mandate (Gesamtanzahl der Sitze 465). Den höchsten Frauenanteil bietet die Constitutional Democratic Party mit 13,5% auf. In der LDP finden sich lediglich 7,6% Frauen. Grund genug für die LDP und die Regierung, endlich zu liefern.
Und Kishida könnte liefern. Er hat die Unterhauswahlen am 31. Oktober mit sehr großem Abstand zu den unsortierten Oppositionsparteien gewonnen (48,05%, 261 von 465 Sitzen) und kann sich – nach der erneuten Bestätigung als Premierminister und Vereidigung seines zweiten Kabinetts Mitte November – ganz der Umsetzung der üppigen Wahlversprechen widmen, die maßgeblich von den konservativen Kräften der LDP um Abe formuliert wurden. Erhebliche Subventionen für kleine und mittelständische Unternehmen (Post-Covid Wachstumsförderung), massive Investitionen in neue Technologien, Zuschüsse für digitalen und technologischen Umbau der Unternehmen, Förderung und Ausbau erneuerbarer Energien, Steuerreformen und Vermögensverteilung sowie die Erhöhung des Verteidigungshaushalts auf deutlich über 2% sind die budgetintensivsten, zugleich wichtigsten Vorhaben der LDP. Frauenförderung, oder überhaupt „Womenomics“, ist erneut keines der drängenden Themen, die Kishida und sein neues Kabinett immediat angehen wird. Wirtschaftlich wird sich diese Nachlässigkeit rächen. Japan braucht eine stabile Frauenerwerbsquote, und die ist nur mit überarbeiteten Einstellungs- und Beförderungsrichtlinien und -prozessen zu erreichen.
Drei bestimmende Schwerpunkte: Arbeitskräfte, Wirtschaftswachstum und Klimaneutralität
Die Uno-Weltbevölkerungsprognose (2019) sagt voraus, dass Japans Erwerbsbevölkerung (15- bis 64-jährige) zwischen 2020 und 2050 ein Defizit von 21 bis 54 Millionen aufweisen wird. Die Bevölkerung der ab 65-jährigen wird sich von 18 Millionen (Stand 1995) auf 34 Millionen (2045) nahezu verdoppeln. 2025 wird jede dritte Japanerin oder jeder dritte Japaner 65 Jahre oder älter sein. Der Abhängigkeitsquotient (Anteil der Nichterwerbstätigen auf 100 Erwerbstätige) wird in dieser Zeit von 69% auf 97% steigen – der höchste Wert in der OECD. Diese Zahlen könnten noch drastischer sein, bliebe die Arbeitslosenquote so niedrig wie bisher. Dem Rückgang der Erwerbstätigen will Japan seit Abe mit dem vielzitierten „Society 5.0“ Programm beikommen, welches, wie in den Wahlprogrammen beschrieben, Investitionen und Entwicklung von Technologien vorsieht, die Arbeitskräfte ersetzen oder entlasten können. Kishida wird sich in seiner Amtszeit ebenso mit der Problematik der Arbeitsmigration und der Reform der Einwanderung beschäftigen müssen.
Drängender jedoch sind weitere Entlastungen für die Pandemie-geplagte Wirtschaft. Die umfangreichen Maßnahmen der Regierung für die KMU während der Pandemie haben dazu beigetragen, dass Unternehmensinsolvenzen minimal blieben. Das Spektrum arbeitsspezifischer Fördermaßnahmen umfasste Teilkündigungen, Lohnzuschüsse und Zuschüsse für Selbständige. Zweitens erlaubte es einen Zahlungsaufschub für Einkommensteuer, Miete und Nebenkosten. Drittens stellte die Regierung drei Arten finanzieller Unterstützung bereit: Darlehensgarantien, Direktdarlehen und Zuschüsse zu Subventionen. Die neuen strukturellen Richtlinien betrafen Telearbeit und Digitalisierung, Innovation und Ausbildung sowie Umgruppierungen und Versetzungen. Im Oktober 2021 erließ die japanische Regierung verschiedene Vorsorgepläne und etliche Beihilferegularien zur Aufrechterhaltung der Beschäftigung. Sonderauszahlungen an Zeitarbeiter und eine Neuauflage des Subventionsprogramms „Go to Travel“ gehören in diesen Maßnahmenkatalog ebenso wie die Auflage eines neuen Konjunkturpakets, welches im November geschnürt sein soll. Maßgebliche Höhe des Pakets: 325 Milliarden EUR.
Viel grundsätzlicher ist Kishidas Absicht, eine "neue Form des japanischen Kapitalismus" zu etablieren. Jenseits der mit Deregulierung und schuldenfinanzierter Konjunkturprogramme erzielten Unternehmensgewinne und Beschäftigung möchte Kishida nachhaltiges Wachstum schaffen. Er wirbt folglich für eine ganzheitliche Sicht auf die Wirtschaft. Sein Ziel ist es, möglichst viele Menschen, insbesondere die Mittelklasse, vom Wachstum profitieren zu lassen und verspricht u.a. deutlich höhere Löhne für Arbeitnehmer. Aus neoliberal wird nun sozial.
Die dritte große Aufgabe, vor der Kishidas neue Regierung steht, ist das Versprechen, Japan bis 2050 klimaneutral wirtschaften zu lassen. Drastische Emissionsreduzierung war einst Sugas großer Wurf, den Kishida auf dem COP26, der Klimakonferenz der Vereinten Nationen in Glasgow am 3. November, mit weiteren Zusagen übertraf. Bis 2030 will das ressourcenarme Japan als fünftgrößter Emittent seinen Anteil erneuerbarer Energien am Strommix auf 50% erhöhen. Die Kohleverstromung soll heruntergefahren werden, gleichzeitig sind die industrielle Nutzung von CO2 sowie industriefähigem Wasserstoff wichtige Komponenten für das hehre Klimaneutralitätsziel. Kishida möchte Japan an der Spitze der globalen grünen Industrie sehen. Bei kluger Verzahnung mit seinen nachhaltigen Wachstumszielen könnte dies sogar gelingen.
Nach der Wahl ist in Japan immer auch vor der Wahl
Schon im Juli 2022 stehen die Oberhauswahlen an und Kishida benötigt bis dahin überzeugende Arbeitsergebnisse, um gefestigt im Amt zu sein. Er muss die Faktionen innerhalb der LDP ihm gewogen halten, das gilt insbesondere für die gewichtige Gruppe um Shinzo Abe. Kishidas bisherige Agenda ist bis auf das stark sozial ausgerichtete Wirtschaftsprogramm maßgeblich von seinen Vorgängern geprägt. Zugleich bestimmt die COVID-Pandemie auch in ihrem dritten Jahr fast vollständig das politische Tagesgeschäft. Immerhin sind die Infektionszahlen drastisch gesunken und die Impfungen weit vorangeschritten. Davon hat die LDP stark profitieren können. Kishidas Umfragewerte während seiner ersten Amtstage jedoch nicht.
Am 11. November, auf der konstituierenden Sitzung des Parlaments nach den Unterhauswahlen, hat Kishida sein neues Kabinett vorgestellt, dem wieder nur drei Ministerinnen (von 21 Posten) angehören. Eine seiner Mitbewerberin um den Parteivorsitz ist dabei: Seiko Noda ist als Ministerin für „Gender Equality“ berufen worden. Mit ihr hätte die LDP einer erfahrenen und angesehenen Vorkämpferin für Frauenförderung und Genderpolitik an die Staatsspitze verholfen. Im Amt verblieben ist unter anderem Verteidigungsminister Nobuo Kishi, Shinzo Abes jüngerer Bruder. Ähnlich wie sein Vorgänger Taro Kono gehört er zu den Hardlinern der LDP gegenüber China. Zum ersten Mal überhaupt ist Taiwan als zu schützendes Land im Weißbuch des Verteidigungsministeriums aufgenommen worden. Umso erstaunlicher ist daher die Wahl des neuen Außenministers. Der bisherige Amtsinhaber, Toshimitsu Motegi, übernimmt den Posten des Generalsekretärs der LDP und wird zur Nummer Zwei in der Partei. Die Berufung von Nachfolger Yoshimasa Hayashi als Topdiplomat wird in den Kreisen der China-Kritiker heftig debattiert: Hayashi steht, wie schon sein Vater, der parlamentarischen China-Japan Freundschaftsgruppe vor und ist für einen eher weichen, nachgiebigen Kurs bekannt.
Außenpolitisch sind die Parameter für Kishida bereits vorgegeben: die Beziehungen zu den USA sollen möglichst eng und vertrauensvoll bleiben. Dies hat Verteidigungsminister Kishi in einer Pressekonferenz am 12. November noch einmal nachdrücklich unterstrichen. Japan muss sich angesichts der wachsenden militärischen Aggressionen im Ostchinesischen Meer positionieren. In der Konsequenz ist vor einigen Monaten das regionale Sicherheitsbündnis „Quad“ aufgewertet worden; regelmäßige Treffen finden auf höchster Ebene zwischen den USA, Japan, Australien und Indien statt. Hilfreich sind hierbei die aktuellen Initiativen der EU, Deutschlands und Frankreichs, die Sicherheit und Wohlstand in der indo-pazifischen Region zu einem außen- und verteidigungspolitischen Schwerpunkt erklärt haben.
Dennoch wird Kishida vornehmlich an innenpolitischen Erfolgen gemessen. Will er längerfristig im Amt bleiben, muss er in der Gesellschaft sichtbar sein, politischen und wirtschaftlichen Aufbruch verkörpern. Das wird schwer, angesichts des innerparteilich stark gewachsenen Einfluss von Shinzo Abe. Dieser hat kürzlich die stärkste Faktion innerhalb der LDP übernommen und ist Nachfolger von Hiroyuki Hosoda, der zum Parlamentspräsidenten gewählt wurde. Die 90 Abgeordnete umfassende Gruppe hat bisher vier Premierminister hervorgebracht. Wohl nicht ohne Grund hält sich hartnäckig das Gerücht in Tokios politischen Hinterzimmern, der bis dato längst-gediente Premierminister könne alsbald selbst wieder antreten.