翻译时,我的角度可调无法正常工作

如何解决翻译时,我的角度可调无法正常工作

当我更改数据表的语言时,我遇到了问题。 它不会更改在.ts文件中更改的“ dtOptions”中指定的语言,但是我不再看到按钮和分页。 显然我有:

带有按钮和分页的法语页面

enter image description here

没有按钮和分页的英文页面

enter image description here

我的.ts文件

 ngOnInit() {

    this.subscriptions.add(this.activateRoute.data.subscribe(data => {
      this.sollicitationsRecues = data.sollicitationsRecues;

      /**
       * Permet de définir l'url selon le langage.
       */
      this.subscriptions.add(this.formulaire.currentLanguage.subscribe(language => {
        this.language = language;

        this.statutByLangue = statutsJson['default'].statuts[this.language]

        this.dateAdapter.setLocale(this.language);
        import(`../../assets/i18n/${language}.json`).then(language_json => {
          if (this.sollicitationsRecues) {
            this.location.replaceState('/' + language_json.navbar.url.sollicitationsRecues);
          } else {
            this.location.replaceState('/' + language_json.navbar.url.afficherSollicitation);
          }
        });

        if (language === 'fr') {
          this.dataTableLanguage = datatableFR['default'];
        } else {
          this.dataTableLanguage = datatableEN['default'];
        }

        if (this.dtElement && this.dtElement.dtInstance) {
          this.dtElement.dtInstance.then((dtInstance: DataTables.Api) => {
            dtInstance.destroy();
            delete this.dtOptions['oLanguage'];
            this.dtOptions.language = this.dataTableLanguage;
            this.dtTrigger.next();
          });
        }
      }));

      /**
       * Reception des sollicitations depuis le back
       */
      if (this.sollicitationsRecues) {
        this.subscriptions.add(
          this.sollicitationService.getSollicitationsRecuesOrgAdmin(sessionStorage.getItem('loginName'))
          .subscribe((sollicitations: Sollicitation[]) => {
            if (sollicitations.length > 0) {
              this.sollicitations = sollicitations;
              this.statistiques = this.sollicitationService.getStatistiquesSollicitations(this.sollicitations,true,null,null);
              this.nombreSollicitation = this.sollicitations.length;
            }
            this.dtTrigger.next();
          },error => this.erreurHttp = error.message
          )
        );
      } else {
        this.subscriptions.add(
          this.sollicitationService.getSollictationsByCriteres({})
          .subscribe((sollicitations: Sollicitation[]) => {
            this.sollicitations = sollicitations;
            this.statistiques = this.sollicitationService.getStatistiquesSollicitations(this.sollicitations,false,null);
            this.nombreSollicitation = this.sollicitations.length;
            this.dtTrigger.next();
          },error => this.erreurHttp = error.message
          )
        );
      }
    }));

    this.dtOptions = {
      pagingType: 'full_numbers',pageLength: 5,autoWidth: true,responsive: true,lengthMenu: [[5,10,25,50,-1],[5,"All"]],columnDefs: [
        { targets: 3,type: 'date',render: function(data,type) {
            const date = parseISO(data);
            return type == 'display' && isValid(date) ? format(date,'dd/MM/yyyy') : data
          }
        },{ targets: 4,'dd/MM/yyyy') : data
          }
        }
      ],order: [[ 4,"desc" ]],language: this.dataTableLanguage,dom: 'lBfrtip',buttons: [
        'copy','print','excel'
      ]
    };

    this.subscriptions.add(this.loaderService.isLoading.subscribe((value) => {
      this.loading = value;
    }));

    /**
     * Initialisation de toutes les notifications.
     */
    this.notifications = [
      { id: 1,libelle: 'premiere notification' },{ id: 2,libelle: 'seconde notification' }
    ];



    /**
     * Remise à vide de la variable de session "confirmation" pour empêcher son accès lorsque l'on ne passe pas par le bouton approprié.
     */
    sessionStorage.setItem('confirmation','');

    /**
     * On récupère la valeur de l'orgAdmin depuis les variables de sessions.
     */
    this.isOrgAdmin = JSON.parse(sessionStorage.getItem('isOrgAdmin'))



    this.formulaire.changeNbResultat(undefined);
  }

  ngOnDestroy(): void {
    this.dtTrigger.unsubscribe();
    this.subscriptions.unsubscribe();
  }

我的HTML文件:

