首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何确定视图是否有翻译以及哪些翻译

如何确定视图是否有翻译以及哪些翻译
EN

Drupal用户
提问于 2018-07-27 08:00:20
回答 2查看 221关注 0票数 2

我有个视野

代码语言:javascript
运行
复制
$view = \Drupal\views\Views::getView($view_id);

如何确定它是否已被翻译成其他可用的语言以及哪种语言

EN

回答 2

Drupal用户

发布于 2022-01-26 19:33:18

我最近一直在与此斗争,我可以部分回答这个问题。如果您有$viewId$displayId,那么以下内容似乎表明视图标签、标题和/或视图菜单项的翻译是否存在于任何语言中(但并不表示语言):

代码语言:javascript
运行
复制
$viewConfig = \Drupal::configFactory()->get("views.view.$viewId");
$hasTranslation = $viewConfig && ($viewConfig->hasOverrides('label') ||
  $viewConfig->hasOverrides("display.$displayId.display_options.menu.title") ||
  $viewConfig->hasOverrides('display.default.display_options.title'));
票数 0
EN

Drupal用户

发布于 2022-02-08 03:44:31

由于我们需要手动为已翻译的视图添加路径别名,所以集合别名确实提供了一个间接的机会来查看是否存在翻译。

您可以使用->lookupBySystemPath($path, $langcode)检查视图是否具有给定语言的路径别名。

代码语言:javascript
运行
复制
// Set route match.
$routeMatch = \Drupal::routeMatch();

// Get route object.
$routeObject = $routeMatch->getRouteObject();

// Check if route object.
if ($routeObject) {

  // Get view id and display id from route.
  $view_id = $routeObject->getDefault('view_id');
  $display_id = $routeObject->getDefault('display_id');

  // Check if view.
  if (!empty($view_id) && !empty($display_id)) {

    // Get current path.
    $currentPath = \Drupal::service('path.current')->getPath();

    // Get path alias repository.
    $pathAliasRepository = \Drupal::service('path_alias.repository');

    // Check if system path has Spanish alias.
    if ($pathAliasRepository->lookupBySystemPath($currentPath, 'es')) {

      // Do stuff...
    }
  }
}
票数 0
EN
页面原文内容由Drupal提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://drupal.stackexchange.com/questions/266461

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档