← Back to team overview

dhis2-devs team mailing list archive

[Branch ~dhis2-devs-core/dhis2/trunk] Rev 5656: Fixed logic bug between I18n translation functionality and the updating process on the default ta...

 

------------------------------------------------------------
revno: 5656
committer: Hieu <hieu.hispvietnam@xxxxxxxxx>
branch nick: dhis2
timestamp: Wed 2012-01-04 14:00:57 +0700
message:
  Fixed logic bug between I18n translation functionality and the updating process on the default tables (dataelement, indicator, etc...)
modified:
  dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java
  dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/i18n/action/TranslateAction.java
  dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties
  dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties


--
lp:dhis2
https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk

Your team DHIS 2 developers is subscribed to branch lp:dhis2.
To unsubscribe from this branch go to https://code.launchpad.net/~dhis2-devs-core/dhis2/trunk/+edit-subscription
=== modified file 'dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java'
--- dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java	2011-12-26 10:07:59 +0000
+++ dhis-2/dhis-services/dhis-service-core/src/main/java/org/hisp/dhis/i18n/DefaultI18nService.java	2012-01-04 07:00:57 +0000
@@ -92,7 +92,7 @@
         }
 
         internationalise( object, localeManager.getCurrentLocale() );
-    }    
+    }
 
     public void localise( Object object, Locale locale )
     {
@@ -115,8 +115,14 @@
 
             Map<String, String> translationsCurrentLocale = convertTranslations( translations );
 
-            Collection<Translation> translationsFallback = null; // Not initialized unless needed
-            Map<String, String> translationsFallbackLocale = null; // Not initialized unless needed
+            Collection<Translation> translationsFallback = null; // Not
+                                                                    // initialized
+                                                                    // unless
+                                                                    // needed
+            Map<String, String> translationsFallbackLocale = null; // Not
+                                                                    // initialized
+                                                                    // unless
+                                                                    // needed
 
             List<String> propertyNames = i18nObject.getPropertyNames();
 
@@ -153,7 +159,7 @@
     {
         internationaliseCollection( intObjects, localeManager.getCurrentLocale() );
     }
-    
+
     private void internationaliseCollection( Collection<?> intObjects, Locale locale )
     {
         if ( intObjects == null || intObjects.size() == 0 )
@@ -168,8 +174,13 @@
             Collection<Translation> allTranslations = translationService.getTranslations( i18nObject.getClassName(),
                 locale );
 
-            Collection<Translation> fallbackTranslations = null; // Not initialized unless needed
-            Map<String, String> fallbackTranslationsMap = null; // Not initialized unless needed
+            Collection<Translation> fallbackTranslations = null; // Not
+                                                                    // initialized
+                                                                    // unless
+                                                                    // needed
+            Map<String, String> fallbackTranslationsMap = null; // Not
+                                                                // initialized
+                                                                // unless needed
 
             for ( Object object : intObjects )
             {
@@ -230,6 +241,10 @@
                 {
                     translations.put( property, value );
                 }
+                else
+                {
+                	translations.put( property, "" );
+                }
             }
 
             updateTranslation( className, id, locale, translations );
@@ -280,10 +295,10 @@
             String key = translationEntry.getKey();
             String value = translationEntry.getValue();
 
+            Translation translation = translationService.getTranslation( className, id, locale, key );
+
             if ( value != null && !value.trim().isEmpty() )
             {
-                Translation translation = translationService.getTranslation( className, id, locale, key );
-
                 if ( translation != null )
                 {
                     translation.setValue( value );
@@ -295,6 +310,10 @@
                     translationService.addTranslation( translation );
                 }
             }
+            else if ( translation != null )
+            {
+                translationService.deleteTranslation( translation );
+            }
         }
     }
 
@@ -426,10 +445,10 @@
     // -------------------------------------------------------------------------
 
     /**
-     * Returns a map representing Translations for an object matching the given 
-     * id where the key is the translation property and the value is the translation 
-     * value.
-     *
+     * Returns a map representing Translations for an object matching the given
+     * id where the key is the translation property and the value is the
+     * translation value.
+     * 
      * @param translations Collection to search.
      * @param id the object id.
      * @return Map of property/value pairs.
@@ -450,9 +469,9 @@
     }
 
     /**
-     * Returns a map for a collection of Translations where the key is the 
+     * Returns a map for a collection of Translations where the key is the
      * translation property and the value is the translation value.
-     *
+     * 
      * @param translations the Collection of translations.
      * @return Map containing translations.
      */
@@ -472,8 +491,9 @@
     }
 
     /**
-     * Converts the property to a i18n keystring alternativeName produces alternative_name.
-     *
+     * Converts the property to a i18n keystring alternativeName produces
+     * alternative_name.
+     * 
      * @param propName string to parse.
      * @return the modified string.
      */
@@ -499,9 +519,9 @@
     }
 
     /**
-     * Test if an object is not null and enabled for i18n. Returns the I18nObject
-     * if so. Returns null if not so.
-     *
+     * Test if an object is not null and enabled for i18n. Returns the
+     * I18nObject if so. Returns null if not so.
+     * 
      * @param object the object to test.
      * @return the I18nObject or null.
      */
@@ -519,5 +539,5 @@
         }
 
         return null;