<div class="container table-responsive col-md-12">
    <table datatable [dtOptions]="dtOptions" [dtTrigger]="dtTrigger" class="table table-striped table-bordered row-border" style="width:100%">
      <thead>
        <tr class="text-center">
          <th>{{'afficherSolicitation.numSollicitaiton' | translate}}</th>
          <th>{{'afficherSolicitation.sujet' | translate}}</th>
          <th>{{'afficherSolicitation.titre' | translate}}</th>
          <th>{{'afficherSolicitation.dateSaisi' | translate}}</th>
          <th>{{'afficherSolicitation.dateLastModif' | translate}}</th>
          <th *ngIf="isOrgAdmin && sollicitationsRecues">{{'afficherSolicitation.saisiePar' | translate}}</th>
          <th>{{'afficherSolicitation.statut' | translate}}</th>
          <th>{{'afficherSolicitation.action' | translate}}</th>
        </tr>
      </thead>
      <tbody>
          <tr *ngFor="let sollicitation of sollicitations; let i = index" class="text-center">
            <td *ngIf="!loading"><a [routerLink]="" (click)="voirSollicitation(i)">{{sollicitation.id}}</a></td>
            <td *ngIf="!loading">{{sollicitation.categoriePiste}}</td>
            <td *ngIf="!loading">{{sollicitation.titre}}</td>
            <td *ngIf="!loading && language === 'fr'">
              {{sollicitation.dateEnvoi | date: 'dd-MM-yyyy HH:mm:ss'}}
            </td>
            <td *ngIf="!loading && language !== 'fr'">
              {{sollicitation.dateEnvoi | date: 'MM-dd-yyyy HH:mm:ss'}}
            </td>
            <td *ngIf="!loading && language === 'fr'">
              {{sollicitation.dateModification | date: 'dd-MM-yyyy HH:mm:ss'}}
            </td>
            <td *ngIf="!loading && language !== 'fr'">
              {{sollicitation.dateModification | date: 'MM-dd-yyyy HH:mm:ss'}}
            </td>
            <td *ngIf="isOrgAdmin && sollicitationsRecues && !loading">{{sollicitation.creerPar}}</td>
            <td *ngIf="!loading">{{statutByLangue[sollicitation.statut]}}</td>
            <td *ngIf="!loading">
              <button type="button" class="btn btn-outline-dark text-center buttonTable"
              (click)="voirSollicitation(i)"><span class="material-icons">visibility</span></button>
              <button *ngIf="sollicitation.statut !== 'Fermée' && sollicitation.statut !== 'Fermée automatiquement' && sollicitation.statut !== 'Brouillon' && !sollicitationsRecues" type="button" class="btn btn-outline-dark text-center buttonTable"
              (click)="deleteSolicitation(i)"><span class="material-icons">close</span></button>
            </td>
          </tr>
          <tr *ngIf="loading">
            <td ALIGN="center" colspan="7">
              <mat-progress-spinner class="progress-loader" [mode]="'indeterminate'">
              </mat-progress-spinner>
          </td>
          </tr>
      </tbody>
    </table>

我的datatable.en.json:

{
    "sEmptyTable": "No data available in table","sInfo": "Showing _START_ to _END_ of _TOTAL_ entries","sInfoEmpty": "Showing 0 to 0 of 0 entries","sInfoFiltered": "(filtered from _MAX_ total entries)","sInfoPostFix": "","sInfoThousands": ",","sLengthMenu": "Show _MENU_ entries","sLoadingRecords": "Loading...","sProcessing": "Processing...","sSearch": "Search:","sZeroRecords": "No matching records found","oPaginate": {
      "sFirst": "First","sLast": "Last","sNext": "Next","sPrevious": "Previous"
    },"oAria": {
      "sSortAscending": ": activate to sort column ascending","sSortDescending": ": activate to sort column descending"
    },"buttons": {
      "copy": "Copy","copySuccess": {
        "1": "Copied one row to clipboard","_": "Copied %d rows to clipboard"
      },"copyTitle": "Copy to clipboard","print": "Print","excel": "Excel"
    }
  }

我的datatable.fr.json:

{
    "sProcessing": "Traitement en cours...","sSearch": "Rechercher&nbsp;:","sLengthMenu": "Afficher _MENU_ &eacute;l&eacute;ments","sInfo": "Affichage de l'&eacute;l&eacute;ment _START_ &agrave; _END_ sur _TOTAL_ &eacute;l&eacute;ments","sInfoEmpty": "Affichage de l'&eacute;l&eacute;ment 0 &agrave; 0 sur 0 &eacute;l&eacute;ments","sInfoFiltered": "(filtr&eacute; de _MAX_ &eacute;l&eacute;ments au total)","sLoadingRecords": "Chargement en cours...","sZeroRecords": "Aucun &eacute;l&eacute;ment &agrave; afficher","sEmptyTable": "Aucune donn&eacute;e disponible dans le tableau","oPaginate": {
      "sFirst": "Premier","sPrevious": "Pr&eacute;c&eacute;dent","sNext": "Suivant","sLast": "Dernier"
    },"oAria": {
      "sSortAscending": ": activer pour trier la colonne par ordre croissant","sSortDescending": ": activer pour trier la colonne par ordre d&eacute;croissant"
    },"buttons": {
      "copy": "Copier","copySuccess": {
          "1": "Copie d'une ligne dans le presse-papiers","_": "Copie de %d lignes dans le presse-papiers"
      },"copyTitle": "Copier dans<br>le presse-papiers","print": "Imprimer","excel": "Excel"
    }
  }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res