i18n for global v-data-table
diff --git a/dubbo-admin-frontend/src/components/ServiceDetail.vue b/dubbo-admin-frontend/src/components/ServiceDetail.vue
index d1d62d0..544d556 100644
--- a/dubbo-admin-frontend/src/components/ServiceDetail.vue
+++ b/dubbo-admin-frontend/src/components/ServiceDetail.vue
@@ -48,7 +48,6 @@
           <v-tab-item>
             <v-data-table
               class="elevation-1"
-              :no-data-text="$t('noDataText')"
               :headers="detailHeaders.providers"
               :items="providerDetails"
             >
@@ -73,7 +72,6 @@
           <v-tab-item >
             <v-data-table
               class="elevation-1"
-              :no-data-text="$t('noDataText')"
               :headers="detailHeaders.consumers"
               :items="consumerDetails"
             >
@@ -92,7 +90,6 @@
       <v-flex lg12>
         <v-data-table
           class="elevation-1"
-          :no-data-text="$t('noDataText')"
           :headers="metaHeaders"
           :items="methodMetaData">
           <template slot="items" slot-scope="props">
@@ -239,7 +236,7 @@
         Object.keys(meta).forEach(function (key) {
           let item = {}
           item.value = meta[key]
-          item.name = key.charAt(0).toUpperCase() + key.substr(1)
+          item.name = vm.$t(key)
           vm.basic.push(item)
         })
       }
diff --git a/dubbo-admin-frontend/src/components/ServiceSearch.vue b/dubbo-admin-frontend/src/components/ServiceSearch.vue
index 7958817..088068e 100644
--- a/dubbo-admin-frontend/src/components/ServiceSearch.vue
+++ b/dubbo-admin-frontend/src/components/ServiceSearch.vue
@@ -70,7 +70,6 @@
           <template>
             <v-data-table
               hide-actions
-              :no-data-text="$t('noDataText')"
               class="elevation-0 table-striped"
               :headers="headers"
               :items="services"
diff --git a/dubbo-admin-frontend/src/components/governance/AccessControl.vue b/dubbo-admin-frontend/src/components/governance/AccessControl.vue
index e70a778..054cbc4 100644
--- a/dubbo-admin-frontend/src/components/governance/AccessControl.vue
+++ b/dubbo-admin-frontend/src/components/governance/AccessControl.vue
@@ -75,7 +75,6 @@
                         :items="accesses"
                         :loading="loading"
                         hide-actions
-                        :no-data-text="$t('noDataText')"
                         class="elevation-0">
             <template slot="items"
                       slot-scope="props">
@@ -114,7 +113,6 @@
                         :items="accesses"
                         :loading="loading"
                         hide-actions
-                        :no-data-text="$t('noDataText')"
                         class="elevation-0">
             <template slot="items"
                       slot-scope="props">
diff --git a/dubbo-admin-frontend/src/components/governance/LoadBalance.vue b/dubbo-admin-frontend/src/components/governance/LoadBalance.vue
index 9bdbf36..4d5d765 100644
--- a/dubbo-admin-frontend/src/components/governance/LoadBalance.vue
+++ b/dubbo-admin-frontend/src/components/governance/LoadBalance.vue
@@ -69,7 +69,6 @@
             :items="loadBalances"
             hide-actions
             class="elevation-0"
-            :no-data-text="$t('noDataText')"
           >
             <template slot="items" slot-scope="props">
               <td class="text-xs-left">{{ props.item.service }}</td>
@@ -91,7 +90,6 @@
             :headers="appHeaders"
             :items="loadBalances"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
diff --git a/dubbo-admin-frontend/src/components/governance/Overrides.vue b/dubbo-admin-frontend/src/components/governance/Overrides.vue
index 3feaf8b..3861dfa 100644
--- a/dubbo-admin-frontend/src/components/governance/Overrides.vue
+++ b/dubbo-admin-frontend/src/components/governance/Overrides.vue
@@ -68,7 +68,6 @@
             :headers="serviceHeaders"
             :items="serviceConfigs"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
@@ -90,7 +89,6 @@
             :headers="appHeaders"
             :items="appConfigs"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
diff --git a/dubbo-admin-frontend/src/components/governance/RoutingRule.vue b/dubbo-admin-frontend/src/components/governance/RoutingRule.vue
index 200dc72..68bc7c0 100644
--- a/dubbo-admin-frontend/src/components/governance/RoutingRule.vue
+++ b/dubbo-admin-frontend/src/components/governance/RoutingRule.vue
@@ -67,7 +67,6 @@
             :headers="serviceHeaders"
             :items="serviceRoutingRules"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
