19 declare(strict_types=1);
59 private readonly
int $obj_id,
60 private array $languages,
61 private string $default_language,
62 private ?
string $base_language,
63 private readonly
bool $migration_missing =
false 72 return $this->migration_missing;
81 return $this->default_language;
87 $clone->languages[$clone->default_language] = $clone->languages[$clone->default_language]->withDefault(
false);
88 $clone->languages[$default_language] = $clone->languages[$default_language]->withDefault(
true);
89 $clone->default_language = $default_language;
95 return $this->base_language ??
'';
100 $clone = clone $this;
101 if ($clone->base_language !==
null) {
102 $clone->languages[$clone->base_language] = $clone->languages[$clone->base_language]->withBase(
false);
104 $clone->languages[$base_language] = $clone->languages[$base_language]->withBase(
true);
105 $clone->base_language = $base_language;
114 return $this->languages;
119 return $this->languages[$lang_code] ??
null;
127 if ($this->base_language !==
null) {
128 $clone->languages[$clone->base_language] = $clone->languages[$clone->base_language]->withBase(
false);
134 if ($this->default_language !==
'') {
135 $clone->languages[$clone->default_language] = $this->languages[$clone->default_language]->withDefault(
false);
145 if ($lang === $this->base_language) {
150 unset($clone->languages[$lang]);
156 $clone = clone $this;
157 $clone->languages = [];
163 if ($this->default_language !==
'' 164 && array_key_exists($this->default_language, $this->languages)) {
165 return $this->languages[$this->default_language]->getTitle();
168 if ($this->languages === []) {
169 return \ilObject::_lookupTitle($this->
getObjId());
176 if ($this->default_language ===
'' 177 || !isset($this->languages[$this->default_language])) {
181 $clone = clone $this;
182 $clone->languages[$clone->default_language] = $clone->languages[$clone->default_language]->withTitle($title);
188 if ($this->default_language !==
'' 189 && array_key_exists($this->default_language, $this->languages)) {
190 return $this->languages[$this->default_language]->getDescription();
193 if ($this->languages === []) {
194 return \ilObject::_lookupTitle($this->
getObjId());
201 if ($this->default_language ===
'' 202 || !isset($this->languages[$this->default_language])) {
206 $clone = clone $this;
207 $clone->languages[$clone->default_language] = $clone->languages[$clone->default_language]->withDescription($description);
213 return $this->base_language !==
null;
218 $clone = clone $this;
219 $clone->languages[$clone->base_language] = $clone->languages[$this->base_language]->withBase(
false);
220 $clone->base_language =
null;
224 public function copy(
int $obj_id): self
229 $this->default_language,
238 if ($this->base_language ===
null) {
242 $page_lang_key = $lang === $this->base_language
246 if (isset($this->languages[$lang])
248 return $page_lang_key;
251 if (isset($this->languages[$this->default_language])
253 return $this->default_language;
getEffectiveCOPageLang(string $lang, string $parent_type)
withoutLanguage(string $lang)
Class handles translation mode for an object.
withBaseLanguage(string $base_language)
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
withDefaultTitle(string $title)
static _exists(string $a_parent_type, int $a_id, string $a_lang="", bool $a_no_cache=false)
Checks whether page exists.
getContentTranslationActivated()
withLanguage(Language $lang)
__construct(private readonly int $obj_id, private array $languages, private string $default_language, private ?string $base_language, private readonly bool $migration_missing=false)
getLaguageForCode(string $lang_code)
withDeactivatedContentTranslation()
withDefaultLanguage(string $default_language)
withDefaultDescription(string $description)