在ng-grid标头名称中启用多语言

时间:2015-05-21 09:11:00

标签: angularjs ng-grid

我尝试了$translate服务,如下所示:

 columnDefs: [{ 
                field: 'option_name',
                displayName: $translate('Optionname'),
                cellTemplate: '<div class="ngCellText"  ng-bind="row.getProperty(col.field)" ></div>' 
            },
            ...

显示{}。我也尝试通过过滤器翻译:

columnDefs: [{ 
                field: 'option_name',
                displayName: '{{ Optionname | translate }}',
                cellTemplate: '<div class="ngCellText"  ng-bind="row.getProperty(col.field)" ></div>' 
            },
            ...

但它显示的是{{ Optionname | translate }},那么如何翻译ng-grid中的标题名称?

1 个答案:

答案 0 :(得分:1)

您需要使用$translation直接与$translate.instant('id')范围进行互动。因此.instant()将返回string,即翻译的columnDefs: [ { field: 'option_name', displayName: $translate.instant('Optionname'), cellTemplate: '<div class="ngCellText" ng-bind="row.getProperty(col.field)" ></div>' }, ... 。您可以在documentation

中了解此范围

实施例

ng-grid

displayName语言更改为$translate.use("en_US").then(function(data){ $scope.columnDefs = columnDefs: [{ field: 'option_name', displayName: $translate.instant('Optionname'), cellTemplate: '<div class="ngCellText" ng-bind="row.getProperty(col.field)" ></div>' }, ... }); 再次翻译。

var xmlNode = new XElement("TextBoxes");
foreach (TextBox text in this.Controls.OfType<TextBox>())
    {
        xmlNode.Add(new XElement("TextBox",
                    new XElement("name", text.Name.ToString())
                )
            );
    }  
xmlNode.Save("Test.xml");