diff --git a/ckanext/odsh/templates/i18n_defaults.html b/ckanext/odsh/templates/i18n_defaults.html
index f559d134e0874c3f8c573c9ea4ce8ec51cd809c2..99143895abce4f92f3e86783adcc83471a7f1027 100644
--- a/ckanext/odsh/templates/i18n_defaults.html
+++ b/ckanext/odsh/templates/i18n_defaults.html
@@ -2,4 +2,36 @@
 {{ _('1RE') }}
 {{ _('2OF') }}
 {{ _('3URI') }}
-{{ _('4LD') }}
\ No newline at end of file
+{{ _('4LD') }}
+{{ _('groups: at least one group needed') }}
+{{ _('empty') }}
+{{ _('spatial_uri: uri unknown') }}
+{{ _('spatial_uri: empty not allowed') }}
+{{ _('odsh_temporal_start_error_label') }}
+{{ _('temporal_start: empty') }}
+{{ _('odsh_temporal_end_error_label') }}
+{{ _('temporal_end: empty') }}
+{{ _('temporal_start: not a valid date') }}
+{{ _('temporal_end: not a valid date') }}
+{{ _('odsh_temporal_error_label') }}
+{{ _('Name: Fehlender Wert') }}
+{{ _('Lizenz: Fehlender Wert') }}
+{{ _('Raumbezug: Fehlender Wert') }}
+{{ _('Tags') }}
+{{ _('Beschreibung: Fehlender Wert') }}
+{{ _('Namensnennung: Fehlender Wert') }}
+{{ _('Titel: Fehlender Wert') }}
+{{ _('odsh_issued_error_label') }}
+{{ _('issued: empty') }}
+{{ _('odsh_issued_not_date_error_label') }}
+{{ _('issued: not a valid date') }}
+{{ _('Tag string: Fehlender Wert') }}
+{{ _('odsh_resource_upload_error_label') }}
+{{ _('odsh_resource_name_error_label') }}
+{{ _('odsh_resource_description_error_label') }}
+{{ _('odsh_resource_format_error_label') }}
+{{ _('odsh_licence_text_missing_error_label') }}
+{{ _('licenseAttributionByText: empty not allowed') }}
+{{ _('odsh_licence_text_not_allowed_error_label') }}
+{{ _('licenseAttributionByText: text not allowed for this license') }}
+{{ _('msgid "Name: Diese URL ist bereits vergeben') }}
\ No newline at end of file
diff --git a/validation.py b/validation.py
index 00af2f0d999f2c033d818eeb214fe4fcce9a3089..b7b04835c474e80fe7627c92a6e77a6c506d845c 100644
--- a/validation.py
+++ b/validation.py
@@ -36,7 +36,7 @@ def validate_extra_groups(data, requireAtLeastOne, errors):
         # so the dataset came from manual editing via the web-frontend.
         if not value:
             if requireAtLeastOne:
-                errors['groups'] = _('at least one group needed')
+                errors['groups'] = 'at least one group needed'
             data[('groups', 0, 'id')] = ''
             return
 
@@ -47,7 +47,7 @@ def validate_extra_groups(data, requireAtLeastOne, errors):
                 # del data[k]
         if len(groups) == 0:
             if requireAtLeastOne:
-                errors['groups'] = _('at least one group needed')
+                errors['groups'] = 'at least one group needed'
             return
 
         for num, group in zip(list(range(len(groups))), groups):
@@ -56,7 +56,7 @@ def validate_extra_groups(data, requireAtLeastOne, errors):
         # dataset might come from a harvest process
         if not data.get(('groups', 0, 'id'), False) and \
            not data.get(('groups', 0, 'name'), False):
-            errors['groups'] = _('at least one group needed')
+            errors['groups'] = 'at least one group needed'
 
 
 def validate_extras(key, data, errors, context):
@@ -89,7 +89,7 @@ def validate_extra_date_new(key, field, data, optional, errors):
 
     if not value:
         if not optional:
-            errors[field] = _('empty')
+            errors[field] = 'empty'
         return
     else:
         if re.match(r'\d\d\d\d-\d\d-\d\d', value):
@@ -99,7 +99,7 @@ def validate_extra_date_new(key, field, data, optional, errors):
                 return
             except ValueError:
                 pass
-        errors[field] = _('not a valid date')
+        errors[field] = 'not a valid date'
 
 
 def validate_licenseAttributionByText(key, data, errors, context):