Skip to content

Text (rtl) are not show on ios (safary and chrome) -  #6121

@liorGameDev

Description

@liorGameDev

Version

  • Phaser Version: 3.24.1
  • Operating system: ios
  • Browser: chrome / safari

Description

When runing my game on ios devices, the text (rtl) is not shown.
On desktop and on Android it works fine. On ios it doesn't work on chrome nor safari.

Example Test Code

import { GameObjectExtender, TextObjectExtender, TextUtil } from ".";
import { textStyles } from '../GameConfig';

export default class ExtraText extends Phaser.GameObjects.Text {
  constructor(scene, x, y, text, config, noTranslateText) {
    config = config || textStyles.getStyle();
    if (!config.metrics) {
      config.metrics = TextUtil.getMetricsFromFont(config.fontFamily, parseInt(config.fontSize));
    }

    super(scene, x, y, text, config);

    if (!config.metrics) {
      TextUtil.addFontMatrix(config.fontFamily, parseInt(config.fontSize), this.getTextMetrics());
    }

    this.initRTL();
    
    if (noTranslateText) {
        this.setText(this.text, noTranslateText);
    }
    scene.add.existing(this);

    GameObjectExtender(this);
    TextObjectExtender(this, config.align);
  }

  setText(text, noTranslateText) {
    if (!isNaN(text)) {
      super.setText(text);
      return;
    }
    let translated = TextUtil.translate(text);
    if (noTranslateText) {
        translated += noTranslateText;
        text += noTranslateText;
    }
    super.setText((translated || text));
  }

  destroy() {
    super.destroy();
  }
}

Additional Information

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions