fix(region): remove i18n fix & zone &region name support i18n

This commit is contained in:
TangBin
2020-12-25 20:40:04 +08:00
parent 7178a2d3c7
commit 1cca1b5685
4 changed files with 40 additions and 17 deletions
+13 -13
View File
@@ -4,7 +4,6 @@ import (
"context"
"github.com/pkg/errors"
"golang.org/x/text/language"
"yunion.io/x/log"
"yunion.io/x/pkg/util/compare"
@@ -127,17 +126,6 @@ func init() {
I18nManager.SetVirtualObject(I18nManager)
}
var tableLangSupported = []language.Tag{
language.English,
language.Chinese,
}
var tableLangMatcher = language.NewMatcher(tableLangSupported)
func tableLangMatch(tag language.Tag) language.Tag {
_, i, _ := tableLangMatcher.Match(tag)
return tableLangSupported[i]
}
func (manager *SModelBaseManager) GetModelI18N(ctx context.Context, model IModel) ([]SI18n, error) {
ret := []SI18n{}
q := manager.Query().Equals("obj_type", model.Keyword()).Equals("obj_id", model.GetId())
@@ -149,6 +137,17 @@ func (manager *SModelBaseManager) GetModelI18N(ctx context.Context, model IModel
return ret, err
}
func (manager *SModelBaseManager) GetModelKeyI18N(ctx context.Context, model IModel, keyName string) ([]SI18n, error) {
ret := []SI18n{}
q := manager.Query().Equals("obj_type", model.Keyword()).Equals("obj_id", model.GetId()).Equals("key_name", keyName)
err := FetchModelObjects(manager, q, &ret)
if err != nil {
return nil, errors.Wrap(err, "FetchModelObjects")
}
return ret, err
}
func (manager *SI18nManager) getExternalI18nItems(ctx context.Context, table IModelI18nTable) []IModelI18nEntry {
ret := make([]IModelI18nEntry, 0)
items := table.GetI18nEntries()
@@ -161,7 +160,8 @@ func (manager *SI18nManager) getExternalI18nItems(ctx context.Context, table IMo
func (manager *SI18nManager) RemoveI18ns(ctx context.Context, userCred mcclient.TokenCredential, model IModel) error {
dbItems := []SI18n{}
err := manager.Query().Equals("obj_type", model.Keyword()).Equals("obj_id", model.GetId()).All(&dbItems)
q := manager.Query().Equals("obj_type", model.Keyword()).Equals("obj_id", model.GetId())
err := FetchModelObjects(manager, q, &dbItems)
if err != nil {
return err
}
+7 -3
View File
@@ -895,10 +895,14 @@ func (self *SCloudregion) GetI18N(ctx context.Context) *jsonutils.JSONDict {
}
func (self *SCloudregion) GetRegionInfo(ctx context.Context) api.CloudregionResourceInfo {
// name := self.nameI18nLookup(ctx)
name := self.Name
if v, ok := self.GetModelKeyI18N(ctx, self, "name"); ok {
name = v
}
return api.CloudregionResourceInfo{
Region: self.Name,
Cloudregion: self.Name,
Region: name,
Cloudregion: name,
RegionId: self.Id,
RegionExtId: fetchExternalId(self.ExternalId),
RegionExternalId: self.ExternalId,
+14
View File
@@ -62,3 +62,17 @@ func (self *SI18nResourceBase) GetModelI18N(ctx context.Context, model db.IModel
return _i18n
}
func (self *SI18nResourceBase) GetModelKeyI18N(ctx context.Context, model db.IModel, keyName string) (string, bool) {
entries, err := db.I18nManager.GetModelKeyI18N(ctx, model, keyName)
if err != nil {
log.Infof("GetModelKeyI18N %s", err)
return "", false
}
if len(entries) > 0 {
return entries[0].Lookup(ctx), true
}
return "", false
}
+6 -1
View File
@@ -91,7 +91,12 @@ func (manager *SZoneResourceBaseManager) FetchCustomizeColumns(
for i := range rows {
rows[i] = api.ZoneResourceInfo{}
if _, ok := zones[zoneIds[i]]; ok {
rows[i].Zone = zones[zoneIds[i]].Name
z := zones[zoneIds[i]]
name := z.Name
if v, ok := z.GetModelKeyI18N(ctx, &z, "name"); ok {
name = v
}
rows[i].Zone = name
rows[i].ZoneExtId = fetchExternalId(zones[zoneIds[i]].ExternalId)
rows[i].CloudregionId = zones[zoneIds[i]].CloudregionId
}