-    }	
+    }
 }

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/i18n/action/TranslateAction.java'
--- dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/i18n/action/TranslateAction.java	2010-06-06 13:49:53 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/java/org/hisp/dhis/i18n/action/TranslateAction.java	2012-01-04 07:00:57 +0000
@@ -174,15 +174,19 @@
         {
             String[] translation = request.getParameterValues( propertyName );
 
-            if ( translation != null && translation.length > 0 && translation[0].length() > 0 )
+            if ( translation != null && translation.length > 0  )
             {
-                if ( uniquePropertyNames.contains( propertyName ) )
+                if ( uniquePropertyNames.contains( propertyName ) && translation[0].length() > 0 )
                 {
                     if ( this.isDuplicatedInTranslation( thisLocale, propertyName, translation[0] ) )
                     {
                         return INPUT;
                     }
                 }
+                else if ( translation[0].length() == 0 )
+                {
+                	translation[0] = "";
+                }
 
                 translations.put( propertyName, translation[0] );
             }

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties'
--- dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties	2011-12-30 07:17:59 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global.properties	2012-01-04 07:00:57 +0000
@@ -211,7 +211,7 @@
 translation_save=Save
 translation_label_id=Id
 translation_label_name=Name
-translation_label_short_name=Short name
+translation_label_shortname=Short name
 translation_label_description=Description
 translation_label_comment=Comment
 translation_label_region=Region

=== modified file 'dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties'
--- dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties	2011-12-14 08:10:22 +0000
+++ dhis-2/dhis-web/dhis-web-commons/src/main/resources/i18n_global_vi_VN.properties	2012-01-04 07:00:57 +0000
@@ -1,453 +1,453 @@
-start_date=Ng\u00E0y b\u1EAFt \u0111\u1EA7u
-translation_addlocale=Th\u00EAm v\u00F9ng
-not_logged_in=Ch\u01B0a \u0111\u0103ng nh\u1EADp
-month.short.november=Th\u00E1ng 11
+start_date=Ng\u00e0y b\u1eaft \u0111\u1ea7u
+translation_addlocale=Th\u00eam v\u00f9ng
+not_logged_in=Ch\u01b0a \u0111\u0103ng nh\u1eadp
+month.short.november=Th\u00e1ng 11
 less_than_or_equal_to_symbol=<\=
 not_equal_to_symbol=\!\=
-please_select_dataset=Vui l\u00F2ng ch\u1ECDn t\u1EADp h\u1EE3p d\u1EEF li\u1EC7u \!
-Monthly=H\u00E0ng th\u00E1ng
-weekday.wednesday=Th\u1EE9 t\u01B0
-OnChange=Thay \u0111\u1ED5i
-description=M\u00F4 t\u1EA3
+please_select_dataset=Vui l\u00f2ng ch\u1ecdn t\u1eadp h\u1ee3p d\u1eef li\u1ec7u \!
+Monthly=H\u00e0ng th\u00e1ng
+weekday.wednesday=Th\u1ee9 t\u01b0
+OnChange=Thay \u0111\u1ed5i
+description=M\u00f4 t\u1ea3
 weekday.short.tuesday=Th.3
-please_enter_name=Vui l\u00F2ng nh\u1EADp t\u00EAn \!
-month.june=Th\u00E1ng s\u00E1u
-data_dictionary=T\u1EEB \u0111i\u1EC3n d\u1EEF li\u1EC7u
-web_browser=Tr\u00ECnh duy\u1EC7t
-old_password=M\u1EADt kh\u1EA9u c\u0169
-please_enter_a_valid_number=Vui l\u00F2ng nh\u1EADp s\u1ED1 h\u1EE3p l\u1EC7
-database_user=T\u00E0i kho\u1EA3n c\u01A1 s\u1EE1 d\u1EEF li\u1EC7u
+please_enter_name=Vui l\u00f2ng nh\u1eadp t\u00ean \!
+month.june=Th\u00e1ng s\u00e1u
+data_dictionary=T\u1eeb \u0111i\u1ec3n d\u1eef li\u1ec7u
+web_browser=Tr\u00ecnh duy\u1ec7t
+old_password=M\u1eadt kh\u1ea9u c\u0169
+please_enter_a_valid_number=Vui l\u00f2ng nh\u1eadp s\u1ed1 h\u1ee3p l\u1ec7
+database_user=T\u00e0i kho\u1ea3n c\u01a1 s\u1ee1 d\u1eef li\u1ec7u
 format.Survey.startDate=dd-MM-yyyy
-please_enter_a_different_value_to_above=Vui l\u00F2ng nh\u1EADp m\u1ED9t gi\u00E1 tr\u1ECB kh\u00E1c gi\u00E1 tr\u1ECB tr\u00EAn.
-sum=T\u1ED5ng
+please_enter_a_different_value_to_above=Vui l\u00f2ng nh\u1eadp m\u1ed9t gi\u00e1 tr\u1ecb kh\u00e1c gi\u00e1 tr\u1ecb tr\u00ean.
+sum=T\u1ed5ng
 format.Daily.startDate=dd-MM-yyyy
-dhis-web-importexport=T\u00EDch h\u1EE3p - Tr\u00EDch xu\u1EA5t d\u1EEF li\u1EC7u
-weekday.friday=Th\u1EE9 s\u00E1u
-translation_countrycode=M\u00E3 qu\u1ED1c gia
-weekday.monday=Th\u1EE9 hai
-weekday.thursday=Th\u1EE9 n\u0103m
-caused_by=G\u00E2y ra b\u1EDFi
-unselect_children=B\u1ECF ch\u1ECDn c\u00E2y \u0111\u01A1n v\u1ECB con
-move_selected=Ch\u1ECDn
-month.july=Th\u00E1ng b\u1EA3y
-numerator_description=M\u00F4 t\u1EA3 t\u1EED s\u1ED1
+dhis-web-importexport=T\u00edch h\u1ee3p - Tr\u00edch xu\u1ea5t d\u1eef li\u1ec7u
+weekday.friday=Th\u1ee9 s\u00e1u
+translation_countrycode=M\u00e3 qu\u1ed1c gia
+weekday.monday=Th\u1ee9 hai
+weekday.thursday=Th\u1ee9 n\u0103m
+caused_by=G\u00e2y ra b\u1edfi
+unselect_children=B\u1ecf ch\u1ecdn c\u00e2y \u0111\u01a1n v\u1ecb con
+move_selected=Ch\u1ecdn
+month.july=Th\u00e1ng b\u1ea3y
+numerator_description=M\u00f4 t\u1ea3 t\u1eed s\u1ed1
 format.SixMonthly.endDate=MMM yyyy
-report_designer=Tr\u00ECnh thi\u1EBFt k\u1EBF
-constant=Bi\u1EC3u th\u1EE9c h\u1EB1ng
-environment_variable=Bi\u1EBFn m\u00F4i tr\u01B0\u1EDDng
-find=T\u00ECm ki\u1EBFm
-translation_label_name=T\u00EAn
-user_agent=Ng\u01B0\u1EDDi \u0111\u1EA1i di\u1EC7n
-translation_label_id=M\u00E3
-dhis-web-integration=T\u1ED5ng h\u1EE3p NHRM
-denominator=M\u1EABu s\u1ED1
-organisation_unit=\u0110\u01A1n v\u1ECB
-translation_reference=Tham kh\u1EA3o
-dhis-web-reports=C\u00E1c b\u00E1o c\u00E1o NRHM
-build_revision=Phi\u00EAn b\u1EA3n x\u00E2y d\u1EF1ng
-surname=H\u1ECD
+report_designer=Tr\u00ecnh thi\u1ebft k\u1ebf
+constant=Bi\u1ec3u th\u1ee9c h\u1eb1ng
+environment_variable=Bi\u1ebfn m\u00f4i tr\u01b0\u1eddng
+find=T\u00ecm ki\u1ebfm
+translation_label_name=T\u00ean
+user_agent=Ng\u01b0\u1eddi \u0111\u1ea1i di\u1ec7n
+translation_label_id=M\u00e3
+dhis-web-integration=T\u1ed5ng h\u1ee3p NHRM
+denominator=M\u1eabu s\u1ed1
+organisation_unit=\u0110\u01a1n v\u1ecb
+translation_reference=Tham kh\u1ea3o
+dhis-web-reports=C\u00e1c b\u00e1o c\u00e1o NRHM
+build_revision=Phi\u00ean b\u1ea3n x\u00e2y d\u1ef1ng
+surname=H\u1ecd
 format.Daily.endDate=
 less_than_or_equal_to=<\=
-data_element_concepts=C\u00E1c kh\u00E1i ni\u1EC7m c\u1EE7a ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u
+data_element_concepts=C\u00e1c kh\u00e1i ni\u1ec7m c\u1ee7a ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
 greater_than_or_equal_to_symbol=>\=
-translation_language_must_be_two_chars=M\u00E3 ng\u00F4n ng\u1EEF ph\u1EA3i c\u00F3 2 k\u00FD t\u1EF1
-go_back=Quay l\u1EA1i
-chrome_description=Tr\u00ECnh duy\u1EC7t si\u00EAu nhanh cho t\u1EA5t c\u1EA3 c\u00E1c h\u1EC7 th\u1ED1ng n\u1EC1n t\u1EA3ng
-help_center=Trung t\u00E2m h\u1ED7 tr\u1EE3
-success=Th\u00E0nh c\u00F4ng
-month.short.september=Th\u00E1ng 9
-release_page=Trang ph\u00E1t h\u00E0nh
-absolute=Tuy\u1EC7t \u0111\u1ED1i
-constants=C\u00E1c bi\u1EC3u th\u1EE9c H\u1EB1ng
-patient_attribute_group_management=Qu\u1EA3n l\u00FD nh\u00F3m thu\u1ED9c t\u00EDnh c\u00E1 th\u1EC3
+translation_language_must_be_two_chars=M\u00e3 ng\u00f4n ng\u1eef ph\u1ea3i c\u00f3 2 k\u00fd t\u1ef1
+go_back=Quay l\u1ea1i
+chrome_description=Tr\u00ecnh duy\u1ec7t si\u00eau nhanh cho t\u1ea5t c\u1ea3 c\u00e1c h\u1ec7 th\u1ed1ng n\u1ec1n t\u1ea3ng
+help_center=Trung t\u00e2m h\u1ed7 tr\u1ee3
+success=Th\u00e0nh c\u00f4ng
+month.short.september=Th\u00e1ng 9
+release_page=Trang ph\u00e1t h\u00e0nh
+absolute=Tuy\u1ec7t \u0111\u1ed1i
+constants=C\u00e1c bi\u1ec3u th\u1ee9c H\u1eb1ng
+patient_attribute_group_management=Qu\u1ea3n l\u00fd nh\u00f3m thu\u1ed9c t\u00ednh c\u00e1 th\u1ec3
 TwoYearly=Hai n\u0103m
-please_enter_a_valid_email_address=Vui l\u00F2ng nh\u1EADp \u0111\u1ECBa ch\u1EC9 email h\u1EE3p l\u1EC7
-right_expression=Bi\u1EC3u th\u1EE9c v\u1EBF ph\u1EA3i
-BiMonthly=M\u1ED7i 2 th\u00E1ng
+please_enter_a_valid_email_address=Vui l\u00f2ng nh\u1eadp \u0111\u1ecba ch\u1ec9 email h\u1ee3p l\u1ec7
+right_expression=Bi\u1ec3u th\u1ee9c v\u1ebf ph\u1ea3i
+BiMonthly=M\u1ed7i 2 th\u00e1ng
 weekday.short.friday=Th.6
-password=M\u1EADt kh\u1EA9u
+password=M\u1eadt kh\u1ea9u
 greater_than=>
-retype_new_password=Nh\u1EADp l\u1EA1i m\u1EADt kh\u1EA9u
-dhis-web-maintenance-settings=C\u00E1c thi\u1EBFt l\u1EADp
-details=Chi ti\u1EBFt
-waiting=Vui l\u00F2ng ch\u1EDD...
+retype_new_password=Nh\u1eadp l\u1ea1i m\u1eadt kh\u1ea9u
+dhis-web-maintenance-settings=C\u00e1c thi\u1ebft l\u1eadp
+details=Chi ti\u1ebft
+waiting=Vui l\u00f2ng ch\u1edd...
 weekday.short.monday=Th.2
-move_to_bottom=Di chuy\u1EC3n xu\u1ED1ng cu\u1ED1i
-intro=Gi\u1EDBi thi\u1EC7u
-data_element_does_not_exist=Ph\u1EA7n t\u1EED kh\u00F4ng t\u1ED3n t\u1EA1i
-version=Phi\u00EAn b\u1EA3n
-please_enter_the_equal_values_again=Kh\u00F4ng kh\u1EDBp\: Vui l\u00F2ng nh\u1EADp l\u1EA1i
-services=Ch\u1EE9c N\u0103ng
-dhis-web-excel-reporting=B\u00E1o c\u00E1o excel
-numerator=T\u1EED s\u1ED1
-filter=B\u1ED9 l\u1ECDc
-error_message_stack_trace=Th\u00F4ng b\u00E1o l\u1ED7i / Stack trace
-move_down=Di chuy\u1EC3n xu\u1ED1ng
-yes=C\u00F3
-change_password=\u0110\u1ED5i m\u1EADt kh\u1EA9u
-database_name=T\u00EAn c\u01A1 s\u1EE1 d\u1EEF li\u1EC7u
-send=G\u1EEDi
-percent=Ph\u1EA7n tr\u0103m
-please_enter_a_valid_date=Vui l\u00F2ng nh\u1EADp ng\u00E0y h\u1EE3p l\u1EC7
+move_to_bottom=Di chuy\u1ec3n xu\u1ed1ng cu\u1ed1i
+intro=Gi\u1edbi thi\u1ec7u
+data_element_does_not_exist=Ph\u1ea7n t\u1eed kh\u00f4ng t\u1ed3n t\u1ea1i
+version=Phi\u00ean b\u1ea3n
+please_enter_the_equal_values_again=Kh\u00f4ng kh\u1edbp\: Vui l\u00f2ng nh\u1eadp l\u1ea1i
+services=Ch\u1ee9c N\u0103ng
+dhis-web-excel-reporting=B\u00e1o c\u00e1o excel
+numerator=T\u1eed s\u1ed1
+filter=B\u1ed9 l\u1ecdc
+error_message_stack_trace=Th\u00f4ng b\u00e1o l\u1ed7i / Stack trace
+move_down=Di chuy\u1ec3n xu\u1ed1ng
+yes=C\u00f3
+change_password=\u0110\u1ed5i m\u1eadt kh\u1ea9u
+database_name=T\u00ean c\u01a1 s\u1ee1 d\u1eef li\u1ec7u
+send=G\u1eedi
+percent=Ph\u1ea7n tr\u0103m
+please_enter_a_valid_date=Vui l\u00f2ng nh\u1eadp ng\u00e0y h\u1ee3p l\u1ec7
 left_side_of_expression=Left side of Expression
-my_datamart=Tr\u00EDch xu\u1EA5t d\u1EEF li\u1EC7u
-expression=Bi\u1EC3u th\u1EE9c
+my_datamart=Tr\u00edch xu\u1ea5t d\u1eef li\u1ec7u
+expression=Bi\u1ec3u th\u1ee9c
 weekday.short.thursday=Th.5
-dhis2_issue_tracking=Theo d\u00F5i c\u00E1c v\u1EA5n \u0111\u1EC1 trong DHIS2
-type=Ki\u1EC3u/Lo\u1EA1i
-month.short.february=Th\u00E1ng 2
-no_item_to_export=Hi\u1EC7n t\u1EA1i kh\u00F4ng c\u00F3 d\u1EEF li\u1EC7u n\u00E0o \u0111\u1EC3 xu\u1EA5t b\u00E1o c\u00E1o
-exception_explanation_text=Xin c\u00E1o l\u1ED7i c\u00F9ng qu\u00FD v\u1ECB. H\u1EC7 th\u1ED1ng kh\u00F4ng th\u1EC3 th\u1EF1c thi thao t\u00E1c n\u00E0y. Tuy nhi\u00EAn, kh\u00F4ng d\u1EEF li\u1EC7u n\u00E0o b\u1ECB m\u1EA5t v\u00E0 b\u1EA1n c\u00F3 th\u1EC3 b\u1EA5m n\u00FAt back \u0111\u1EC3 v\u1EC1 trang tr\u01B0\u1EDBc \u0111\u00F3. N\u1EBFu b\u1EA1n mu\u1ED1n th\u00F4ng b\u00E1o cho ch\u00FAng t\u00F4i l\u1ED7i n\u00E0y, b\u1EA1n c\u00F3 th\u1EC3 l\u01B0u trang l\u1ED7i n\u00E0y b\u1EB1ng c\u00E1ch ch\u1ECDn "File -> Save (page as)" tr\u00EAn tr\u00ECnh duy\u1EC7t web v\u00E0 g\u1EDFi k\u00E8m cho ch\u00FAng t\u00F4i. Chi ti\u1EBFt c\u1EE7a l\u1ED7i n\u00E0y \u0111\u01B0\u1EE3c li\u1EC7t k\u00EA sau \u0111\u00E2y.
+dhis2_issue_tracking=Theo d\u00f5i c\u00e1c v\u1ea5n \u0111\u1ec1 trong DHIS2
+type=Ki\u1ec3u/Lo\u1ea1i
+month.short.february=Th\u00e1ng 2
+no_item_to_export=Hi\u1ec7n t\u1ea1i kh\u00f4ng c\u00f3 d\u1eef li\u1ec7u n\u00e0o \u0111\u1ec3 xu\u1ea5t b\u00e1o c\u00e1o
+exception_explanation_text=Xin c\u00e1o l\u1ed7i c\u00f9ng qu\u00fd v\u1ecb. H\u1ec7 th\u1ed1ng kh\u00f4ng th\u1ec3 th\u1ef1c thi thao t\u00e1c n\u00e0y. Tuy nhi\u00ean, kh\u00f4ng d\u1eef li\u1ec7u n\u00e0o b\u1ecb m\u1ea5t v\u00e0 b\u1ea1n c\u00f3 th\u1ec3 b\u1ea5m n\u00fat back \u0111\u1ec3 v\u1ec1 trang tr\u01b0\u1edbc \u0111\u00f3. N\u1ebfu b\u1ea1n mu\u1ed1n th\u00f4ng b\u00e1o cho ch\u00fang t\u00f4i l\u1ed7i n\u00e0y, b\u1ea1n c\u00f3 th\u1ec3 l\u01b0u trang l\u1ed7i n\u00e0y b\u1eb1ng c\u00e1ch ch\u1ecdn "File -> Save (page as)" tr\u00ean tr\u00ecnh duy\u1ec7t web v\u00e0 g\u1edfi k\u00e8m cho ch\u00fang t\u00f4i. Chi ti\u1ebft c\u1ee7a l\u1ed7i n\u00e0y \u0111\u01b0\u1ee3c li\u1ec7t k\u00ea sau \u0111\u00e2y.
 format.time=HH\:mm
-please_select_indicator=Vui l\u00F2ng ch\u1ECDn ch\u1EC9 s\u1ED1 \!
-id_not_numeric=\u0110\u1ECBnh danh kh\u00F4ng l\u00E0 con s\u1ED1
-numerator_aggregation_operator=Ki\u1EC3u s\u1ED1 li\u1EC7u t\u1ED5ng h\u1EE3p cho t\u1EED s\u1ED1
-closedDate_should_be_greater_than_openDate=Ng\u00E0y k\u1EBFt th\u00FAc n\u00EAn sau ng\u00E0y m\u1EDF \u0111\u1EA7u
+please_select_indicator=Vui l\u00f2ng ch\u1ecdn ch\u1ec9 s\u1ed1 \!
+id_not_numeric=\u0110\u1ecbnh danh kh\u00f4ng l\u00e0 con s\u1ed1
+numerator_aggregation_operator=Ki\u1ec3u s\u1ed1 li\u1ec7u t\u1ed5ng h\u1ee3p cho t\u1eed s\u1ed1
+closedDate_should_be_greater_than_openDate=Ng\u00e0y k\u1ebft th\u00fac n\u00ean sau ng\u00e0y m\u1edf \u0111\u1ea7u
 less_than_symbol=<
-unselect_in_group=B\u1ECF ch\u1ECDn trong nh\u00F3m
-show_details=Xem chi ti\u1EBFt
-access_denied=Truy c\u1EADp b\u1ECB t\u1EEB ch\u1ED1i
+unselect_in_group=B\u1ecf ch\u1ecdn trong nh\u00f3m
+show_details=Xem chi ti\u1ebft
+access_denied=Truy c\u1eadp b\u1ecb t\u1eeb ch\u1ed1i
 mobile_client_description=Client for data capture on mobile devices
 format.date.label=dd-mm-yyyy
-month.january=Th\u00E1ng m\u1ED9t
-release=Ph\u00E1t h\u00E0nh
-required=Y\u00EAu c\u1EA7u
-translation_select_ref=[ Ch\u1ECDn tham kh\u1EA3o ]
+month.january=Th\u00e1ng m\u1ed9t
+release=Ph\u00e1t h\u00e0nh
+required=Y\u00eau c\u1ea7u
+translation_select_ref=[ Ch\u1ecdn tham kh\u1ea3o ]
 format.Monthly.startDate=MMMM yyyy
-translation_label_region=V\u00F9ng
-organisation_units=C\u00E1c \u0111\u01A1n v\u1ECB
-FinancialApril=T\u00E0i ch\u00EDnh-Th\u00E1ng 4
+translation_label_region=V\u00f9ng
+organisation_units=C\u00e1c \u0111\u01a1n v\u1ecb
+FinancialApril=T\u00e0i ch\u00ednh-Th\u00e1ng 4
 mobile_client=Mobile client
-FinancialOct=T\u00E0i ch\u00EDnh-Th\u00E1ng 10
-please_enter_valid_negative_integer=H\u00E3y nh\u1EADp m\u1ED9t s\u1ED1 nguy\u00EAn d\u01B0\u01A1ng h\u1EE3p l\u1EC7
-external_configuration_directory=Th\u01B0 m\u1EE5c ch\u1EE9 c\u1EA5u h\u00ECnh
-please_enter_a_valid_url=Vui l\u00F2ng nh\u1EADp \u0111\u1ECBa ch\u1EC9 trang web h\u1EE3p l\u1EC7
-cannot_clear_selected_orgunits=Kh\u00F4ng th\u1EC3 x\u00F3a c\u00E1c \u0111\u01A1n v\u1ECB \u0111\u01B0\u1EE3c ch\u1ECDn tr\u01B0\u1EDBc \u0111\u00F3
-unknown_source=Kh\u00F4ng r\u00F5 ngu\u1ED3n g\u1ED1c
-ZIP_code_must_be_in_the_range=ZIP-code ph\u1EA3i n\u1EB1m trong kho\u1EA3n t\u1EEB 902xx-xxxx \u0111\u1EBF 905-xx-xxxx
-translation_label_comment=Ch\u00FA th\u00EDch
-false=Kh\u00F4ng
-date_selector=Ch\u1ECDn m\u1ED9t ng\u00E0y
+FinancialOct=T\u00e0i ch\u00ednh-Th\u00e1ng 10
+please_enter_valid_negative_integer=H\u00e3y nh\u1eadp m\u1ed9t s\u1ed1 nguy\u00ean d\u01b0\u01a1ng h\u1ee3p l\u1ec7
+external_configuration_directory=Th\u01b0 m\u1ee5c ch\u1ee9 c\u1ea5u h\u00ecnh
+please_enter_a_valid_url=Vui l\u00f2ng nh\u1eadp \u0111\u1ecba ch\u1ec9 trang web h\u1ee3p l\u1ec7
+cannot_clear_selected_orgunits=Kh\u00f4ng th\u1ec3 x\u00f3a c\u00e1c \u0111\u01a1n v\u1ecb \u0111\u01b0\u1ee3c ch\u1ecdn tr\u01b0\u1edbc \u0111\u00f3
+unknown_source=Kh\u00f4ng r\u00f5 ngu\u1ed3n g\u1ed1c
+ZIP_code_must_be_in_the_range=ZIP-code ph\u1ea3i n\u1eb1m trong kho\u1ea3n t\u1eeb 902xx-xxxx \u0111\u1ebf 905-xx-xxxx
+translation_label_comment=Ch\u00fa th\u00edch
+false=Kh\u00f4ng
+date_selector=Ch\u1ecdn m\u1ed9t ng\u00e0y
 format.FinancialOct.startDate='FY '
-add=Th\u00EAm m\u1EDBi
-contact_person=Ng\u01B0\u1EDDi li\u00EAn h\u1EC7
-please_letters_numbers_spaces_underscores_only=Vui l\u00F2ng ch\u1EC9 nh\u1EADp ch\u1EEF, s\u1ED1, kho\u1EA3n tr\u1EAFng v\u00E0 k\u00FD t\u1EF1 g\u1EA1ch d\u01B0\u1EDBi (_)\t
-dhis-web-caseentry=Qu\u1EA3n l\u00FD d\u1EEF li\u1EC7u c\u00E1 th\u1EC3
-an_exception_occured=C\u00F3 m\u1ED9t l\u1ED7i x\u1EA3y ra trong h\u1EC7 th\u1ED1ng
-format.Weekly.startDate='Tu\u1EA7n' w' '
-not_set=Ch\u01B0a thi\u1EBFt l\u1EADp
-please_select_period=Vui l\u00F2ng ch\u1ECDn th\u1EDDi \u0111i\u1EC3m \!
+add=Th\u00eam m\u1edbi
+contact_person=Ng\u01b0\u1eddi li\u00ean h\u1ec7
+please_letters_numbers_spaces_underscores_only=Vui l\u00f2ng ch\u1ec9 nh\u1eadp ch\u1eef, s\u1ed1, kho\u1ea3n tr\u1eafng v\u00e0 k\u00fd t\u1ef1 g\u1ea1ch d\u01b0\u1edbi (_)\t
+dhis-web-caseentry=Qu\u1ea3n l\u00fd d\u1eef li\u1ec7u c\u00e1 th\u1ec3
+an_exception_occured=C\u00f3 m\u1ed9t l\u1ed7i x\u1ea3y ra trong h\u1ec7 th\u1ed1ng
+format.Weekly.startDate='Tu\u1ea7n' w' '
+not_set=Ch\u01b0a thi\u1ebft l\u1eadp
+please_select_period=Vui l\u00f2ng ch\u1ecdn th\u1eddi \u0111i\u1ec3m \!
 format.Monthly.endDate=
-dhis-web-maintenance-dataadmin=Qu\u1EA3n tr\u1ECB d\u1EEF li\u1EC7u
+dhis-web-maintenance-dataadmin=Qu\u1ea3n tr\u1ecb d\u1eef li\u1ec7u
 format.FinancialOct.endDate=yyyy
-current_user=Ng\u01B0\u1EDDi d\u00F9ng hi\u1EC7n t\u1EA1i
-size_of_page=K\u00EDch th\u01B0\u1EDBc trang
-dhis-web-mobile=\u1EE8ng d\u1EE5ng tr\u00EAn di \u0111\u1ED9ng
+current_user=Ng\u01b0\u1eddi d\u00f9ng hi\u1ec7n t\u1ea1i
+size_of_page=K\u00edch th\u01b0\u1edbc trang
+dhis-web-mobile=\u1ee8ng d\u1ee5ng tr\u00ean di \u0111\u1ed9ng
 equal_to_symbol=\=\=
-os_architecture=Ki\u1EBFn tr\u00FAc h\u1EC7 \u0111i\u1EC1u h\u00E0nh
-dhis-web-light=DHIS2 - Thu g\u1ECDn
-aggregation_operator=To\u00E1n t\u1EED t\u1EADp h\u1EE3p
-available=Hi\u1EC7n c\u00F3
-system_status=Tr\u1EA1ng th\u00E1i h\u1EC7 th\u1ED1ng
-please_enter_a_valid_date_iso=Vui l\u00F2ng nh\u1EADp ng\u00E0y h\u1EE3p l\u1EC7 theo chu\u1EA9n (VD 1990-01-01).
-process=\u0110ang x\u1EED l\u00FD
-organisation_unit_selection_tree=C\u00E2y \u0111\u01A1n v\u1ECB
+os_architecture=Ki\u1ebfn tr\u00fac h\u1ec7 \u0111i\u1ec1u h\u00e0nh
+dhis-web-light=DHIS2 - Thu g\u1ecdn
+aggregation_operator=To\u00e1n t\u1eed t\u1eadp h\u1ee3p
+available=Hi\u1ec7n c\u00f3
+system_status=Tr\u1ea1ng th\u00e1i h\u1ec7 th\u1ed1ng
+please_enter_a_valid_date_iso=Vui l\u00f2ng nh\u1eadp ng\u00e0y h\u1ee3p l\u1ec7 theo chu\u1ea9n (VD 1990-01-01).
+process=\u0110ang x\u1eed l\u00fd
+organisation_unit_selection_tree=C\u00e2y \u0111\u01a1n v\u1ecb
 format.Relative.endDate=dd-MM-yyyy
-please_enter_at_least_n_character=Vui l\u00F2ng nh\u1EADp \u00EDt nh\u1EA5t {0} k\u00FD t\u1EF1
-annualized=H\u00E0ng n\u0103m
-please_enter_valid_integer=H\u00E3y nh\u1EADp m\u1ED9t s\u1ED1 nguy\u00EAn h\u1EE3p l\u1EC7
-letters_or_punctuation_only_please=Ch\u1EC9 nh\u1EADp ch\u1EEF ho\u1EB7c d\u1EA5u ch\u1EA5m
-opening_date=Ng\u00E0y m\u1EDF
-specify_organisationunit=Vui l\u00F2ng ch\u1ECDn \u0111\u01A1n v\u1ECB
-dhis-web-maintenance-organisationunit=Qu\u1EA3n tr\u1ECB \u0111\u01A1n v\u1ECB
-please_wait_while_the_system_is_processing=H\u00E3y ch\u1EDD khi h\u1EC7 th\u1ED1ng \u0111ang x\u1EED l\u00FD
-this_field_is_required=Tr\u01B0\u1EDDng n\u00E0y ph\u1EA3i nh\u1EADp
-Quarterly=H\u00E0ng 3 th\u00E1ng
-expression_is_empty=Bi\u1EC3u th\u1EE9c r\u1ED7ng
-format.SixMonthly.startDate=MMM '\u0111\u1EBFn '
-move=Di chuy\u1EC3n
-select_children=Ch\u1ECDn c\u00E2y \u0111\u01A1n v\u1ECB con
-about_dhis2=Th\u00F4ng tin v\u1EC1 DHIS2.0
-on_time=\u0110\u00FAng gi\u1EDD
-dhis-web-datastatus=Tr\u1EA1ng th\u00E1i d\u1EEF li\u1EC7u
-indicators=C\u00E1c ch\u1EC9 s\u1ED1
-translation_save=L\u01B0u
-ok=\u0110\u1ED3ng \u00FD
-translation_duplicated_name_with=Vui l\u00F2ng nh\u1EADp t\u00EAn kh\u00E1c. L\u00FD do\: Tr\u00F9ng l\u1EB7p v\u1EDBi
-dhis-web-maintenance-datadictionary=Qu\u1EA3n tr\u1ECB Ch\u1EC9 ti\u00EAu - Ch\u1EC9 s\u1ED1
-translation_shortname_wellformed=T\u00EAn vi\u1EBFt t\u1EAFt ch\u1EC9 ch\u1EE9a c\u00E1c k\u00FD t\u1EF1 Alphabet(a-z), s\u1ED1(0-9), d\u1EA5u g\u1EA1ch d\u01B0\u1EDBi(_), kho\u1EA3ng tr\u1EAFng
-please_enter_a_letters_or_digits=H\u00E3y nh\u1EADp ch\u1EEF ho\u1EB7c s\u1ED1
-edit=Ch\u1EC9nh s\u1EEDa
-hide_menu=\u1EA8n tr\u00ECnh \u0111\u01A1n
-please_enter_valid_number=H\u00E3y nh\u1EADp m\u1ED9t s\u1ED1 h\u1EE3p l\u1EC7
-error_occurred=L\u1ED7i trong qu\u00E1 tr\u00ECnh duy\u1EC7t d\u1EEF li\u1EC7u.
-short_name=T\u00EAn vi\u1EBFt t\u1EAFt
-my_datamart_description=D\u1EEF li\u1EC7u tr\u00EDch xu\u1EA5t d\u00F9ng cho ph\u00E2n t\u00EDch c\u1EE5c b\u1ED9
-category_option_combo_does_not_exist=T\u1EADp t\u00F9y ch\u1ECDn ph\u00E2n lo\u1EA1i kh\u00F4ng t\u1ED3n t\u1EA1i
-log_out=Tho\u00E1t
-maintenance=Qu\u1EA3n L\u00FD
+please_enter_at_least_n_character=Vui l\u00f2ng nh\u1eadp \u00edt nh\u1ea5t {0} k\u00fd t\u1ef1
+annualized=H\u00e0ng n\u0103m
+please_enter_valid_integer=H\u00e3y nh\u1eadp m\u1ed9t s\u1ed1 nguy\u00ean h\u1ee3p l\u1ec7
+letters_or_punctuation_only_please=Ch\u1ec9 nh\u1eadp ch\u1eef ho\u1eb7c d\u1ea5u ch\u1ea5m
+opening_date=Ng\u00e0y m\u1edf
+specify_organisationunit=Vui l\u00f2ng ch\u1ecdn \u0111\u01a1n v\u1ecb
+dhis-web-maintenance-organisationunit=Qu\u1ea3n tr\u1ecb \u0111\u01a1n v\u1ecb
+please_wait_while_the_system_is_processing=H\u00e3y ch\u1edd khi h\u1ec7 th\u1ed1ng \u0111ang x\u1eed l\u00fd
+this_field_is_required=Tr\u01b0\u1eddng n\u00e0y ph\u1ea3i nh\u1eadp
+Quarterly=H\u00e0ng 3 th\u00e1ng
+expression_is_empty=Bi\u1ec3u th\u1ee9c r\u1ed7ng
+format.SixMonthly.startDate=MMM '\u0111\u1ebfn '
+move=Di chuy\u1ec3n
+select_children=Ch\u1ecdn c\u00e2y \u0111\u01a1n v\u1ecb con
+about_dhis2=Th\u00f4ng tin v\u1ec1 DHIS2.0
+on_time=\u0110\u00fang gi\u1edd
+dhis-web-datastatus=Tr\u1ea1ng th\u00e1i d\u1eef li\u1ec7u
+indicators=C\u00e1c ch\u1ec9 s\u1ed1
+translation_save=L\u01b0u
+ok=\u0110\u1ed3ng \u00fd
+translation_duplicated_name_with=Vui l\u00f2ng nh\u1eadp t\u00ean kh\u00e1c. L\u00fd do\: Tr\u00f9ng l\u1eb7p v\u1edbi
+dhis-web-maintenance-datadictionary=Qu\u1ea3n tr\u1ecb Ch\u1ec9 ti\u00eau - Ch\u1ec9 s\u1ed1
+translation_shortname_wellformed=T\u00ean vi\u1ebft t\u1eaft ch\u1ec9 ch\u1ee9a c\u00e1c k\u00fd t\u1ef1 Alphabet(a-z), s\u1ed1(0-9), d\u1ea5u g\u1ea1ch d\u01b0\u1edbi(_), kho\u1ea3ng tr\u1eafng
+please_enter_a_letters_or_digits=H\u00e3y nh\u1eadp ch\u1eef ho\u1eb7c s\u1ed1
+edit=Ch\u1ec9nh s\u1eeda
+hide_menu=\u1ea8n tr\u00ecnh \u0111\u01a1n
+please_enter_valid_number=H\u00e3y nh\u1eadp m\u1ed9t s\u1ed1 h\u1ee3p l\u1ec7
+error_occurred=L\u1ed7i trong qu\u00e1 tr\u00ecnh duy\u1ec7t d\u1eef li\u1ec7u.
+short_name=T\u00ean vi\u1ebft t\u1eaft
+my_datamart_description=D\u1eef li\u1ec7u tr\u00edch xu\u1ea5t d\u00f9ng cho ph\u00e2n t\u00edch c\u1ee5c b\u1ed9
+category_option_combo_does_not_exist=T\u1eadp t\u00f9y ch\u1ecdn ph\u00e2n lo\u1ea1i kh\u00f4ng t\u1ed3n t\u1ea1i
+log_out=Tho\u00e1t
+maintenance=Qu\u1ea3n L\u00fd
 format.date=dd-MM-yyyy
-left_side_description=M\u00F4 t\u1EA3 b\u00EAn tr\u00E1i
-please_do_not_enter_same_values=Kh\u00F4ng \u0111\u01B0\u1EE3c nh\u1EADp gi\u00E1 tr\u1ECB tr\u00F9ng nhau
-enter_message=Nh\u1EADp th\u00F4ng b\u00E1o
-weekday.saturday=Th\u1EE9 b\u1EA3y
-select_all=Ch\u1ECDn t\u1EA5t c\u1EA3
-month.short.may=Th\u00E1ng 5
-filter_by_name=L\u1ECDc theo t\u00EAn
-message_to_the_dhis2_development_team=G\u1EEDi th\u1EAFc m\u1EAFc t\u1EDBi nh\u00F3m ph\u00E1t tri\u1EC3n
-ireport_description=C\u00F4ng c\u1EE5 thi\u1EBFt k\u1EBF cho b\u00E1o c\u00E1o chu\u1EA9n
-dhis-web-visualizer=\ Hi\u1EC3n th\u1ECB d\u1EEF li\u1EC7u
-no=Kh\u00F4ng
-month.short.january=Th\u00E1ng 1
-entry=M\u1EE5c
-please_enter_a_value_less_than_or_equal_to=Vui l\u00F2ng nh\u1EADp gi\u00E1 tr\u1ECB nh\u1ECF h\u01A1n ho\u1EB7c b\u1EB1ng {1}
-first_name=T\u00EAn
+left_side_description=M\u00f4 t\u1ea3 b\u00ean tr\u00e1i
+please_do_not_enter_same_values=Kh\u00f4ng \u0111\u01b0\u1ee3c nh\u1eadp gi\u00e1 tr\u1ecb tr\u00f9ng nhau
+enter_message=Nh\u1eadp th\u00f4ng b\u00e1o
+weekday.saturday=Th\u1ee9 b\u1ea3y
+select_all=Ch\u1ecdn t\u1ea5t c\u1ea3
+month.short.may=Th\u00e1ng 5
+filter_by_name=L\u1ecdc theo t\u00ean
+message_to_the_dhis2_development_team=G\u1eedi th\u1eafc m\u1eafc t\u1edbi nh\u00f3m ph\u00e1t tri\u1ec3n
+ireport_description=C\u00f4ng c\u1ee5 thi\u1ebft k\u1ebf cho b\u00e1o c\u00e1o chu\u1ea9n
+dhis-web-visualizer=\ Hi\u1ec3n th\u1ecb d\u1eef li\u1ec7u
+no=Kh\u00f4ng
+month.short.january=Th\u00e1ng 1
+entry=M\u1ee5c
+please_enter_a_value_less_than_or_equal_to=Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb nh\u1ecf h\u01a1n ho\u1eb7c b\u1eb1ng {1}
+first_name=T\u00ean
 dhis-web-sms=SMS
-name=T\u00EAn
-format.BiMonthly.startDate=MMM '\u0111\u1EBFn '
+name=T\u00ean
+format.BiMonthly.startDate=MMM '\u0111\u1ebfn '
 format.time.label=hh\:mm
-indicator_type=Lo\u1EA1i ch\u1EC9 s\u1ED1
-month.october=Th\u00E1ng m\u01B0\u1EDDi
-java_vendor=Nh\u00E0 cung c\u1EA5p Java
+indicator_type=Lo\u1ea1i ch\u1ec9 s\u1ed1
+month.october=Th\u00e1ng m\u01b0\u1eddi
+java_vendor=Nh\u00e0 cung c\u1ea5p Java
 format.Yearly.startDate=yyyy
-please_enter_a_value_with_a_valid_expression=Vui l\u00F2ng nh\u1EADp gi\u00E1 tr\u1ECB v\u1EDBi bi\u1EC3u th\u1EE9c h\u1EE3p l\u1EC7
+please_enter_a_value_with_a_valid_expression=Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb v\u1edbi bi\u1ec3u th\u1ee9c h\u1ee3p l\u1ec7
 format.OnChange.startDate=dd-MM-yyyy '- '
-dhis-web-maintenance-in=C\u1EA5u h\u00ECnh
-Weekly=H\u00E0ng tu\u1EA7n
-email=Th\u01B0 \u0111i\u1EC7n t\u1EED
-multiple_choice=\u0110a t\u00F9y ch\u1ECDn
-dhis-web-maintenance-mobile=Thi\u1EBFt l\u1EADp ch\u1EA1y v\u1EDBi \u0110T DI \u0110\u1ED8NG
-dhis-web-excelimport=T\u00EDch h\u1EE3p d\u1EEF li\u1EC7u
-comment=Ch\u00FA th\u00EDch
-letters_only_please=Ch\u1EC9 ch\u1EA5p nh\u1EADn ch\u1EEF.
-dhis-web-datamart=X\u1EED l\u00FD d\u1EEF li\u1EC7u
-translation_locale_already_exists=V\u00F9ng n\u00E0y \u0111\u00E3 t\u1ED3n t\u1EA1i
-dataelement=Ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u
-no_start_white_space_please=Kh\u00F4ng b\u1EAFt \u0111\u1EA7u v\u1EDBi kho\u1EA3ng tr\u1EAFng
-Survey=T\u1ED5ng qu\u00E1t
-please_fix_this_field=Vui l\u00F2ng s\u1EEDa l\u1ED7i tr\u01B0\u1EDDng n\u00E0y
-translation_locale=V\u00F9ng
-actual=Th\u1EF1c t\u1EBF
-please_enter_valid_phone_number=Vui l\u00F2ng nh\u1EADp s\u1ED1 \u0111i\u1EC7n tho\u1EA1i h\u1EE3p l\u1EC7
-month.short.june=Th\u00E1ng 6
+dhis-web-maintenance-in=C\u1ea5u h\u00ecnh
+Weekly=H\u00e0ng tu\u1ea7n
+email=Th\u01b0 \u0111i\u1ec7n t\u1eed
+multiple_choice=\u0110a t\u00f9y ch\u1ecdn
+dhis-web-maintenance-mobile=Thi\u1ebft l\u1eadp ch\u1ea1y v\u1edbi \u0110T DI \u0110\u1ed8NG
+dhis-web-excelimport=T\u00edch h\u1ee3p d\u1eef li\u1ec7u
+comment=Ch\u00fa th\u00edch
+letters_only_please=Ch\u1ec9 ch\u1ea5p nh\u1eadn ch\u1eef.
+dhis-web-datamart=X\u1eed l\u00fd d\u1eef li\u1ec7u
+translation_locale_already_exists=V\u00f9ng n\u00e0y \u0111\u00e3 t\u1ed3n t\u1ea1i
+dataelement=Ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+no_start_white_space_please=Kh\u00f4ng b\u1eaft \u0111\u1ea7u v\u1edbi kho\u1ea3ng tr\u1eafng
+Survey=T\u1ed5ng qu\u00e1t
+please_fix_this_field=Vui l\u00f2ng s\u1eeda l\u1ed7i tr\u01b0\u1eddng n\u00e0y
+translation_locale=V\u00f9ng
+actual=Th\u1ef1c t\u1ebf
+please_enter_valid_phone_number=Vui l\u00f2ng nh\u1eadp s\u1ed1 \u0111i\u1ec7n tho\u1ea1i h\u1ee3p l\u1ec7
+month.short.june=Th\u00e1ng 6
 format.TwoYearly.endDate=yyyy
-build_date=Ng\u00E0y tri\u1EC3n khai
-get_pdf=Xu\u1EA5t t\u1EADp tin PDF
-close=\u0110\u00F3ng
-format.FinancialApril.startDate=dd MMM yyyy '\u0111\u1EBFn '
-remove=X\u00F3a
-help=Gi\u00FAp \u0111\u1EE1
-main_menu=Tr\u00ECnh \u0111\u01A1n
-retype_password=X\u00E1c nh\u1EADn m\u1EADt kh\u1EA9u
-update=C\u1EADp nh\u1EADt
-no_of_pages=S\u1ED1 trang
-geo_code=M\u00E3 \u0111\u1ECBa l\u00FD
-code=M\u00E3
-foxit_description=Tr\u00ECnh \u0111\u1ECDc PDF cho Windows
-phone_number=\u0110i\u1EC7n tho\u1EA1i li\u00EAn l\u1EA1c
-dhis-web-dashboard=Ph\u00E2n t\u00EDch d\u1EEF li\u1EC7u
-jump_to_page=Nh\u1EA3y t\u1EDBi trang
+build_date=Ng\u00e0y tri\u1ec3n khai
+get_pdf=Xu\u1ea5t t\u1eadp tin PDF
+close=\u0110\u00f3ng
+format.FinancialApril.startDate=dd MMM yyyy '\u0111\u1ebfn '
+remove=X\u00f3a
+help=Gi\u00fap \u0111\u1ee1
+main_menu=Tr\u00ecnh \u0111\u01a1n
+retype_password=X\u00e1c nh\u1eadn m\u1eadt kh\u1ea9u
+update=C\u1eadp nh\u1eadt
+no_of_pages=S\u1ed1 trang
+geo_code=M\u00e3 \u0111\u1ecba l\u00fd
+code=M\u00e3
+foxit_description=Tr\u00ecnh \u0111\u1ecdc PDF cho Windows
+phone_number=\u0110i\u1ec7n tho\u1ea1i li\u00ean l\u1ea1c
+dhis-web-dashboard=Ph\u00e2n t\u00edch d\u1eef li\u1ec7u
+jump_to_page=Nh\u1ea3y t\u1edbi trang
 format.Yearly.endDate=
-translation_locale_added=V\u00F9ng \u0111\u00E3 th\u00EAm
-select_in_group=Ch\u1ECDn trong nh\u00F3m
-access_denied_message=B\u1EA1n kh\u00F4ng c\u00F3 quy\u1EC1n truy c\u1EADp tr\u00EAn trang n\u00E0y.
-organisation_unit_hierarchy=C\u00E2y ph\u00E2n c\u1EA5p \u0111\u01A1n v\u1ECB
+translation_locale_added=V\u00f9ng \u0111\u00e3 th\u00eam
+select_in_group=Ch\u1ecdn trong nh\u00f3m
+access_denied_message=B\u1ea1n kh\u00f4ng c\u00f3 quy\u1ec1n truy c\u1eadp tr\u00ean trang n\u00e0y.
+organisation_unit_hierarchy=C\u00e2y ph\u00e2n c\u1ea5p \u0111\u01a1n v\u1ecb
 weekday.short.saturday=Th.7
-month.short.july=Th\u00E1ng 7
-month.short.december=Th\u00E1ng 12
-month.may=Th\u00E1ng n\u0103m
-dhis-web-jforum-integration=Di\u1EC5n \u0111\u00E0n
-denominator_aggregation_operator=Ki\u1EC3u s\u1ED1 li\u1EC7u t\u1ED5ng h\u1EE3p cho m\u1EABu s\u1ED1
+month.short.july=Th\u00e1ng 7
+month.short.december=Th\u00e1ng 12
+month.may=Th\u00e1ng n\u0103m
+dhis-web-jforum-integration=Di\u1ec5n \u0111\u00e0n
+denominator_aggregation_operator=Ki\u1ec3u s\u1ed1 li\u1ec7u t\u1ed5ng h\u1ee3p cho m\u1eabu s\u1ed1
 equal_to=\=\=
-month.november=Th\u00E1ng m\u01B0\u1EDDi m\u1ED9t
-rename=\u0110\u1ED5i t\u00EAn
+month.november=Th\u00e1ng m\u01b0\u1eddi m\u1ed9t
+rename=\u0110\u1ed5i t\u00ean
 format.datetime=dd-MM-yyyy HH\:mm
-password_must_contain_at_least_one_capital_letter_and_one_digit=M\u1EADt kh\u1EA9u ph\u1EA3i ch\u1EE9a \u00EDt nh\u1EA5t 1 k\u00FD t\u1EF1 IN HOA v\u00E0 m\u1ED9t s\u1ED1.
-date=Ng\u00E0y th\u00E1ng
-unselect_at_level=B\u1ECF ch\u1ECDn t\u1EA1i c\u1EA5p
-SixMonthly=H\u00E0ng 6 th\u00E1ng
-please_select_dataelement=Vui l\u00F2ng ch\u1ECDn ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u \!
-alternative_name=T\u00EAn thay th\u1EBF
+password_must_contain_at_least_one_capital_letter_and_one_digit=M\u1eadt kh\u1ea9u ph\u1ea3i ch\u1ee9a \u00edt nh\u1ea5t 1 k\u00fd t\u1ef1 IN HOA v\u00e0 m\u1ed9t s\u1ed1.
+date=Ng\u00e0y th\u00e1ng
+unselect_at_level=B\u1ecf ch\u1ecdn t\u1ea1i c\u1ea5p
+SixMonthly=H\u00e0ng 6 th\u00e1ng
+please_select_dataelement=Vui l\u00f2ng ch\u1ecdn ph\u1ea7n t\u1eed d\u1eef li\u1ec7u \!
+alternative_name=T\u00ean thay th\u1ebf
 greater_than_symbol=>
-please_enter_a_value_between_n_character=Vui l\u00F2ng nh\u1EADp gi\u00E1 tr\u1ECB c\u00F3 chi\u1EC1u d\u00E0i t\u1EEB {0} \u0111\u1EBFn {1} k\u00FD t\u1EF1.
-warning=C\u1EA3nh b\u00E1o
-please_enter_at_least_n_words=Vui l\u00F2ng nh\u1EADp \u00EDt nh\u1EA5t {0} t\u1EEB.
-dhis-web-survey=Kh\u1EA3o s\u00E1t - M\u1EE5c ti\u00EAu
-contact_details=Th\u00F4ng tin li\u00EAn h\u1EC7
-period_type=Ki\u1EC3u th\u1EDDi gian
-month.short.august=Th\u00E1ng 8
-locate_organisation_unit_by_code_or_name=\u0110\u1ECBnh v\u1ECB \u0111\u01A1n v\u1ECB theo m\u00E3 s\u1ED1 hay t\u00EAn g\u1ECDi
+please_enter_a_value_between_n_character=Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb c\u00f3 chi\u1ec1u d\u00e0i t\u1eeb {0} \u0111\u1ebfn {1} k\u00fd t\u1ef1.
+warning=C\u1ea3nh b\u00e1o
+please_enter_at_least_n_words=Vui l\u00f2ng nh\u1eadp \u00edt nh\u1ea5t {0} t\u1eeb.
+dhis-web-survey=Kh\u1ea3o s\u00e1t - M\u1ee5c ti\u00eau
+contact_details=Th\u00f4ng tin li\u00ean h\u1ec7
+period_type=Ki\u1ec3u th\u1eddi gian
+month.short.august=Th\u00e1ng 8
+locate_organisation_unit_by_code_or_name=\u0110\u1ecbnh v\u1ecb \u0111\u01a1n v\u1ecb theo m\u00e3 s\u1ed1 hay t\u00ean g\u1ecdi
 format.Survey.endDate=
-denominator_description=M\u00F4 t\u1EA3 m\u1EABu s\u1ED1
-right_side_description=M\u00F4 t\u1EA3 b\u00EAn ph\u1EA3i
-java_opts=T\u00F9y ch\u1ECDn Java
-translation_duplicated_shortname_with=Xin l\u1ED7i\! T\u00EAn vi\u1EBFt t\u1EAFt n\u00E0y \u0111\u00E3 c\u00F3 trong H\u1EC7 th\u1ED1ng v\u1EDBi
-month.short.october=Th\u00E1ng 10
-month.september=Th\u00E1ng ch\u00EDn
-dhis-web-gis=B\u1EA3n \u0111\u1ED3 s\u1ED1 h\u00F3a
-please_enter_a_value_less_than_or_equal_to_n=Vui l\u00F2ng nh\u1EADp con s\u1ED1 nh\u1ECF h\u01A1n ho\u1EB7c b\u1EB1ng {0}.
-organisation_unit_groups=C\u00E1c nh\u00F3m \u0111\u01A1n v\u1ECB
-dhis-web-spreadsheet-reporting=B\u00E1o c\u00E1o v\u1EDBi B\u1EA3ng T\u00EDnh
-feedback=Ph\u1EA3n h\u1ED3i
-count=\u0110\u1EBFm
-average=Trung b\u00ECnh
-unrecognized_coordinate_string=Chu\u1ED7i \u0111\u1ECBnh v\u1ECB kh\u00F4ng nh\u1EADn bi\u1EBFt
-update_user=C\u1EADp nh\u1EADt th\u00F4ng tin ng\u01B0\u1EDDi d\u00F9ng
-send_feedback=G\u1EEDi ph\u1EA3n h\u1ED3i
-please_enter_valid_time=Vui l\u00F2ng nh\u1EADp th\u1EDDi gian h\u1EE3p l\u1EC7, t\u1EEB 00\:00 \u0111\u1EBFn 23\:59
-expression_not_well_formed=Bi\u1EC3u th\u1EE9c kh\u00F4ng h\u1EE3p l\u1EC7
-exception=Ngo\u1EA1i l\u1EC7
-format.TwoYearly.startDate=yyyy 'v\u00E0 '
+denominator_description=M\u00f4 t\u1ea3 m\u1eabu s\u1ed1
+right_side_description=M\u00f4 t\u1ea3 b\u00ean ph\u1ea3i
+java_opts=T\u00f9y ch\u1ecdn Java
+translation_duplicated_shortname_with=Xin l\u1ed7i\! T\u00ean vi\u1ebft t\u1eaft n\u00e0y \u0111\u00e3 c\u00f3 trong H\u1ec7 th\u1ed1ng v\u1edbi
+month.short.october=Th\u00e1ng 10
+month.september=Th\u00e1ng ch\u00edn
+dhis-web-gis=B\u1ea3n \u0111\u1ed3 s\u1ed1 h\u00f3a
+please_enter_a_value_less_than_or_equal_to_n=Vui l\u00f2ng nh\u1eadp con s\u1ed1 nh\u1ecf h\u01a1n ho\u1eb7c b\u1eb1ng {0}.
+organisation_unit_groups=C\u00e1c nh\u00f3m \u0111\u01a1n v\u1ecb
+dhis-web-spreadsheet-reporting=B\u00e1o c\u00e1o v\u1edbi B\u1ea3ng T\u00ednh
+feedback=Ph\u1ea3n h\u1ed3i
+count=\u0110\u1ebfm
+average=Trung b\u00ecnh
+unrecognized_coordinate_string=Chu\u1ed7i \u0111\u1ecbnh v\u1ecb kh\u00f4ng nh\u1eadn bi\u1ebft
+update_user=C\u1eadp nh\u1eadt th\u00f4ng tin ng\u01b0\u1eddi d\u00f9ng
+send_feedback=G\u1eedi ph\u1ea3n h\u1ed3i
+please_enter_valid_time=Vui l\u00f2ng nh\u1eadp th\u1eddi gian h\u1ee3p l\u1ec7, t\u1eeb 00\:00 \u0111\u1ebfn 23\:59
+expression_not_well_formed=Bi\u1ec3u th\u1ee9c kh\u00f4ng h\u1ee3p l\u1ec7
+exception=Ngo\u1ea1i l\u1ec7
+format.TwoYearly.startDate=yyyy 'v\u00e0 '
 greater_than_or_equal_to=>\=
-validation_rules=C\u00E1c \u0111i\u1EC1u ki\u1EC7n ki\u1EC3m tra
-left_expression=Bi\u1EC3u th\u1EE9c v\u1EBF tr\u00E1i
-Daily=H\u00E0ng ng\u00E0y
-no_page_specified=Kh\u00F4ng c\u00F3 trang n\u00E0o \u0111\u01B0\u1EE3c ch\u1EC9 \u0111\u1ECBnh
-dhis-web-maintenance-user=Qu\u1EA3n tr\u1ECB ng\u01B0\u1EDDi d\u00F9ng
-data_element_groups=C\u00E1c nh\u00F3m ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u
-select_organisationunit=Vui l\u00F2ng ch\u1ECDn m\u1ED9t \u0111\u01A1n v\u1ECB trong c\u00E2y \u0111\u01A1n v\u1ECB.
-please_letters_numbers_spaces_or_some_special_chars_only=Vui l\u00F2ng nh\u1EADp ch\u1EEF, s\u1ED1, kho\u1EA3n tr\u1EAFng ho\u1EB7c k\u00FD t\u1EF1 \u0111\u1EB7c bi\u1EC7t \n nh\u01B0 .,-,(,), Ki\u1EC3m tra gi\u00E1 tr\u1ECB.
-denominator_formula=C\u00F4ng th\u1EE9c m\u1EABu s\u1ED1
-translation_shortname_length=\u0110\u1ED9 d\u00E0i t\u1ED1i \u0111a c\u1EE7a t\u00EAn vi\u1EBFt t\u1EAFt l\u00E0 25 k\u00FD t\u1EF1
-please_enter_a_value_greater_than_or_equal_to=Vui l\u00F2ng nh\u1EADp gi\u00E1 tr\u1ECB l\u1EDBn h\u01A1n ho\u1EB7c b\u1EB1ng {1}
-active=C\u00F3 hi\u1EC7u l\u1EF1c
-format.FinancialJuly.startDate=dd MMM yyyy '\u0111\u1EBFn '
-hisp_homepage=Trang ch\u1EE7 HISP
+validation_rules=C\u00e1c \u0111i\u1ec1u ki\u1ec7n ki\u1ec3m tra
+left_expression=Bi\u1ec3u th\u1ee9c v\u1ebf tr\u00e1i
+Daily=H\u00e0ng ng\u00e0y
+no_page_specified=Kh\u00f4ng c\u00f3 trang n\u00e0o \u0111\u01b0\u1ee3c ch\u1ec9 \u0111\u1ecbnh
+dhis-web-maintenance-user=Qu\u1ea3n tr\u1ecb ng\u01b0\u1eddi d\u00f9ng
+data_element_groups=C\u00e1c nh\u00f3m ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+select_organisationunit=Vui l\u00f2ng ch\u1ecdn m\u1ed9t \u0111\u01a1n v\u1ecb trong c\u00e2y \u0111\u01a1n v\u1ecb.
+please_letters_numbers_spaces_or_some_special_chars_only=Vui l\u00f2ng nh\u1eadp ch\u1eef, s\u1ed1, kho\u1ea3n tr\u1eafng ho\u1eb7c k\u00fd t\u1ef1 \u0111\u1eb7c bi\u1ec7t \n nh\u01b0 .,-,(,), Ki\u1ec3m tra gi\u00e1 tr\u1ecb.
+denominator_formula=C\u00f4ng th\u1ee9c m\u1eabu s\u1ed1
+translation_shortname_length=\u0110\u1ed9 d\u00e0i t\u1ed1i \u0111a c\u1ee7a t\u00ean vi\u1ebft t\u1eaft l\u00e0 25 k\u00fd t\u1ef1
+please_enter_a_value_greater_than_or_equal_to=Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng {1}
+active=C\u00f3 hi\u1ec7u l\u1ef1c
+format.FinancialJuly.startDate=dd MMM yyyy '\u0111\u1ebfn '
+hisp_homepage=Trang ch\u1ee7 HISP
 format.FinancialJuly.endDate=dd MMM yyyy
-month.august=Th\u00E1ng t\u00E1m
-error=Th\u00F4ng b\u00E1o l\u1ED7i
-move_all=Ch\u1ECDn t\u1EA5t c\u1EA3
-remove_all=B\u1ECF ch\u1ECDn t\u1EA5t c\u1EA3
+month.august=Th\u00e1ng t\u00e1m
+error=Th\u00f4ng b\u00e1o l\u1ed7i
+move_all=Ch\u1ecdn t\u1ea5t c\u1ea3
+remove_all=B\u1ecf ch\u1ecdn t\u1ea5t c\u1ea3
 weekday.short.wednesday=Th.4
-go=Nh\u1EA3y
+go=Nh\u1ea3y
 format.datetime.label=dd-mm-yyyy hh\:mm
-dhis-web-dashboard-integration=B\u1EA3ng \u0111i\u1EC1u khi\u1EC3n
-please_fill_out_at_least_one_of_these_fields=Vui l\u00F2ng \u0111i\u1EC1n \u00EDt nh\u1EA5t m\u1ED9t trong s\u1ED1 c\u00E1c tr\u01B0\u1EDDng sau.
+dhis-web-dashboard-integration=B\u1ea3ng \u0111i\u1ec1u khi\u1ec3n
+please_fill_out_at_least_one_of_these_fields=Vui l\u00f2ng \u0111i\u1ec1n \u00edt nh\u1ea5t m\u1ed9t trong s\u1ed1 c\u00e1c tr\u01b0\u1eddng sau.
 format.Quarterly.endDate=MMM yyyy
-data_sets=T\u1EADp d\u1EEF li\u1EC7u
-move_to_top=Di chuy\u1EC3n l\u00EAn \u0111\u1EA7u
-patient_attribute_group=Nh\u00F3m thu\u1ED9c t\u00EDnh c\u00E1 th\u1EC3
-please_enter_valid_positive_integer=H\u00E3y nh\u1EADp m\u1ED9t s\u1ED1 nguy\u00EAn d\u01B0\u01A1ng h\u1EE3p l\u1EC7
-dhis-web-validationrule=Qu\u1EA3n l\u00FD ch\u1EA5t l\u01B0\u1EE3ng d\u1EEF li\u1EC7u
-java_version=Phi\u00EAn b\u1EA3n Java
-clear=X\u00F3a
-os_name=T\u00EAn h\u1EC7 \u0111i\u1EC1u h\u00E0nh
-value_type=Lo\u1EA1i gi\u00E1 tr\u1ECB
-month.february=Th\u00E1ng hai
-address=\u0110\u1ECBa ch\u1EC9
-Yearly=H\u00E0ng n\u0103m
-show_menu=Hi\u1EC7n tr\u00ECnh \u0111\u01A1n
-user_account=Ng\u01B0\u1EDDi d\u00F9ng
-rows_in_page=S\u1ED1 d\u00F2ng m\u1ED7i trang
-help_contents=N\u1ED9i dung gi\u00FAp \u0111\u1EE1
-FinancialJuly=T\u00E0i ch\u00EDnh-Th\u00E1ng 7
-true=C\u00F3
-user_name=T\u00EAn \u0111\u0103ng nh\u1EADp
-translation_label_numerator_description=M\u00F4 t\u1EA3 t\u1EED s\u1ED1
+data_sets=T\u1eadp d\u1eef li\u1ec7u
+move_to_top=Di chuy\u1ec3n l\u00ean \u0111\u1ea7u
+patient_attribute_group=Nh\u00f3m thu\u1ed9c t\u00ednh c\u00e1 th\u1ec3
+please_enter_valid_positive_integer=H\u00e3y nh\u1eadp m\u1ed9t s\u1ed1 nguy\u00ean d\u01b0\u01a1ng h\u1ee3p l\u1ec7
+dhis-web-validationrule=Qu\u1ea3n l\u00fd ch\u1ea5t l\u01b0\u1ee3ng d\u1eef li\u1ec7u
+java_version=Phi\u00ean b\u1ea3n Java
+clear=X\u00f3a
+os_name=T\u00ean h\u1ec7 \u0111i\u1ec1u h\u00e0nh
+value_type=Lo\u1ea1i gi\u00e1 tr\u1ecb
+month.february=Th\u00e1ng hai
+address=\u0110\u1ecba ch\u1ec9
+Yearly=H\u00e0ng n\u0103m
+show_menu=Hi\u1ec7n tr\u00ecnh \u0111\u01a1n
+user_account=Ng\u01b0\u1eddi d\u00f9ng
+rows_in_page=S\u1ed1 d\u00f2ng m\u1ed7i trang
+help_contents=N\u1ed9i dung gi\u00fap \u0111\u1ee1
+FinancialJuly=T\u00e0i ch\u00ednh-Th\u00e1ng 7
+true=C\u00f3
+user_name=T\u00ean \u0111\u0103ng nh\u1eadp
+translation_label_numerator_description=M\u00f4 t\u1ea3 t\u1eed s\u1ed1
 dhis2_wiki=DHIS 2 Wiki
-cancel=H\u1EE7y
-month.december=Th\u00E1ng m\u01B0\u1EDDi hai
-new_password=M\u1EADt kh\u1EA9u m\u1EDBi
-remove_selected=B\u1ECF ch\u1ECDn
-statistical=Th\u1ED1ng k\u00EA
-dhis-web-mapping=B\u1EA3n \u0111\u1ED3 s\u1ED1 h\u00F3a
+cancel=H\u1ee7y
+month.december=Th\u00e1ng m\u01b0\u1eddi hai
+new_password=M\u1eadt kh\u1ea9u m\u1edbi
+remove_selected=B\u1ecf ch\u1ecdn
+statistical=Th\u1ed1ng k\u00ea
+dhis-web-mapping=B\u1ea3n \u0111\u1ed3 s\u1ed1 h\u00f3a
 format.Relative.startDate=dd-MM-yyyy '- '
-weekday.sunday=Ch\u1EE7 nh\u1EADt
+weekday.sunday=Ch\u1ee7 nh\u1eadt
 format.OnChange.endDate=dd-MM-yyyy
-yes_no=C\u00F3/Kh\u00F4ng
-format.Quarterly.startDate=MMM '\u0111\u1EBFn '
-weekday.tuesday=Th\u1EE9 ba
+yes_no=C\u00f3/Kh\u00f4ng
+format.Quarterly.startDate=MMM '\u0111\u1ebfn '
+weekday.tuesday=Th\u1ee9 ba
 format.date.label.jquery=dd-mm-yy
-locate_by_code=\u0110\u1ECBnh v\u1ECB theo m\u00E3 s\u1ED1
-org_unit_tree=C\u00E2y \u0111\u01A1n v\u1ECB
-this_date_can_not_be_after_today=Ng\u00E0y \u0111\u01B0\u1EE3c ch\u1ECDn kh\u00F4ng \u0111\u01B0\u1EE3c sau h\u00F4m nay
-dhis-web-maintenance-dataset=Qu\u1EA3n tr\u1ECB m\u1EABu nh\u1EADp li\u1EC7u
-unknown=Kh\u00F4ng x\u00E1c \u0111\u1ECBnh
+locate_by_code=\u0110\u1ecbnh v\u1ecb theo m\u00e3 s\u1ed1
+org_unit_tree=C\u00e2y \u0111\u01a1n v\u1ecb
+this_date_can_not_be_after_today=Ng\u00e0y \u0111\u01b0\u1ee3c ch\u1ecdn kh\u00f4ng \u0111\u01b0\u1ee3c sau h\u00f4m nay
+dhis-web-maintenance-dataset=Qu\u1ea3n tr\u1ecb m\u1eabu nh\u1eadp li\u1ec7u
+unknown=Kh\u00f4ng x\u00e1c \u0111\u1ecbnh
 not_equal_to=\!\=
-translation_label_denominator_description=M\u00F4 t\u1EA3 m\u1EABu s\u1ED1
-please_unicode_chars_only=Ch\u1EC9 k\u00FD t\u1EF1 unicode h\u1EE3p l\u1EC7.
-dhis-web-openhealth-integration=Ph\u00E2n t\u00EDch d\u1EEF li\u1EC7u
-numerator_formula=C\u00F4ng th\u1EE9c t\u1EED s\u1ED1
-delete_confirm=B\u1EA1n c\u00F3 mu\u1ED1n x\u00F3a ?
-translation_translate=D\u1ECBch
+translation_label_denominator_description=M\u00f4 t\u1ea3 m\u1eabu s\u1ed1
+please_unicode_chars_only=Ch\u1ec9 k\u00fd t\u1ef1 unicode h\u1ee3p l\u1ec7.
+dhis-web-openhealth-integration=Ph\u00e2n t\u00edch d\u1eef li\u1ec7u
+numerator_formula=C\u00f4ng th\u1ee9c t\u1eed s\u1ed1
+delete_confirm=B\u1ea1n c\u00f3 mu\u1ed1n x\u00f3a ?
+translation_translate=D\u1ecbch
 format.BiMonthly.endDate=MMM yyyy
-translation_details=Chi ti\u1EBFt
-closed_date=Ng\u00E0y \u0111\u00F3ng
-none=Kh\u00F4ng c\u00F3
-translation_add=Th\u00EAm
-int=S\u1ED1
+translation_details=Chi ti\u1ebft
+closed_date=Ng\u00e0y \u0111\u00f3ng
+none=Kh\u00f4ng c\u00f3
+translation_add=Th\u00eam
+int=S\u1ed1
 less_than=<
-unselect_all=B\u1ECF ch\u1ECDn t\u1EA5t c\u1EA3
-save=L\u01B0u
-select_at_level=Ch\u1ECDn t\u1EA1i c\u1EA5p
-delete_success=\u0110\u1ED1i t\u01B0\u1EE3ng \u0111\u00E3 x\u00F3a
-please_enter_at_least_than_n_character=Nh\u1EADp \u00EDt nh\u1EA5t {0} k\u00FD t\u1EF1.
-supportive_software=Ph\u1EA7n m\u1EC1m h\u1ED7 tr\u1EE3
-dhis-web-dataentry-national=Nh\u1EADp li\u1EC7u theo d\u00F2ng
-Relative=Quan h\u1EC7
-help_intro=Ch\u00E0o m\u1EEBng \u0111\u1EBFn v\u1EDBi trung t\u00E2m
+unselect_all=B\u1ecf ch\u1ecdn t\u1ea5t c\u1ea3
+save=L\u01b0u
+select_at_level=Ch\u1ecdn t\u1ea1i c\u1ea5p
+delete_success=\u0110\u1ed1i t\u01b0\u1ee3ng \u0111\u00e3 x\u00f3a
+please_enter_at_least_than_n_character=Nh\u1eadp \u00edt nh\u1ea5t {0} k\u00fd t\u1ef1.
+supportive_software=Ph\u1ea7n m\u1ec1m h\u1ed7 tr\u1ee3
+dhis-web-dataentry-national=Nh\u1eadp li\u1ec7u theo d\u00f2ng
+Relative=Quan h\u1ec7
+help_intro=Ch\u00e0o m\u1eebng \u0111\u1ebfn v\u1edbi trung t\u00e2m
 weekday.short.sunday=CN
 right_side_of_expression=Right side of Expression
-translation_select_locale=[ Ch\u1ECDn v\u00F9ng ]
-translation_variant=Bi\u1EBFn
+translation_select_locale=[ Ch\u1ecdn v\u00f9ng ]
+translation_variant=Bi\u1ebfn
 format.FinancialApril.endDate=dd MMM yyyy
-no_white_space_please=Kh\u00F4ng nh\u1EADp kho\u1EA3n tr\u1EAFng
-bool=C\u00F3/Kh\u00F4ng
-digits_decimal_only_please=Vui l\u00F2ng nh\u1EADp s\u1ED1.
-month.april=Th\u00E1ng t\u01B0
-dhis-web-dataentry=Nh\u1EADp d\u1EEF li\u1EC7u
-dhis-web-reporting=B\u00E1o c\u00E1o t\u1ED5ng h\u1EE3p
-translation_languagecode=M\u00E3 ng\u00F4n ng\u1EEF
-please_enter_a_value_greater_than_or_equal_to_n=Vui l\u00F2ng nh\u1EADp con s\u1ED1 l\u1EDBn h\u01A1n ho\u1EB7c b\u1EB1ng {0}.
-text=V\u0103n b\u1EA3n
-users=Ng\u01B0\u1EDDi d\u00F9ng
-no_constant_to_select=Kh\u00F4ng c\u00F3 Bi\u1EC3u th\u1EE9c H\u1EB1ng \u0111\u1EC3 ch\u1ECDn
-number=S\u1ED1
-operator=To\u00E1n t\u1EED
-dhis2_online=DHIS 2 Tr\u1EF1c tuy\u1EBFn
-back=Quay l\u1EA1i
-wrong_password=Sai m\u1EADt kh\u1EA9u
-please_enter_a_value_between_a_and_b=Vui l\u00F2ng nh\u1EADp gi\u00E1 tr\u1ECB t\u1EEB {0} \u0111\u1EBFn {1}.
-dhis-web-linelisting-mp=Trao quy\u1EC1n
-month.short.april=Th\u00E1ng 4
-translation_country_must_be_two_chars=M\u00E3 qu\u1ED1c gia ph\u1EA3i c\u00F3 2 k\u00FD t\u1EF1
-dhis-web-maintenance-patient=Qu\u1EA3n tr\u1ECB c\u00E1 th\u1EC3 - ch\u01B0\u01A1ng tr\u00ECnh
-logged_in=\u0110\u00E3 \u0111\u0103ng nh\u1EADp
-operations=Thao t\u00E1c
-delete=X\u00F3a
-please_enter_betwwen_a_and_b_words=Vui l\u00F2ng nh\u1EADp t\u1EEB {0} d\u1EBFn {1} t\u1EEB.
-district_health_information_software=H\u1EC7 Th\u1ED1ng B\u00E1o C\u00E1o Tr\u1EF1c Tuy\u1EBFn DHIS2.0
-month.march=Th\u00E1ng ba
-database_type=Ki\u1EC3u c\u01A1 s\u1EDF d\u1EEF li\u1EC7u
-about=Th\u00F4ng tin v\u1EC1 ch\u00FAng t\u00F4i
-indicator_groups=C\u00E1c nh\u00F3m ch\u1EC9 s\u1ED1
+no_white_space_please=Kh\u00f4ng nh\u1eadp kho\u1ea3n tr\u1eafng
+bool=C\u00f3/Kh\u00f4ng
+digits_decimal_only_please=Vui l\u00f2ng nh\u1eadp s\u1ed1.
+month.april=Th\u00e1ng t\u01b0
+dhis-web-dataentry=Nh\u1eadp d\u1eef li\u1ec7u
+dhis-web-reporting=B\u00e1o c\u00e1o t\u1ed5ng h\u1ee3p
+translation_languagecode=M\u00e3 ng\u00f4n ng\u1eef
+please_enter_a_value_greater_than_or_equal_to_n=Vui l\u00f2ng nh\u1eadp con s\u1ed1 l\u1edbn h\u01a1n ho\u1eb7c b\u1eb1ng {0}.
+text=V\u0103n b\u1ea3n
+users=Ng\u01b0\u1eddi d\u00f9ng
+no_constant_to_select=Kh\u00f4ng c\u00f3 Bi\u1ec3u th\u1ee9c H\u1eb1ng \u0111\u1ec3 ch\u1ecdn
+number=S\u1ed1
+operator=To\u00e1n t\u1eed
+dhis2_online=DHIS 2 Tr\u1ef1c tuy\u1ebfn
+back=Quay l\u1ea1i
+wrong_password=Sai m\u1eadt kh\u1ea9u
+please_enter_a_value_between_a_and_b=Vui l\u00f2ng nh\u1eadp gi\u00e1 tr\u1ecb t\u1eeb {0} \u0111\u1ebfn {1}.
+dhis-web-linelisting-mp=Trao quy\u1ec1n
+month.short.april=Th\u00e1ng 4
+translation_country_must_be_two_chars=M\u00e3 qu\u1ed1c gia ph\u1ea3i c\u00f3 2 k\u00fd t\u1ef1
+dhis-web-maintenance-patient=Qu\u1ea3n tr\u1ecb c\u00e1 th\u1ec3 - ch\u01b0\u01a1ng tr\u00ecnh
+logged_in=\u0110\u00e3 \u0111\u0103ng nh\u1eadp
+operations=Thao t\u00e1c
+delete=X\u00f3a
+please_enter_betwwen_a_and_b_words=Vui l\u00f2ng nh\u1eadp t\u1eeb {0} d\u1ebfn {1} t\u1eeb.
+district_health_information_software=H\u1ec7 Th\u1ed1ng B\u00e1o C\u00e1o Tr\u1ef1c Tuy\u1ebfn DHIS2.0
+month.march=Th\u00e1ng ba
+database_type=Ki\u1ec3u c\u01a1 s\u1edf d\u1eef li\u1ec7u
+about=Th\u00f4ng tin v\u1ec1 ch\u00fang t\u00f4i
+indicator_groups=C\u00e1c nh\u00f3m ch\u1ec9 s\u1ed1
 translation_cancel=Huy
-only_digits_are_not_allowed=Ch\u1EC9 ch\u1EEF s\u1ED1 \u0111\u01B0\u1EE3c ph\u00E9p
-string=Chu\u1ED7i
-new=T\u1EA1o m\u1EDBi
-os_version=Phi\u00EAn b\u1EA3n h\u1EC7 \u0111i\u1EC1u h\u00E0nh
-change_log=Th\u00F4ng tin ph\u1EA7n m\u1EC1m
-please_enter_a_valid_digits=Ch\u1EC9 ch\u1EA5p nh\u1EADn nh\u1EADp s\u1ED1
-selected=\u0110\u01B0\u1EE3c ch\u1ECDn
-end_date=Ng\u00E0y k\u1EBFt th\u00FAc
-move_up=Di chuy\u1EC3n l\u00EAn
-first_character_must_be_alphabetical=K\u00FD t\u1EF1 \u0111\u1EA7u ti\u00EAn ph\u1EA3i l\u00E0 ch\u1EEF c\u00E1i
-month.short.march=Th\u00E1ng 3
-all=T\u1EA5t c\u1EA3
-translation_label_description=M\u00F4 t\u1EA3
-target=M\u1EE5c ti\u00EAu
-password_not_match=X\u00E1c nh\u1EADn m\u1EADt kh\u1EA9u kh\u00F4ng \u0111\u00FAng
-dhis2_home_page=Trang ch\u1EE7 DHIS2
-translation_variant_must_be_specified=Bi\u1EBFn kh\u00F4ng \u0111\u01B0\u1EE3c b\u1ECF tr\u1ED1ng
-translation_label_title=Ti\u00EAu \u0111\u1EC1
-hide_details=\u1EA8n th\u00F4ng tin chi ti\u1EBFt
-pdf_reader=Tr\u00ECnh \u0111\u1ECDc PDF
-dhis-web-validationrule-local-in=Ph\u00E2n t\u00EDch ki\u1EC3m tra d\u1EEF li\u1EC7u
-please_enter_description=Vui l\u00F2ng nh\u1EADp m\u00F4 t\u1EA3 \!
-please_enter_no_more_than_n_character=Kh\u00F4ng nh\u1EADp h\u01A1n {0} k\u00FD t\u1EF1.
-data_elements=C\u00E1c ph\u1EA7n t\u1EED d\u1EEF li\u1EC7u
-please_enter_n_words_or_less=Vui l\u00F2ng nh\u1EADp {0} t\u1EEB ho\u1EB7c \u00EDt h\u01A1n.
-translation_label_short_name=T\u00EAn vi\u1EBFt t\u1EAFt
-update_user_success=Th\u00F4ng tin c\u1EE7a b\u1EA1n \u0111\u00E3 \u0111\u01B0\u1EE3c th\u00E2y \u0111\u1ED5i
-add_new=Th\u00EAm m\u1EDBi
+only_digits_are_not_allowed=Ch\u1ec9 ch\u1eef s\u1ed1 \u0111\u01b0\u1ee3c ph\u00e9p
+string=Chu\u1ed7i
+new=T\u1ea1o m\u1edbi
+os_version=Phi\u00ean b\u1ea3n h\u1ec7 \u0111i\u1ec1u h\u00e0nh
+change_log=Th\u00f4ng tin ph\u1ea7n m\u1ec1m
+please_enter_a_valid_digits=Ch\u1ec9 ch\u1ea5p nh\u1eadn nh\u1eadp s\u1ed1
+selected=\u0110\u01b0\u1ee3c ch\u1ecdn
+end_date=Ng\u00e0y k\u1ebft th\u00fac
+move_up=Di chuy\u1ec3n l\u00ean
+first_character_must_be_alphabetical=K\u00fd t\u1ef1 \u0111\u1ea7u ti\u00ean ph\u1ea3i l\u00e0 ch\u1eef c\u00e1i
+month.short.march=Th\u00e1ng 3
+all=T\u1ea5t c\u1ea3
+translation_label_description=M\u00f4 t\u1ea3
+target=M\u1ee5c ti\u00eau
+password_not_match=X\u00e1c nh\u1eadn m\u1eadt kh\u1ea9u kh\u00f4ng \u0111\u00fang
+dhis2_home_page=Trang ch\u1ee7 DHIS2
+translation_variant_must_be_specified=Bi\u1ebfn kh\u00f4ng \u0111\u01b0\u1ee3c b\u1ecf tr\u1ed1ng
+translation_label_title=Ti\u00eau \u0111\u1ec1
+hide_details=\u1ea8n th\u00f4ng tin chi ti\u1ebft
+pdf_reader=Tr\u00ecnh \u0111\u1ecdc PDF
+dhis-web-validationrule-local-in=Ph\u00e2n t\u00edch ki\u1ec3m tra d\u1eef li\u1ec7u
+please_enter_description=Vui l\u00f2ng nh\u1eadp m\u00f4 t\u1ea3 \!
+please_enter_no_more_than_n_character=Kh\u00f4ng nh\u1eadp h\u01a1n {0} k\u00fd t\u1ef1.
+data_elements=C\u00e1c ph\u1ea7n t\u1eed d\u1eef li\u1ec7u
+please_enter_n_words_or_less=Vui l\u00f2ng nh\u1eadp {0} t\u1eeb ho\u1eb7c \u00edt h\u01a1n.
+translation_label_shortname=T\u00ean vi\u1ebft t\u1eaft
+update_user_success=Th\u00f4ng tin c\u1ee7a b\u1ea1n \u0111\u00e3 \u0111\u01b0\u1ee3c th\u00e2y \u0111\u1ed5i
+add_new=Th\u00eam m\u1edbi
 format.Weekly.endDate=yyyy
\ No newline at end of file