@@ -90,7 +89,6 @@
             :headers="appHeaders"
             :items="appRoutingRules"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
diff --git a/dubbo-admin-frontend/src/components/governance/TagRule.vue b/dubbo-admin-frontend/src/components/governance/TagRule.vue
index 9d4e546..19242fe 100644
--- a/dubbo-admin-frontend/src/components/governance/TagRule.vue
+++ b/dubbo-admin-frontend/src/components/governance/TagRule.vue
@@ -35,7 +35,6 @@
             :headers="headers"
             :items="tagRoutingRules"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
diff --git a/dubbo-admin-frontend/src/components/governance/WeightAdjust.vue b/dubbo-admin-frontend/src/components/governance/WeightAdjust.vue
index 78d47af..1eccdf6 100644
--- a/dubbo-admin-frontend/src/components/governance/WeightAdjust.vue
+++ b/dubbo-admin-frontend/src/components/governance/WeightAdjust.vue
@@ -68,7 +68,6 @@
             :headers="serviceHeaders"
             :items="weights"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
@@ -90,7 +89,6 @@
             :headers="appHeaders"
             :items="weights"
             hide-actions
-            :no-data-text="$t('noDataText')"
             class="elevation-0"
           >
             <template slot="items" slot-scope="props">
diff --git a/dubbo-admin-frontend/src/lang/en.js b/dubbo-admin-frontend/src/lang/en.js
index 7afdfde..593206c 100644
--- a/dubbo-admin-frontend/src/lang/en.js
+++ b/dubbo-admin-frontend/src/lang/en.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 export default {
-  noDataText: 'No data available',
+  service: 'Service',
   serviceSearch: 'Search service name',
   serviceGovernance: 'Service Governance',
   routingRule: 'Condition Rule',
@@ -100,5 +100,19 @@
     serviceTest: 'Service Test will release later',
     serviceMock: 'Service Mock will release later'
   },
-  by: 'by '
+  by: 'by ',
+  $vuetify: {
+    dataIterator: {
+      rowsPerPageText: 'Items per page:',
+      rowsPerPageAll: 'All',
+      pageText: '{0}-{1} of {2}',
+      noResultsText: 'No matching records found',
+      nextPage: 'Next page',
+      prevPage: 'Previous page'
+    },
+    dataTable: {
+      rowsPerPageText: 'Rows per page:'
+    },
+    noDataText: 'No data available'
+  }
 }
diff --git a/dubbo-admin-frontend/src/lang/zh.js b/dubbo-admin-frontend/src/lang/zh.js
index 9df4336..fc28529 100644
--- a/dubbo-admin-frontend/src/lang/zh.js
+++ b/dubbo-admin-frontend/src/lang/zh.js
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 export default {
-  noDataText: '没有可用的数据',
+  service: '服务',
   serviceSearch: '服务查询',
   serviceGovernance: '服务治理',
   routingRule: '条件路由',
@@ -100,5 +100,19 @@
     serviceTest: '服务测试会在后续版本中发布,敬请期待',
     serviceMock: '服务Mock会在后续版本中发布,敬请期待'
   },
-  by: '按'
+  by: '按',
+  $vuetify: {
+    dataIterator: {
+      rowsPerPageText: '每页记录数:',
+      rowsPerPageAll: '全部',
+      pageText: '{0}-{1} 共 {2} 条',
+      noResultsText: '没有找到匹配记录',
+      nextPage: '下一页',
+      prevPage: '上一页'
+    },
+    dataTable: {
+      rowsPerPageText: '每页行数:'
+    },
+    noDataText: '无可用数据'
+  }
 }
diff --git a/dubbo-admin-frontend/src/main.js b/dubbo-admin-frontend/src/main.js
index f323034..3a96519 100644
--- a/dubbo-admin-frontend/src/main.js
+++ b/dubbo-admin-frontend/src/main.js
@@ -27,7 +27,11 @@
 import { AXIOS } from './components/http-common'
 import i18n from './lang'
 
-Vue.use(Vuetify)
+Vue.use(Vuetify, {
+  lang: {
+    t: (key, ...params) => i18n.t(key, params)
+  }
+})
 Vue.use(Notify)
 
 Vue.prototype.$axios = AXIOS