You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2018/03/24 14:46:48 UTC

[directory-ldap-api] 01/03: Refactored msg and errors for message module

This is an automated email from the ASF dual-hosted git repository.

elecharny pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-ldap-api.git

commit d3535b17279e0be6a7431be4156b8568cef65158
Author: Emmanuel Lécharny <el...@symas.com>
AuthorDate: Fri Mar 23 06:19:29 2018 +0100

    Refactored msg and errors for message module
---
 .../java/org/apache/directory/api/i18n/I18n.java   | 236 +++++++++-------
 .../apache/directory/api/i18n/errors.properties    | 311 +++++++++++----------
 .../apache/directory/api/i18n/messages.properties  |  24 +-
 .../extras/extended/cancel/CancelResponseImpl.java |   2 +-
 .../certGeneration/CertGenerationResponseImpl.java |   4 +-
 .../GracefulDisconnectResponseImpl.java            |   2 +-
 .../GracefulShutdownResponseImpl.java              |   4 +-
 .../StartTransactionResponseImpl.java              |   2 +-
 .../api/ldap/model/filter/AbstractExprNode.java    |   2 +-
 .../api/ldap/model/filter/AssertionNode.java       |   2 +-
 .../api/ldap/model/filter/FilterEncoder.java       |  11 +-
 .../api/ldap/model/filter/FilterParser.java        |  40 +--
 .../api/ldap/model/filter/GreaterEqNode.java       |   7 +-
 .../directory/api/ldap/model/filter/LeafNode.java  |   3 +-
 .../api/ldap/model/filter/LessEqNode.java          |   7 +-
 .../directory/api/ldap/model/filter/NotNode.java   |   6 +-
 .../api/ldap/model/filter/SimpleNode.java          |   4 +-
 .../directory/api/ldap/model/ldif/ChangeType.java  |   2 +-
 .../api/ldap/model/ldif/LdifAttributesReader.java  |  86 +++---
 .../directory/api/ldap/model/ldif/LdifEntry.java   |   8 +-
 .../directory/api/ldap/model/ldif/LdifReader.java  | 219 ++++++++-------
 .../api/ldap/model/ldif/LdifRevertor.java          |  14 +-
 .../directory/api/ldap/model/ldif/LdifUtils.java   |  13 +-
 .../model/ldif/anonymizer/AbstractAnonymizer.java  |   9 +-
 .../model/ldif/anonymizer/BinaryAnonymizer.java    |   3 +-
 .../anonymizer/CaseSensitiveStringAnonymizer.java  |   3 +-
 .../model/ldif/anonymizer/IntegerAnonymizer.java   |   7 +-
 .../model/ldif/anonymizer/StringAnonymizer.java    |   3 +-
 .../api/ldap/model/message/AbandonRequestImpl.java |   2 +-
 .../api/ldap/model/message/AliasDerefMode.java     |  24 +-
 .../api/ldap/model/message/BindRequestImpl.java    |   2 +-
 .../api/ldap/model/message/ModifyRequestImpl.java  |   4 +-
 .../api/ldap/model/message/ResultCodeEnum.java     |   3 +-
 .../api/ldap/model/message/SearchParams.java       |   3 +-
 .../api/ldap/model/message/SearchRequestImpl.java  |   6 +-
 .../api/ldap/model/message/SearchScope.java        |   6 +-
 .../api/ldap/model/message/UnbindRequestImpl.java  |   2 +-
 .../ldap/model/message/controls/ChangeType.java    |   2 +-
 .../model/message/controls/ProxiedAuthzImpl.java   |   7 +-
 .../model/message/controls/SortResultCode.java     |   4 +-
 .../model/message/extended/AddNoDResponse.java     |   2 +-
 .../model/message/extended/BindNoDResponse.java    |   2 +-
 .../model/message/extended/CompareNoDResponse.java |   2 +-
 .../model/message/extended/DeleteNoDResponse.java  |   2 +-
 .../message/extended/ExtendedNoDResponse.java      |   2 +-
 .../message/extended/ModifyDnNoDResponse.java      |   2 +-
 .../model/message/extended/ModifyNoDResponse.java  |   2 +-
 .../model/message/extended/NoticeOfDisconnect.java |   9 +-
 .../model/message/extended/SearchNoDResponse.java  |   2 +-
 .../ldap/model/ldif/LdifAttributesReaderTest.java  |   4 +-
 .../api/ldap/model/ldif/LdifReaderTest.java        |   3 +-
 51 files changed, 619 insertions(+), 512 deletions(-)

diff --git a/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java b/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java
index cead06e..26af843 100644
--- a/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java
+++ b/i18n/src/main/java/org/apache/directory/api/i18n/I18n.java
@@ -207,7 +207,6 @@ public enum I18n
     ERR_04052( "ERR_04052" ),
     ERR_04053( "ERR_04053" ),
     ERR_04054( "ERR_04054" ),
-    ERR_04055( "ERR_04055" ),
     ERR_04056( "ERR_04056" ),
     ERR_04057( "ERR_04057" ),
     ERR_04058( "ERR_04058" ),
@@ -290,36 +289,15 @@ public enum I18n
     ERR_04141( "ERR_04141" ),
     ERR_04142( "ERR_04142" ),
     ERR_04143( "ERR_04143" ),
-    ERR_04144( "ERR_04144" ),
-    ERR_04145( "ERR_04145" ),
-    ERR_04146( "ERR_04146" ),
-    ERR_04147( "ERR_04147" ),
-    ERR_04148_MATCHING_RULE_EXPECTED( "ERR_04148_MATCHING_RULE_EXPECTED" ),
-    ERR_04149( "ERR_04149" ),
-    ERR_04150( "ERR_04150" ),
-    ERR_04151( "ERR_04151" ),
-    ERR_04152( "ERR_04152" ),
-    ERR_04153( "ERR_04153" ),
-    ERR_04154( "ERR_04154" ),
-    ERR_04155( "ERR_04155" ),
     ERR_04156( "ERR_04156" ),
-    ERR_04157( "ERR_04157" ),
-    ERR_04158( "ERR_04158" ),
-    ERR_04159( "ERR_04159" ),
-    ERR_04160( "ERR_04160" ),
-    ERR_04161( "ERR_04161" ),
-    ERR_04162( "ERR_04162" ),
     ERR_04163( "ERR_04163" ),
     ERR_04164( "ERR_04164" ),
     ERR_04165_PAYLOAD_DECODING_ERROR( "ERR_04165_PAYLOAD_DECODING_ERROR" ),
-    ERR_04166( "ERR_04166" ),
     ERR_04167( "ERR_04167" ),
-    ERR_04168( "ERR_04168" ),
     ERR_04169( "ERR_04169" ),
     ERR_04170( "ERR_04170" ),
     ERR_04171( "ERR_04171" ),
     ERR_04172( "ERR_04172" ),
-    ERR_04173( "ERR_04173" ),
     ERR_04174( "ERR_04174" ),
     ERR_04175( "ERR_04175" ),
     ERR_04176( "ERR_04176" ),
@@ -331,9 +309,6 @@ public enum I18n
     ERR_04182( "ERR_04182" ),
     ERR_04183( "ERR_04183" ),
     ERR_04184( "ERR_04184" ),
-    ERR_04185( "ERR_04185" ),
-    ERR_04186( "ERR_04186" ),
-    ERR_04187( "ERR_04187" ),
     ERR_04188( "ERR_04188" ),
     ERR_04189( "ERR_04189" ),
     ERR_04190( "ERR_04190" ),
@@ -584,79 +559,9 @@ public enum I18n
     ERR_11007( "ERR_11007" ),
 
     // ldap-schema-manager
-    ERR_12001_UNKNOWN_CHANGE_TYPE( "ERR_12001_UNKNOWN_CHANGE_TYPE" ),
-    ERR_12002_ENTRY_WITH_TWO_DNS( "ERR_12002_ENTRY_WITH_TWO_DNS" ),
-    ERR_12003_LDIF_ENTRY_WITH_TWO_DNS( "ERR_12003_LDIF_ENTRY_WITH_TWO_DNS" ),
-    ERR_12004_CHANGE_NOT_ALLOWED( "ERR_12004_CHANGE_NOT_ALLOWED" ),
-    ERR_12005_NO_CHANGE( "ERR_12005_NO_CHANGE" ),
-    ERR_12006_EXPECTING_ATTRIBUTE_TYPE( "ERR_12006_EXPECTING_ATTRIBUTE_TYPE" ),
-    ERR_12007_BAD_ATTRIBUTE( "ERR_12007_BAD_ATTRIBUTE" ),
-    ERR_12008_CANNOT_PARSE_LDIF_BUFFER( "ERR_12008_CANNOT_PARSE_LDIF_BUFFER" ),
-    ERR_12009_ERROR_PARSING_LDIF_BUFFER( "ERR_12009_ERROR_PARSING_LDIF_BUFFER" ),
-    ERR_12010_CANNOT_FIND_FILE( "ERR_12010_CANNOT_FIND_FILE" ),
-    ERR_12011_CANNOT_READ_FILE( "ERR_12011_CANNOT_READ_FILE" ),
-    ERR_12012_EMPTY_DN_NOT_ALLOWED( "ERR_12012_EMPTY_DN_NOT_ALLOWED" ),
-    ERR_12013_NO_DN( "ERR_12013_NO_DN" ),
     ERR_12014_BASE64_DN_EXPECTED( "ERR_12014_BASE64_DN_EXPECTED" ),
     ERR_12015_INVALID_BASE64_DN( "ERR_12015_INVALID_BASE64_DN" ),
-    ERR_12016_DN_EXPECTED( "ERR_12016_DN_EXPECTED" ),
-    ERR_12017_INVALID_DN( "ERR_12017_INVALID_DN" ),
-    ERR_12018_FILE_NOT_FOUND( "ERR_12018_FILE_NOT_FOUND" ),
-    ERR_12019_BAD_URL_FILE_NOT_FOUND( "ERR_12019_BAD_URL_FILE_NOT_FOUND" ),
-    ERR_12020_FILE_TOO_BIG( "ERR_12020_FILE_TOO_BIG" ),
-    ERR_12022_ERROR_READING_FILE( "ERR_12022_ERROR_READING_FILE" ),
-    ERR_12023_ERROR_READING_BAD_URL( "ERR_12023_ERROR_READING_BAD_URL" ),
-    ERR_12024_CANNOT_CLOSE_FILE( "ERR_12024_CANNOT_CLOSE_FILE" ),
-    ERR_12025_BAD_PROTOCOL( "ERR_12025_BAD_PROTOCOL" ),
-    ERR_12026_UNSUPPORTED_PROTOCOL( "ERR_12026_UNSUPPORTED_PROTOCOL" ),
-    ERR_12027_BAD_URL( "ERR_12027_BAD_URL" ),
-    ERR_12029_CONTROL_WITHOUT_OID( "ERR_12029_CONTROL_WITHOUT_OID" ),
-    ERR_12031_INVALID_OID( "ERR_12031_INVALID_OID" ),
-    ERR_12033_INVALID_CRITICALITY( "ERR_12033_INVALID_CRITICALITY" ),
-    ERR_12035_BAD_MODRDN_OPERATION( "ERR_12035_BAD_MODRDN_OPERATION" ),
-    ERR_12038_NO_DELETEOLDRDN( "ERR_12038_NO_DELETEOLDRDN" ),
-    ERR_12040_BAD_MODIFY_SEPARATOR( "ERR_12040_BAD_MODIFY_SEPARATOR" ),
-    ERR_12042_BAD_MODIFY_SEPARATOR_2( "ERR_12042_BAD_MODIFY_SEPARATOR_2" ),
-    ERR_12044( "ERR_12044" ),
-    ERR_12045( "ERR_12045" ),
-    ERR_12046( "ERR_12046" ),
-    ERR_12047( "ERR_12047" ),
-    ERR_12048( "ERR_12048" ),
-    ERR_12049( "ERR_12049" ),
-    ERR_12050( "ERR_12050" ),
-    ERR_12051( "ERR_12051" ),
-    ERR_12052( "ERR_12052" ),
-    ERR_12053( "ERR_12053" ),
-    ERR_12054( "ERR_12054" ),
-    ERR_12055( "ERR_12055" ),
-    ERR_12056( "ERR_12056" ),
-    ERR_12057_BAD_ATTRIBUTE( "ERR_12057_BAD_ATTRIBUTE" ),
-    ERR_12058_UNKNOWN_ENTRY_TYPE( "ERR_12058_UNKNOWN_ENTRY_TYPE" ),
-    ERR_12059_UNKNOWN_ENTRY( "ERR_12059_UNKNOWN_ENTRY" ),
-    ERR_12060_VERSION_NOT_A_NUMBER( "ERR_12060_VERSION_NOT_A_NUMBER" ),
-    ERR_12061_LDIF_PARSING_ERROR( "ERR_12061_LDIF_PARSING_ERROR" ),
-    ERR_12062_EMPTY_CONTINUATION_LINE( "ERR_12062_EMPTY_CONTINUATION_LINE" ),
-    ERR_12063_ERROR_WHILE_READING_LDIF_LINE( "ERR_12063_ERROR_WHILE_READING_LDIF_LINE" ),
-    ERR_12064_EMPTY_FILE_NAME( "ERR_12064_EMPTY_FILE_NAME" ),
-    ERR_12066( "ERR_12066" ),
-    ERR_12067( "ERR_12067" ),
-    ERR_12068( "ERR_12068" ),
-    ERR_12069( "ERR_12069" ),
-    ERR_12070( "ERR_12070" ),
-    ERR_12071( "ERR_12071" ),
-    ERR_12072( "ERR_12072" ),
-    ERR_12073( "ERR_12073" ),
-    ERR_12074( "ERR_12074" ),
-    ERR_12075( "ERR_12075" ),
-    ERR_12076( "ERR_12076" ),
-    ERR_12077( "ERR_12077" ),
-    ERR_12078( "ERR_12078" ),
-    ERR_12079( "ERR_12079" ),
     ERR_12080( "ERR_12080" ),
-    ERR_12081( "ERR_12081" ),
-    ERR_12082( "ERR_12082" ),
-    ERR_12083( "ERR_12083" ),
-    ERR_12084( "ERR_12084" ),
     ERR_12087( "ERR_12087 "),
     
     // api-ldap-model 13000 - 13999
@@ -728,6 +633,123 @@ public enum I18n
     ERR_13248_CANNOT_READ_ENTRY( "ERR_13248_CANNOT_READ_ENTRY" ),
     ERR_13249_NO_COMPARATOR_FOR_AT( "ERR_13249_NO_COMPARATOR_FOR_AT" ),
 
+    //   filter         13300 - 13399
+    ERR_13300_BAD_PLACE_HOLDERS_NUMBER( "ERR_13300_BAD_PLACE_HOLDERS_NUMBER" ),
+    ERR_13301_NO_ORDERING_MR_FOR_AT( "ERR_13301_NO_ORDERING_MR_FOR_AT" ),
+    ERR_13302_CANNOT_CREATE_NODE_NULL_ATTR( "ERR_13302_CANNOT_CREATE_NODE_NULL_ATTR" ),
+    ERR_13303_SCOPENODE_IN_REFINEMENT( "ERR_13303_SCOPENODE_IN_REFINEMENT" ),
+    ERR_13304_ASSERTIONNODE_IN_REFINEMENT( "ERR_13304_ASSERTIONNODE_IN_REFINEMENT" ),
+    ERR_13305_ASSERTION_VALUE_EXPECTED( "ERR_13305_ASSERTION_VALUE_EXPECTED" ),
+    ERR_13306_MR_OR_ASSERTION_VALUE_EXPECTED( "ERR_13306_MR_OR_ASSERTION_VALUE_EXPECTED" ),
+    ERR_13307_MATCHING_RULE_EXPECTED( "ERR_13307_MATCHING_RULE_EXPECTED" ),
+    ERR_13308_NOT_A_VALID_ESCAPED_VALUE( "ERR_13308_NOT_A_VALID_ESCAPED_VALUE" ),
+    ERR_13309_BAD_SUBSTRING( "ERR_13309_BAD_SUBSTRING" ),
+    ERR_13310_BAD_CHAR( "ERR_13310_BAD_CHAR" ),
+    ERR_13311_EXPECTING_EQUAL( "ERR_13311_EXPECTING_EQUAL" ),
+    ERR_13312_ITEM_EXPECTED( "ERR_13312_ITEM_EXPECTED" ),
+    ERR_13313_EMPTY_FILTERCOMP( "ERR_13313_EMPTY_FILTERCOMP" ),
+    ERR_13314_FILTER_MISSING_OPEN_PAR( "ERR_13315_FILTER_MISSING_OPEN_PAR" ),
+    ERR_13315_FILTER_MISSING_CLOSE_PAR( "ERR_13315_FILTER_MISSING_CLOSE_PAR" ),
+    ERR_13316_EMPTY_FILTER( "ERR_13316_EMPTY_FILTER" ),
+    ERR_13317_NO_MORE_THAN_ONE_ELEM_IN_NOT( "ERR_13317_NO_MORE_THAN_ONE_ELEM_IN_NOT" ),
+    ERR_13318_INVALID_ATTR_IN_REFINEMENT( "ERR_13318_INVALID_ATTR_IN_REFINEMENT" ),
+
+    //   ldif           13400 - 13499
+    ERR_13400_ENTRY_WITH_TWO_DNS( "ERR_13400_ENTRY_WITH_TWO_DNS" ),
+    ERR_13401_CHANGE_NOT_ALLOWED( "ERR_13401_CHANGE_NOT_ALLOWED" ),
+    ERR_13402_EXPECTING_ATTRIBUTE_TYPE( "ERR_13402_EXPECTING_ATTRIBUTE_TYPE" ),
+    ERR_13403_CANNOT_PARSE_LDIF_BUFFER( "ERR_13403_CANNOT_PARSE_LDIF_BUFFER" ),
+    ERR_13404_EMPTY_DN_NOT_ALLOWED( "ERR_13404_EMPTY_DN_NOT_ALLOWED" ),
+    ERR_13405_DN_EXPECTED( "ERR_13405_DN_EXPECTED" ),
+    ERR_13406_FILE_NOT_FOUND( "ERR_13406_FILE_NOT_FOUND" ),
+    ERR_13407_ERROR_READING_FILE( "ERR_13407_ERROR_READING_FILE" ),
+    ERR_13408_BAD_PROTOCOL( "ERR_13408_BAD_PROTOCOL" ),
+    ERR_13409_CONTROL_WITHOUT_OID( "ERR_13409_CONTROL_WITHOUT_OID" ),
+    ERR_13410_INVALID_CRITICALITY( "ERR_13410_INVALID_CRITICALITY" ),
+    ERR_13411_BAD_MODRDN_OPERATION( "ERR_13411_BAD_MODRDN_OPERATION" ),
+    ERR_13412_NO_DELETEOLDRDN( "ERR_13412_NO_DELETEOLDRDN" ),
+    ERR_13413_BAD_MODIFY_SEPARATOR( "ERR_13413_BAD_MODIFY_SEPARATOR" ),
+    ERR_13414_BAD_MODIFY_SEPARATOR_2( "ERR_13414_BAD_MODIFY_SEPARATOR_2" ),
+    ERR_13415_MOD_ATTR_AND_VALUE_SPEC_NOT_EQUAL( "ERR_13415_MOD_ATTR_AND_VALUE_SPEC_NOT_EQUAL" ),
+    ERR_13416_NEW_SUPERIOR_NEEDED( "ERR_13416_NEW_SUPERIOR_NEEDED" ),
+    ERR_13417_UNKNOWN_OPERATION( "ERR_13417_UNKNOWN_OPERATION" ),
+    ERR_13418_CONTROL_ALREADY_FOUND( "ERR_13418_CONTROL_ALREADY_FOUND" ),
+    ERR_13419_CHANGETYPE_ALREADY_FOUND( "ERR_13419_CHANGETYPE_ALREADY_FOUND" ),
+    ERR_13420_AT_VALUE_NOT_ALLOWED_AFTER_CONTROL( "ERR_13420_AT_VALUE_NOT_ALLOWED_AFTER_CONTROL" ),
+    ERR_13421_ATTRIBUTE_TYPE_EXPECTED( "ERR_13421_ATTRIBUTE_TYPE_EXPECTED" ),
+    ERR_13422_UNKNOWN_ENTRY_TYPE( "ERR_13422_UNKNOWN_ENTRY_TYPE" ),
+    ERR_13423_VERSION_NOT_A_NUMBER( "ERR_13423_VERSION_NOT_A_NUMBER" ),
+    ERR_13424_EMPTY_CONTINUATION_LINE( "ERR_13424_EMPTY_CONTINUATION_LINE" ),
+    ERR_13425_EMPTY_FILE_NAME( "ERR_13425_EMPTY_FILE_NAME" ),
+    ERR_13426_CANNOT_PARSE_INEXISTANT_FILE( "ERR_13426_CANNOT_PARSE_INEXISTANT_FILE" ),
+    ERR_13427_CANNOT_FIND_FILE( "ERR_13427_CANNOT_FIND_FILE" ),
+    ERR_13428_CANNOT_PARSE_LDIF(" ERR_13428_CANNOT_PARSE_LDIF" ),
+    ERR_13429_ERROR_PARSING_LDIF( "ERR_13429_ERROR_PARSING_LDIF" ),
+    ERR_13430_PREMATURE_LDIF_ITERATOR_TERMINATION( "ERR_13430_PREMATURE_LDIF_ITERATOR_TERMINATION" ),
+    ERR_13431_UNEXPECTED_CHANGETYPE( "ERR_13431_UNEXPECTED_CHANGETYPE" ),
+    ERR_13432_NULL_ADDED_CONTROL( "ERR_13432_NULL_ADDED_CONTROL" ),
+    ERR_13433_SEE_DIRSERVER_1547( "ERR_13433_SEE_DIRSERVER_1547" ),
+    ERR_13434_UNEXPECTED_MOD_OPERATION( "ERR_13434_UNEXPECTED_MOD_OPERATION" ),
+    ERR_13435_CANNOT_COMPUTE_NEW_VALUE( "ERR_13435_CANNOT_COMPUTE_NEW_VALUE" ),
+    ERR_13436_ERROR_ANONYMIZING_VALUE( "ERR_13436_ERROR_ANONYMIZING_VALUE" ),
+    ERR_13437_OVERFLOW( "ERR_13437_OVERFLOW" ),
+    ERR_13438_UNKNOWN_CHANGE_TYPE( "ERR_13438_UNKNOWN_CHANGE_TYPE" ),
+    ERR_13439_LDIF_ENTRY_WITH_TWO_DNS( "ERR_13439_LDIF_ENTRY_WITH_TWO_DNS" ),
+    ERR_13440_NO_CHANGE( "ERR_13440_NO_CHANGE" ),
+    ERR_13441_BAD_ATTRIBUTE( "ERR_13441_BAD_ATTRIBUTE" ),
+    ERR_13442_ERROR_PARSING_LDIF_BUFFER( "ERR_13442_ERROR_PARSING_LDIF_BUFFER" ),
+    ERR_13443_CANNOT_FIND_FILE( "ERR_13443_CANNOT_FIND_FILE" ),
+    ERR_13444_CANNOT_READ_FILE( "ERR_13444_CANNOT_READ_FILE" ),
+    ERR_13445_NO_DN( "ERR_13445_NO_DN" ),
+    ERR_13446_INVALID_DN( "ERR_13446_INVALID_DN" ),
+    ERR_13447_BAD_URL_FILE_NOT_FOUND( "ERR_13447_BAD_URL_FILE_NOT_FOUND" ),
+    ERR_13448_FILE_TOO_BIG( "ERR_13448_FILE_TOO_BIG" ),
+    ERR_13449_ERROR_READING_BAD_URL( "ERR_13449_ERROR_READING_BAD_URL" ),
+    ERR_13450_CANNOT_CLOSE_FILE( "ERR_13450_CANNOT_CLOSE_FILE" ),
+    ERR_13451_UNSUPPORTED_PROTOCOL( "ERR_13451_UNSUPPORTED_PROTOCOL" ),
+    ERR_13452_BAD_URL( "ERR_13452_BAD_URL" ),
+    ERR_13453_INVALID_OID( "ERR_13453_INVALID_OID" ),
+    ERR_13454_BAD_MODIFY_ATTRIBUTE( "ERR_13454_BAD_MODIFY_ATTRIBUTE" ),
+    ERR_13455_BAD_MODDN_NO_SUPERIOR( "ERR_13455_BAD_MODDN_NO_SUPERIOR" ),
+    ERR_13456_BAD_OPERATION( "ERR_13456_BAD_OPERATION" ),
+    ERR_13457_MISPLACED_CONTROL( "ERR_13457_MISPLACED_CONTROL" ),
+    ERR_13458_MISPLACED_CHANGETYPE( "ERR_13458_MISPLACED_CHANGETYPE" ),
+    ERR_13459_MISPLACED_ATTRIBUTETYPE( "ERR_13459_MISPLACED_ATTRIBUTETYPE" ),
+    ERR_13460_BAD_ATTRIBUTE( "ERR_13460_BAD_ATTRIBUTE" ),
+    ERR_13461_UNKNOWN_ENTRY( "ERR_13461_UNKNOWN_ENTRY" ),
+    ERR_13462_LDIF_PARSING_ERROR( "ERR_13462_LDIF_PARSING_ERROR" ),
+    ERR_13463_ERROR_WHILE_READING_LDIF_LINE( "ERR_13463_ERROR_WHILE_READING_LDIF_LINE" ),
+    ERR_13464_FILENAME_NOT_FOUND( "ERR_13464_FILENAME_NOT_FOUND" ),
+    ERR_13465_CANT_DEDUCE_REVERSE_FOR_MOD( "ERR_13465_CANT_DEDUCE_REVERSE_FOR_MOD" ),
+    ERR_13466_NEW_SUPERIOR_DN_NULL( "ERR_13466_NEW_SUPERIOR_DN_NULL" ),
+    ERR_13467_NULL_MODIFIED_DN( "ERR_13467_NULL_MODIFIED_DN" ),
+    ERR_13468_DONT_MOVE_ROOTDSE( "ERR_13468_DONT_MOVE_ROOTDSE" ),
+    ERR_13469_NULL_READ_DN( "ERR_13469_NULL_READ_DN" ),
+    ERR_13470_DONT_RENAME_ROOTDSE( "ERR_13470_DONT_RENAME_ROOTDSE" ),
+    ERR_13471_DELETED_ENTRY_WITH_ATTRIBUTES( "ERR_13471_DELETED_ENTRY_WITH_ATTRIBUTES" ),
+    ERR_13472_ENTRY_WITH_NO_ATTRIBUTE( "ERR_13472_ENTRY_WITH_NO_ATTRIBUTE" ),
+    ERR_13473_MODDN_WITH_ATTRIBUTES( "ERR_13473_MODDN_WITH_ATTRIBUTES" ),
+    ERR_13474_LINE_LENGTH_TOO_SHORT( "ERR_13474_LINE_LENGTH_TOO_SHORT" ),
+    ERR_13475_UNKNOWN_ATTRIBUTETYPE( "ERR_13475_UNKNOWN_ATTRIBUTETYPE" ),
+    
+    //   message        13500 - 13599
+    ERR_13500_UNDEFINED_CHANGETYPE( "ERR_13500_UNDEFINED_CHANGETYPE" ),
+    ERR_13501_UNKNOWN_JNDI_SCOPE( "ERR_13501_UNKNOWN_JNDI_SCOPE" ),
+    ERR_13502_UNKNOWN_LDAP_URL_SCOPE( "ERR_13502_UNKNOWN_LDAP_URL_SCOPE" ),
+    ERR_13503_RESULT_CODE_SHOULD_BE_IN( "ERR_13503_RESULT_CODE_SHOULD_BE_IN" ),
+    ERR_13504_FIX_OID( "ERR_13504_FIX_OID" ),
+    ERR_13505_HARDCODED_ZERO_LENGTH_RESPONSE( "ERR_13505_HARDCODED_ZERO_LENGTH_RESPONSE" ),
+    ERR_13506_CANNOT_ABANDON_OPERATION( "ERR_13506_CANNOT_ABANDON_OPERATION" ),
+    ERR_13507_UNRECOGNIZED_JNDI_PROPERTY_VALUE( "ERR_13507_UNRECOGNIZED_JNDI_PROPERTY_VALUE" ),
+    ERR_13508_INVALID_FILTER( "ERR_13508_INVALID_FILTER" ),
+    ERR_13509_UNEXPECTED_SCOPE( "ERR_13509_UNEXPECTED_SCOPE" ),
+    ERR_13510_UNKNOWN_DEREF_MODE( "ERR_13510_UNKNOWN_DEREF_MODE" ),
+    ERR_13511_INVALID_PROXIED_AUTHZ_NULL( "ERR_13511_INVALID_PROXIED_AUTHZ_NULL" ),
+    ERR_13512_INVALID_PROXIED_AUTHZ_BAD_DN( "ERR_13512_INVALID_PROXIED_AUTHZ_BAD_DN" ),
+    ERR_13513_INVALID_PROXIED_AUTHZ_NO_DN_OR_U( "ERR_13513_INVALID_PROXIED_AUTHZ_NO_DN_OR_U" ),
+    ERR_13514_UNKNOWN_SORT_RESPONSE_RESULT( "ERR_13514_UNKNOWN_SORT_RESPONSE_RESULT" ),
+    ERR_13515_UNEXPECTED_MOD_OP( "ERR_13515_UNEXPECTED_MOD_OP" ),
+    ERR_13516_UNEXPECTED_MESSAGE_TYPE( "ERR_13516_UNEXPECTED_MESSAGE_TYPE" ),
 
     // api-ldap-net-mina 14000 - 14999
 
@@ -995,6 +1017,30 @@ public enum I18n
     MSG_13202_AT_IS_NULL( "MSG_13202_AT_IS_NULL" ),
     MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY( "MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY" ),
     
+    //   filter         13300 - 13399
+    
+    //   ldif           13400 - 13499
+    MSG_13400_LDIF_VERSION( "MSG_13400_LDIF_VERSION" ),
+    MSG_13401_PARSED_NO_ENTRY( "MSG_13401_PARSED_NO_ENTRY" ),
+    MSG_13402_PARSED_ONE_ENTRY( "MSG_13402_PARSED_ONE_ENTRY" ),
+    MSG_13403_PARSED_N_ENTRIES( "MSG_13403_PARSED_N_ENTRIES" ), 
+    MSG_13404_READ_MODIF( "MSG_13404_READ_MODIF" ),
+    MSG_13405_READ_ATTR( "MSG_13405_READ_ATTR" ),
+    MSG_13406_READ_ENTRY( "MSG_13406_READ_ENTRY" ),
+    MSG_13407_STARTS_PARSING_LDIF( "MSG_13407_STARTS_PARSING_LDIF" ),
+    MSG_13408_END_OF_LDIF( "MSG_13408_END_OF_LDIF" ),
+    MSG_13409_HAS_NEXT_FALSE( "MSG_13409_HAS_NEXT_FALSE" ),
+    MSG_13410_HAS_NEXT_TRUE( "MSG_13410_HAS_NEXT_TRUE" ),
+    MSG_13411_NEXT_CALLED( "MSG_13411_NEXT_CALLED" ),
+    MSG_13412_NEXT_RETURNING_LDIF( "MSG_13412_NEXT_RETURNING_LDIF" ),
+    MSG_13413_NO_VERSION_ASSUMING_1( "MSG_13413_NO_VERSION_ASSUMING_1" ),
+    MSG_13414_LDIF_FILE_EMPTY( "MSG_13414_LDIF_FILE_EMPTY" ),
+
+    //   message        13500 - 13599
+    MSG_13500_ATTRIBUTE_NOT_IN_SCHEMA( "MSG_13500_ATTRIBUTE_NOT_IN_SCHEMA" ),
+    
+    //   name           13600 - 13699
+
     // api-ldap-net-mina 14000 - 14999
     MSG_14000_DECODING_PDU( "MSG_14000_DECODING_PDU" ),
     MSG_14001_NULL_BUFFER( "MSG_14001_NULL_BUFFER" ),
diff --git a/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties b/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties
index 38cb95a..72dbe9c 100644
--- a/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties
+++ b/i18n/src/main/resources/org/apache/directory/api/i18n/errors.properties
@@ -27,7 +27,7 @@ ERR_00003_INVALID_OID=Invalid OID: {0}
 
 # asn1 ber      1000 - 1999
 #    <>         1000 - 1099
-ERR_01000_LENGTH_OVERFLOW=Overflow : can''t have more than 4 bytes long length
+ERR_01000_LENGTH_OVERFLOW=Overflow: can''t have more than 4 bytes long length
 ERR_01001_LENGTH_EXTENSION_RESERVED=Length reserved extension used
 ERR_01002_TLV_NULL=The current container TLV is null.
 ERR_01003_VALUE_LENGTH_ABOVE_EXPECTED_LENGTH=The current Value length {0} is above the expected length {1}
@@ -70,7 +70,7 @@ ERR_03004=Unknown type
 ERR_03005=type attribute is required
 ERR_03006=Incorrect value for ''type'' attribute. This is not an OID.
 ERR_03007=Incorrect value for ''criticality'' attribute
-ERR_03008=An unexpected error ocurred : {0}
+ERR_03008=An unexpected error ocurred: {0}
 ERR_03009=the given resultCode is not an integer
 ERR_03010=code attribute is required
 ERR_03011=descr (''{0}'') doesn''t match with the possible values
@@ -99,7 +99,7 @@ ERR_03033=dnAttributes must be a boolean (''true'' or ''false'').
 ERR_03034=Incorrect value for ''type'' attribute. This is not an OID.
 ERR_03035=type attribute is required
 ERR_03036=The tag {0} can''t be found at this position
-ERR_03037=An IOException occurred during parsing : {0}
+ERR_03037=An IOException occurred during parsing: {0}
 ERR_03038=The attribute requestID {0} can''t be below 0
 ERR_03039=the given requestID is not an integer
 ERR_03040=unable to find the batch request
@@ -109,7 +109,7 @@ ERR_03101_MISSING_CONNECTION_TO BIND=Missing connection, can not bind
 
 # ldap-client
 ERR_03201_CURSOR_CLOSE_FAIL=Failed to close open cursor
-ERR_03201_BIND_FAIL_TIMEOUT=Bind failed : timeout occurred
+ERR_03201_BIND_FAIL_TIMEOUT=Bind failed: timeout occurred
 ERR_03202_ERROR_PROCESSING_NOD=Error while processing the NoD for {}
 ERR_03203_OP_FAILED_TIMEOUT={} failed: timeout occurred
 ERR_03204_ERROR_LOADING_SCHEMA=There are errors while loading the schema
@@ -120,7 +120,7 @@ ERR_03208_TIMEOUT=Timeout has occurred
 
 # ldap
 ERR_04001_NULL_IDENTIFICATION_TAG=identificationTag parameter is null
-ERR_04002_BAD_PRECENDENCE=precedence parameter not in [0-255] : {0}
+ERR_04002_BAD_PRECENDENCE=precedence parameter not in [0-255]: {0}
 ERR_04003_NULL_AUTHENTICATION_LEVEL=authenticationLevel parameter is null
 ERR_04004_PARSER_FAILURE_ACI_ITEM=Parser failure on ACIItem:\n\t{0}\nAntlr exception trace:\n{1} [Line:{2} - Column:{3}]
 ERR_04005=The PDU buffer size is too small !
@@ -131,15 +131,15 @@ ERR_04009=The Not filter PDU must not be empty
 ERR_04010=The Or filter PDU must not be empty
 ERR_04011=The Referrals must not be null
 ERR_04012=The Substring filter PDU must not be empty
-ERR_04013=Incorrect DN given : {0} ({1}) is invalid : {2}
-ERR_04014=Incorrect DN given : {0}
-ERR_04015=The URL {0} is not valid : {1} 
-ERR_04016=Invalid URL : {0}
+ERR_04013=Incorrect DN given: {0} ({1}) is invalid: {2}
+ERR_04014=Incorrect DN given: {0}
+ERR_04015=The URL {0} is not valid: {1} 
+ERR_04016=Invalid URL: {0}
 ERR_04017=The name must not be null
-ERR_04018=The result code {0} is invalid : {1}. The result code must be between (0 .. 121)
+ERR_04018=The result code {0} is invalid: {1}. The result code must be between (0 .. 121)
 ERR_04019=The substring any filter is empty
 ERR_04020=The substring final filter is empty
-ERR_04021=The URL {0} is not valid : {1}
+ERR_04021=The URL {0} is not valid: {1}
 ERR_04022=The type cannot be null in a MatchingRuleAssertion
 ERR_04023=Cannot put a PDU in a null buffer !
 ERR_04024=failed to decode the refreshDeletes flag for SyncDoneValueControl
@@ -165,38 +165,37 @@ ERR_04043=The request name must not be null
 ERR_04044=failed to decode the changeType for EntryChangeControl
 ERR_04045=The previousDN field should not contain anything if the changeType is not MODDN
 ERR_04046=Previous DN is not allowed for this change type
-ERR_04047=Bad Previous DN : ''{0}''
+ERR_04047=Bad Previous DN: ''{0}''
 ERR_04048=failed to decode the previous DN
 ERR_04049=failed to decode the changeNumber for EntryChangeControl
 ERR_04050=failed to decode the size for PagedSearchControl
 ERR_04051=failed to decode the changeTypes for PSearchControl
 ERR_04052=failed to decode the changesOnly for PSearchControl
 ERR_04053=failed to decode the returnECs for PSearchControl
-ERR_04054=The visibility flag {0} is invalid : {1}. It should be 0 or 255
-ERR_04055=Undefined changeType value: {0}
+ERR_04054=The visibility flag {0} is invalid: {1}. It should be 0 or 255
 ERR_04056=Cannot have a null matching rule and a null type
 ERR_04057=Cannot have more than one Filter within a Not Filter
 ERR_04058=Cannot have a null initial, any and final substring
 ERR_04059=Expected either a byte[] or ByteBuffer argument but got a {0}
-ERR_04060=Ldap decoder failure : {0}
+ERR_04060=Ldap decoder failure: {0}
 ERR_04061=Ldap decoder failure!
 ERR_04062=Ldap decoder failure, PDU does not contain enough data
 ERR_04063=The input stream does not contain a full PDU
-ERR_04064=Ldap decoder failure : The input stream does not contain a full PDU
-ERR_04065=Ldap encoder failed to encode object: {0}, error : {1}
+ERR_04064=Ldap decoder failure: The input stream does not contain a full PDU
+ERR_04065=Ldap encoder failed to encode object: {0}, error: {1}
 ERR_04066=The LdapMessage has a zero length. This is not allowed
 ERR_04067=The LdapMessage should not be empty
 ERR_04068=The messageId has a zero length. This is not allowed
 ERR_04069=The messageId should not be null
-ERR_04070=The Message Id {0} is invalid : {1}. The message ID must be between (0 .. 2 147 483 647)
+ERR_04070=The Message Id {0} is invalid: {1}. The message ID must be between (0 .. 2 147 483 647)
 ERR_04071=The length of a UnBindRequest must be null, the actual value is {0}
 ERR_04072=The length of a UnBindRequest must be null
 ERR_04073=The entry must not be null
-ERR_04074=The DN to delete : {0} ({1}) is invalid : {2}
+ERR_04074=The DN to delete: {0} ({1}) is invalid: {2}
 ERR_04075=The AbandonRequest messageId must not be null
-ERR_04076=The Abandonned Message Id {0} is invalid : {1}. The message ID must be between (0 .. 2 147 483 647)
+ERR_04076=The Abandonned Message Id {0} is invalid: {1}. The message ID must be between (0 .. 2 147 483 647)
 ERR_04077=The BindRequest must not be null
-ERR_04078=The version {0} is invalid : {1}. The version must be between (0 .. 127)
+ERR_04078=The version {0} is invalid: {1}. The version must be between (0 .. 127)
 ERR_04079=The SaslCredential must not be null
 ERR_04080=The Referrals must not be null
 ERR_04081=The AttributeType can''t be empty
@@ -209,7 +208,7 @@ ERR_04087=Error while injecting the AttributeType
 ERR_04088=The AddResponse must not be null
 ERR_04089=The entry must not be null
 ERR_04090=The newrdn must not be null
-ERR_04091=The oldRdn flag {0} is invalid : {1}. It should be 0 or 255
+ERR_04091=The oldRdn flag {0} is invalid: {1}. It should be 0 or 255
 ERR_04092=The new superior must not be null if the flag ''delete old DN'' is set to true
 ERR_04093=The attribute description must not be null
 ERR_04094=The CompareResponse must not be null
@@ -217,20 +216,20 @@ ERR_04095=The name must not be null
 ERR_04096_NULL_CONTROL_LENGTH=The length of a control must not be null
 ERR_04097_NULL_CONTROL_OID=The OID must not be null
 ERR_04098_INVALID_CONTROL_OID=The control type {0} is not a valid OID
-ERR_04099_INVALID_CONTROL_LIST=Invalid control list {0} : {1}
-ERR_04100_BAD_CONTROL_CRITICALITY=The control criticality flag {0} is invalid : {1}. It should be 0 or 255
-ERR_04101=The scope is not in [0..2] : {0}
-ERR_04102=The derefAlias is not in [0..3] : {0}
+ERR_04099_INVALID_CONTROL_LIST=Invalid control list {0}: {1}
+ERR_04100_BAD_CONTROL_CRITICALITY=The control criticality flag {0} is invalid: {1}. It should be 0 or 255
+ERR_04101=The scope is not in [0..2]: {0}
+ERR_04102=The derefAlias is not in [0..3]: {0}
 ERR_04103=The sizeLimit is not a valid Integer: {0}
 ERR_04104=The timeLimit is not a valid Integer: {0}
-ERR_04105=The types only flag {0} is invalid : {1}. It should be 0 or 255
+ERR_04105=The types only flag {0} is invalid: {1}. It should be 0 or 255
 ERR_04106=The attribute description should not be null
 ERR_04107=The substrings sequence is empty
 ERR_04108=The substring initial filter is empty
 ERR_04109=The matching rule is empty
-ERR_04110=The DN attributes flag {0} is invalid : {1}. It should be 0 or 255
+ERR_04110=The DN attributes flag {0} is invalid: {1}. It should be 0 or 255
 ERR_04111=Could not parse matchedDn while transforming Codec value to Internal: {0}
-ERR_04112=Error while transforming a ExprNode : {0}
+ERR_04112=Error while transforming a ExprNode: {0}
 ERR_04113=shouldn''t happen - if it does then we have issues
 ERR_04114=The CSN must not be null or empty
 ERR_04115=The CSN''s length is incorrect, it should be 40 chars long
@@ -256,36 +255,15 @@ ERR_04140_UNACCEPTABLE_RESULT_CODE=Unacceptable result code for this exception t
 ERR_04141={0} is not an acceptable result code.
 ERR_04142=Only UNWILLING_TO_PERFORM and UNAVAILABLE_CRITICAL_EXTENSION result codes are allowed to be used with this exception
 ERR_04143=Only the following LDAP result codes can be used: {0}
-ERR_04144=ScopeNode can''t be part of a refinement
-ERR_04145=AssertionNode can''t be part of a refinement
-ERR_04146=AssertionValue expected
-ERR_04147=Expected MatchingRule or assertionValue
-ERR_04148_MATCHING_RULE_EXPECTED=MatchingRule expected
-ERR_04149=Not a valid escaped value
-ERR_04150=Bad substring
-ERR_04151=Bad char
-ERR_04152=Expecting a ''\='' 
-ERR_04153=An item is expected
-ERR_04154=Empty filterComp
-ERR_04155=No ''('' at the beginning of the filter
-ERR_04156=Bad filter
-ERR_04157=The filter has no right parenthese
-ERR_04158=Empty filter
-ERR_04159=Cannot add more than one element to a negation node.
-ERR_04160=Unknown JNDI scope constant value: {0}
-ERR_04161=Unknown LDAP URL scope value: {0}
-ERR_04162=Invalid attribute {0} for a refinement
 ERR_04163=Unknown SyncStateTypeEnum value {0}
 ERR_04164=Failed to encode payload GracefulShutdownRequest
 ERR_04165_PAYLOAD_DECODING_ERROR=failed to decode payload
-ERR_04166=The result code can only be one of: {0}, {1}, {2}
 ERR_04167=Failed to encode payload CertGenerateRequest
 ERR_04168=the OID is fixed: {0}
 ERR_04169=Failed to decode response value
 ERR_04170=Failed while parsing LDAP url {0}
 ERR_04171=Failed to encode message value.
 ERR_04172=Failed while decoding response
-ERR_04173=the response is hardcoded as zero length array
 ERR_04174=Failed to encode payload StoredProcedureRequest
 ERR_04175=class loading of procedure type not implemented
 ERR_04176=conversion of value to java type not implemented
@@ -297,9 +275,6 @@ ERR_04181=Count not find the Provider class {0}
 ERR_04182=Count not invoke the Provider''s factory method: {0}.getProvider() - it may not exist!
 ERR_04183=Count not invoke the Provider''s factory method: {0}.getProvider() - it does seem to be a public method!
 ERR_04184=Call to Provider''s factory method: {0}.getProvider() threw the following exception:\n{1}
-ERR_04185=RFC 2251 [Section 4.11]: Abandon, Bind, Unbind, and StartTLS operations cannot be abandoned.
-ERR_04186=Unrecognized value ''{0}'' for {1} JNDI property.\nExpected a value of either always, never, searching, or finding.
-ERR_04187=Class has bug: check for valid enumeration values
 ERR_04188=The type cannot be empty or null
 ERR_04189=The User Provided type cannot be empty or null
 ERR_04190=The User provided name does not contains an ''=''
@@ -320,7 +295,7 @@ ERR_04204=Failed to parse RDN for name {0}
 ERR_04205=Exceeded number of elements in the current object
 ERR_04206=The posn({0}) should be in the range [0, {1}]
 ERR_04207=The clone operation has failed
-ERR_04208=Assertion failure : cannot clone the object
+ERR_04208=Assertion failure: cannot clone the object
 ERR_04209_EMPTY_TYPE_NOT_ALLOWED=Empty type not allowed in a DN
 ERR_04210=Cannot serialize a NULL DN
 ERR_04211=The DN should have been normalized before being serialized
@@ -336,7 +311,7 @@ ERR_04220_ARGUMENT2_NULL=Argument ''obj2'' is null
 ERR_04221=Matching rule not found: {0}
 ERR_04222=The value stored in a non Human Readable attribute as a String should be convertible to a byte[]
 ERR_04223=The value stored in an Human Readable attribute as a byte[] should be convertible to a String
-ERR_04224=Invalid value : {0}
+ERR_04224=Invalid value: {0}
 ERR_04225=Encountered name based id of {0} which was not found in the OID registry
 ERR_04226=I do not know how to handle NameAndOptionalUID normalization with objects of class: {0}
 ERR_04227=Cannot parse a null AttributeType
@@ -404,14 +379,14 @@ ERR_04288=OID ''{0}'' was not found within the OID registry
 ERR_04289=Cannot register a Null SchemaObject !
 ERR_04290=The given SchemaObject does not have a valid OID
 ERR_04291=There is already a SchemaObject for OID ''{0}''
-ERR_04292=Cannot build the references for {0}, error : {1}
-ERR_04293=Cannot remove the references for {0}, error : {1}
+ERR_04292=Cannot build the references for {0}, error: {1}
+ERR_04293=Cannot remove the references for {0}, error: {1}
 ERR_04294=The MatchingRule {0} does not have a syntax. This is invalid
 ERR_04296=The MatchingRule {0} does not have a comparator. This is invalid
 ERR_04297=The AttributeType {0} can''t have itself as a superior, or a cycle has been detected while processing the superior''s tree
 ERR_04298=The AttributeType {0} does not have a superior nor a Syntax. This is invalid
 ERR_04299=The ObjectClass {0} has some AttribteType in MAY which is already declared in one of its superior MUST
-ERR_04300=The ObjectClass {0} can''t have itself as a superior, or a cycle has been detected while processing the superior''s tree, or this superior has already been added : \n{1}
+ERR_04300=The ObjectClass {0} can''t have itself as a superior, or a cycle has been detected while processing the superior''s tree, or this superior has already been added: \n{1}
 ERR_04301=Registering of {0}:{1} failed, it''s already present in the Registries
 ERR_04302=Unregistering of {0}:{1} failed, it''s not present in the Registries
 ERR_04303=Cannot find the SUPERIOR object {0} while building cross-references for the {1} AttributeType.
@@ -429,15 +404,15 @@ ERR_04314=The attributeType {0} must have the same USAGE than its superior
 ERR_04315=The attributeType {0} is a USER-APPLICATION attribute, it must be USER-MODIFIABLE
 ERR_04316=The attributeType {0} is a COLLECTIVE AttributeType, it must be a USER-APPLICATION attributeType too.
 ERR_04317=The created MatchingRule must refers to an existing SYNTAX element
-ERR_04318=Cannot register the SchemaObject {0}, an ABSTRACT ObjectClass cannot inherit from an {1} ObjectClass :/n {2}
-ERR_04319=Cannot register the SchemaObject {0}, an AUXILIARY ObjectClass cannot inherit from a STRUCTURAL ObjectClass :/n {1}
-ERR_04320=Cannot register the SchemaObject {0}, a STRUCTURAL ObjectClass cannot inherit from an AUXILIARY ObjectClass :/n {1}
-ERR_04321=Cannot register the SchemaObject {0}, the given SUPERIOR does not exist : {1}
-ERR_04322=Cannot register the SchemaObject {0}, there are some duplicate AT in the MAY : {1}
-ERR_04323=Cannot register the SchemaObject {0}, the AT we want to add to MAY does not exist : {1}
-ERR_04324=Cannot register the SchemaObject {0}, there are some duplicate AT in the MUST : {1}
-ERR_04325=Cannot register the SchemaObject {0}, there are some duplicate AT in MAY and MUST : {1}
-ERR_04326=Cannot register the SchemaObject {0}, the AT we want to add to MUST does not exist : {1}
+ERR_04318=Cannot register the SchemaObject {0}, an ABSTRACT ObjectClass cannot inherit from an {1} ObjectClass:/n {2}
+ERR_04319=Cannot register the SchemaObject {0}, an AUXILIARY ObjectClass cannot inherit from a STRUCTURAL ObjectClass:/n {1}
+ERR_04320=Cannot register the SchemaObject {0}, a STRUCTURAL ObjectClass cannot inherit from an AUXILIARY ObjectClass:/n {1}
+ERR_04321=Cannot register the SchemaObject {0}, the given SUPERIOR does not exist: {1}
+ERR_04322=Cannot register the SchemaObject {0}, there are some duplicate AT in the MAY: {1}
+ERR_04323=Cannot register the SchemaObject {0}, the AT we want to add to MAY does not exist: {1}
+ERR_04324=Cannot register the SchemaObject {0}, there are some duplicate AT in the MUST: {1}
+ERR_04325=Cannot register the SchemaObject {0}, there are some duplicate AT in MAY and MUST: {1}
+ERR_04326=Cannot register the SchemaObject {0}, the AT we want to add to MUST does not exist: {1}
 ERR_04327=Unknown objectClass type name ''{0}'': options are AUXILIARY, STRUCTURAL, ABSTRACT.
 ERR_04328=undefined modification type: {0}
 ERR_04329=Parser failure on subtree specification:\n\t{0}\nAntlr exception trace:\n{1}
@@ -484,9 +459,9 @@ ERR_04404=Scope is invalid
 ERR_04405=Filter is invalid
 ERR_04406=Extensions are invalid
 ERR_04407=Invalid character at the end of the ldapUrl
-ERR_04408=The string is empty : this is not a valid LdapURL.
-ERR_04409=Bad Ldap URL : {0}
-ERR_04410=The byte array is empty : this is not a valid LdapURL.
+ERR_04408=The string is empty: this is not a valid LdapURL.
+ERR_04409=Bad Ldap URL: {0}
+ERR_04410=The byte array is empty: this is not a valid LdapURL.
 ERR_04413=HttpClient requires ASCII support
 ERR_04414=Invalid URL encoding
 ERR_04417={0} is not ancestually related to context: {1}
@@ -514,7 +489,7 @@ ERR_04453=The upID ({0}) is not an OID or is different from the AttributeType OI
 ERR_04454=Cannot use standard serialization for a ServerAttribute
 ERR_04455=The ID ''{0}''is incompatible with the AttributeType''s id ''{1}''
 ERR_04456=An ID cannnot be null, empty, or resolved to an emtpy value when trimmed
-ERR_04459=We have had an error while adding the ''{0}'' AttributeType : {1}
+ERR_04459=We have had an error while adding the ''{0}'' AttributeType: {1}
 ERR_04467=The AttributeType list should not contain null values
 ERR_04468=Cannot use standard serialization for a ServerAttribute
 ERR_04469=Cannot use standard serialization for a ServerEntry
@@ -548,83 +523,14 @@ ERR_11008=Oid {0} for new schema entity is not unique.
 ERR_11009=Cannot add the SchemaObject {0} into a non existing schema {1} 
 ERR_11010=Cannot inject the SchemaObject {0} as it''s not associated with a schema
 ERR_11011=Oid {0} for new schema entity does not exist.
-ERR_11012=Cannot remove {0} for the registries, it would become inconsistent. The following SchemaObjects are referencing this SchemaObject : {1}
+ERR_11012=Cannot remove {0} for the registries, it would become inconsistent. The following SchemaObjects are referencing this SchemaObject: {1}
 ERR_11013=Cannot delete the SchemaObject {0} as it''s not associated with a schema
 
 # ldif
-ERR_12001_UNKNOWN_CHANGE_TYPE=Unknown change type value {0}
 ERR_12002_ENTRY_WITH_TWO_DNS=An entry must not have two DNs, at line {0}
-ERR_12003_LDIF_ENTRY_WITH_TWO_DNS=A ldif entry should not have two DNs
-ERR_12004_CHANGE_NOT_ALLOWED=We cannot have changes when reading a file which already contains entries, at line {0}
-ERR_12005_NO_CHANGE=No changes within entries
-ERR_12006_EXPECTING_ATTRIBUTE_TYPE=Expecting an attribute type
-ERR_12007_BAD_ATTRIBUTE=Bad attribute
-ERR_12008_CANNOT_PARSE_LDIF_BUFFER=Cannot parse the ldif buffer : {0}
-ERR_12009_ERROR_PARSING_LDIF_BUFFER=Error while parsing the ldif buffer
-ERR_12010_CANNOT_FIND_FILE=Cannot find file {0}
-ERR_12011_CANNOT_READ_FILE=Cannot read file {0}
-ERR_12012_EMPTY_DN_NOT_ALLOWED=A ldif entry must have a non empty DN, at line {0}
-ERR_12013_NO_DN=No DN for entry
 ERR_12014_BASE64_DN_EXPECTED=The ldif entry is supposed to have a base 64 encoded DN, at line {0}
 ERR_12015_INVALID_BASE64_DN=Invalid base 64 encoded DN
-ERR_12016_DN_EXPECTED=A ldif entry must start with a DN, at line {0}
-ERR_12017_INVALID_DN=The DN {0} is not valid, at line {1}
-ERR_12018_FILE_NOT_FOUND=File {0} not found, at line {1}
-ERR_12019_BAD_URL_FILE_NOT_FOUND=Bad URL, file not found
-ERR_12020_FILE_TOO_BIG=File {0} is too big, at line {1}
-ERR_12022_ERROR_READING_FILE=File {0} error reading, at line {1}
-ERR_12023_ERROR_READING_BAD_URL=Bad URL, file can''t be read
-ERR_12024_CANNOT_CLOSE_FILE=Error while closing the stream : {0}, at line {1}
-ERR_12025_BAD_PROTOCOL=Protocols other than file: are not supported
-ERR_12026_UNSUPPORTED_PROTOCOL=Unsupported URL protocol, at line {0}
-ERR_12027_BAD_URL=Bad URL {0}, at line {1}
-ERR_12029_CONTROL_WITHOUT_OID=The control does not have an OID, at line {0}
-ERR_12031_INVALID_OID=The OID {0} is not valid, at line {1}
-ERR_12033_INVALID_CRITICALITY=The control must have a valid criticality, at line {0}
-ERR_12035_BAD_MODRDN_OPERATION=A modrdn operation must start with a "newrdn:", at line {0}
-ERR_12038_NO_DELETEOLDRDN=A modrdn operation must contains a "deleteoldrdn:", at line {0}
-ERR_12040_BAD_MODIFY_SEPARATOR=Bad state : we should have come from an ATTRVAL_SPEC, at line {0}
-ERR_12042_BAD_MODIFY_SEPARATOR_2=Bad state : we should have come from a MOD_SPEC or an ATTRVAL_SPEC, at line {0}
-ERR_12044=The modified attribute and the attribute value spec must be equal, at line {0}
-ERR_12045=Bad modify attribute
-ERR_12046=A moddn operation must contains a "newsuperior:", at line {0}
-ERR_12047=Bad moddn operation, no newsuperior
-ERR_12048=Unknown operation, at line {0}
-ERR_12049=Bad operation
-ERR_12050=We already have had a control, at line {0}
-ERR_12051=Control misplaced
-ERR_12052=We already have had a changeType, at line {0}
-ERR_12053=ChangeType misplaced
-ERR_12054=We can''t have a Attribute/Value pair after a control or a changeType, at line {0}
-ERR_12055=AttributeType misplaced
-ERR_12056=Expecting an attribute type, at line {0}
-ERR_12057_BAD_ATTRIBUTE=Bad attribute
-ERR_12058_UNKNOWN_ENTRY_TYPE=Unknown entry type, at line {0}
-ERR_12059_UNKNOWN_ENTRY=Unknown entry
-ERR_12060_VERSION_NOT_A_NUMBER=The version is not a number, at line {0}
-ERR_12061_LDIF_PARSING_ERROR=Ldif parsing error
-ERR_12062_EMPTY_CONTINUATION_LINE=Cannot have an empty continuation line, at line {0}
-ERR_12063_ERROR_WHILE_READING_LDIF_LINE=Error while reading ldif lines
-ERR_12064_EMPTY_FILE_NAME=Cannot parse an empty file name !
-ERR_12066=Cannot parse the file {0}, it does not exist
-ERR_12067=Filename {0} not found.
-ERR_12068=Cannot find file {0}
-ERR_12069=Cannot parse the ldif buffer : {0}
-ERR_12070=Error while parsing the ldif buffer
-ERR_12071=Premature termination of LDIF iterator
-ERR_12072=Error while parsing ldif : {0}
-ERR_12073=Could not deduce reverse modifications from provided modifications: {0}
-ERR_12074=newSuperiorDn must not be null
-ERR_12075=modifiedDn must not be null
-ERR_12076=Don''t think about moving the rootDSE.
-ERR_12077=The newRdn must not be null
-ERR_12078=The modified Dn must not be null
-ERR_12079=Don''t think about renaming the rootDSE.
 ERR_12080=Can''t rename an entry using the same name ...
-ERR_12081=Invalid Entry : a deleted entry should not contain attributes
-ERR_12082=Invalid Entry : a added or modified entry should contain attributes
-ERR_12083=Invalid Entry : a modifyDN operation entry should not contain attributes
-ERR_12084=The length of each line must be at least 2 chars long
 ERR_12087=A value is missing at the end
 
 # api-ldap-model 13000-13999
@@ -695,7 +601,124 @@ ERR_13246_INVALID_VALUE_PER_SYNTAX=Invalid upValue per syntax
 ERR_13247_INVALID_VALUE_CANT_NORMALIZE=Invalid upValue, it can't be normalized
 ERR_13248_CANNOT_READ_ENTRY=Cannot read an entry
 ERR_13249_NO_COMPARATOR_FOR_AT=No comparator for attributeType {0}
-ERR_1324
+
+#   filter          13300-13399
+ERR_13300_BAD_PLACE_HOLDERS_NUMBER=Filter template {0} has {1} place-holders but {2} arguments provided.
+ERR_13301_NO_ORDERING_MR_FOR_AT=There is no ORDERING matchingRule for AttributeType {0}
+ERR_13302_CANNOT_CREATE_NODE_NULL_ATTR=Cannot create a Node with a null Attribute
+ERR_13303_SCOPENODE_IN_REFINEMENT=ScopeNode can''t be part of a refinement
+ERR_13304_ASSERTIONNODE_IN_REFINEMENT=AssertionNode can''t be part of a refinement
+ERR_13305_ASSERTION_VALUE_EXPECTED=AssertionValue expected
+ERR_13306_MR_OR_ASSERTION_VALUE_EXPECTED=Expected MatchingRule or assertionValue
+ERR_13307_MATCHING_RULE_EXPECTED=MatchingRule expected
+ERR_13308_NOT_A_VALID_ESCAPED_VALUE=Not a valid escaped value
+ERR_13309_BAD_SUBSTRING=Bad substring
+ERR_13310_BAD_CHAR=Bad char
+ERR_13311_EXPECTING_EQUAL=Expecting a ''\=''
+ERR_13312_ITEM_EXPECTED=An item is expected
+ERR_13313_EMPTY_FILTERCOMP=Empty filterComp
+ERR_13314_FILTER_MISSING_OPEN_PAR=No ''('' at the beginning of the filter
+ERR_13315_FILTER_MISSING_CLOSE_PAR=The filter has no right parenthese
+ERR_13316_EMPTY_FILTER=Empty filter
+ERR_13317_NO_MORE_THAN_ONE_ELEM_IN_NOT=Cannot add more than one element to a negation node.
+ERR_13318_INVALID_ATTR_IN_REFINEMENT=Invalid attribute {0} for a refinement
+
+#   ldif            13400-13499
+ERR_13400_ENTRY_WITH_TWO_DNS=An entry must not have two DNs, at line {0}
+ERR_13401_CHANGE_NOT_ALLOWED=We cannot have changes when reading a file which already contains entries, at line {0}
+ERR_13402_EXPECTING_ATTRIBUTE_TYPE=Expecting an attribute type
+ERR_13403_CANNOT_PARSE_LDIF_BUFFER=Cannot parse the ldif buffer: {0}
+ERR_13404_EMPTY_DN_NOT_ALLOWED=A ldif entry must have a non empty DN, at line {0}
+ERR_13405_DN_EXPECTED=A ldif entry must start with a DN, at line {0}
+ERR_13406_FILE_NOT_FOUND=File {0} not found, at line {1}
+ERR_13407_ERROR_READING_FILE=File {0} error reading, at line {1}
+ERR_13408_BAD_PROTOCOL=Protocols other than file: are not supported
+ERR_13409_CONTROL_WITHOUT_OID=The control does not have an OID, at line {0}
+ERR_13410_INVALID_CRITICALITY=The control must have a valid criticality, at line {0}
+ERR_13411_BAD_MODRDN_OPERATION=A modrdn operation must start with a "newrdn:", at line {0}
+ERR_13412_NO_DELETEOLDRDN=A modrdn operation must contains a "deleteoldrdn:", at line {0}
+ERR_13413_BAD_MODIFY_SEPARATOR=Bad state: we should have come from an ATTRVAL_SPEC, at line {0}
+ERR_13414_BAD_MODIFY_SEPARATOR_2=Bad state: we should have come from a MOD_SPEC or an ATTRVAL_SPEC, at line {0}
+ERR_13415_MOD_ATTR_AND_VALUE_SPEC_NOT_EQUAL=The modified attribute and the attribute value spec must be equal, at line {0}
+ERR_13416_NEW_SUPERIOR_NEEDED=A moddn operation must contains a "newsuperior:", at line {0}
+ERR_13417_UNKNOWN_OPERATION=Unknown operation, at line {0}
+ERR_13418_CONTROL_ALREADY_FOUND=We already have had a control, at line {0}
+ERR_13419_CHANGETYPE_ALREADY_FOUND=We already have had a changeType, at line {0}
+ERR_13420_AT_VALUE_NOT_ALLOWED_AFTER_CONTROL=We can''t have a Attribute/Value pair after a control or a changeType, at line {0}
+ERR_13421_ATTRIBUTE_TYPE_EXPECTED=Expecting an attribute type, at line {0}
+ERR_13422_UNKNOWN_ENTRY_TYPE=Unknown entry type, at line {0}
+ERR_13423_VERSION_NOT_A_NUMBER=The version is not a number, at line {0}
+ERR_13424_EMPTY_CONTINUATION_LINE=Cannot have an empty continuation line, at line {0}
+ERR_13425_EMPTY_FILE_NAME=Cannot parse an empty file name !
+ERR_13426_CANNOT_PARSE_INEXISTANT_FILE=Cannot parse the file {0}, it does not exist
+ERR_13427_CANNOT_FIND_FILE=Cannot find file {0}
+ERR_13428_CANNOT_PARSE_LDIF=Cannot parse the ldif buffer: {0}
+ERR_13429_ERROR_PARSING_LDIF=Error while parsing ldif: {0}
+ERR_13430_PREMATURE_LDIF_ITERATOR_TERMINATION=Premature termination of LDIF iterator
+ERR_13431_UNEXPECTED_CHANGETYPE=Unexpected ChangeType: {0}
+ERR_13432_NULL_ADDED_CONTROL=The added control must not be null
+ERR_13433_SEE_DIRSERVER_1547=See DIRSERVER-1547
+ERR_13434_UNEXPECTED_MOD_OPERATION=Unexpected ModificationOperation: {0}
+ERR_13435_CANNOT_COMPUTE_NEW_VALUE=Cannot compute a new value for {0}
+ERR_13436_ERROR_ANONYMIZING_VALUE=Error while anonymizing the value {0}
+ERR_13437_OVERFLOW=Overflow for {0}
+ERR_13438_UNKNOWN_CHANGE_TYPE=Unknown change type value {0}
+ERR_13439_LDIF_ENTRY_WITH_TWO_DNS=A ldif entry should not have two DNs
+ERR_13440_NO_CHANGE=No changes within entries
+ERR_13441_BAD_ATTRIBUTE=Bad attribute
+ERR_13442_ERROR_PARSING_LDIF_BUFFER=Error while parsing the ldif buffer
+ERR_13443_CANNOT_FIND_FILE=Cannot find file {0}
+ERR_13444_CANNOT_READ_FILE=Cannot read file {0}
+ERR_13445_NO_DN=No DN for entry
+ERR_13446_INVALID_DN=The DN {0} is not valid, at line {1}
+ERR_13447_BAD_URL_FILE_NOT_FOUND=Bad URL, file not found
+ERR_13448_FILE_TOO_BIG=File {0} is too big, at line {1}
+ERR_13449_ERROR_READING_BAD_URL=Bad URL, file can''t be read
+ERR_13450_CANNOT_CLOSE_FILE=Error while closing the stream: {0}, at line {1}
+ERR_13451_UNSUPPORTED_PROTOCOL=Unsupported URL protocol, at line {0}
+ERR_13452_BAD_URL=Bad URL {0}, at line {1}
+ERR_13453_INVALID_OID=The OID {0} is not valid, at line {1}
+ERR_13454_BAD_MODIFY_ATTRIBUTE=Bad modify attribute
+ERR_13455_BAD_MODDN_NO_SUPERIOR=Bad moddn operation, no newsuperior
+ERR_13456_BAD_OPERATION=Bad operation
+ERR_13457_MISPLACED_CONTROL=Control misplaced
+ERR_13458_MISPLACED_CHANGETYPE=ChangeType misplaced
+ERR_13459_MISPLACED_ATTRIBUTETYPE=AttributeType misplaced
+ERR_13460_BAD_ATTRIBUTE=Bad attribute
+ERR_13461_UNKNOWN_ENTRY=Unknown entry
+ERR_13462_LDIF_PARSING_ERROR=Ldif parsing error
+ERR_13463_ERROR_WHILE_READING_LDIF_LINE=Error while reading ldif lines
+ERR_13464_FILENAME_NOT_FOUND=Filename {0} not found.
+ERR_13465_CANT_DEDUCE_REVERSE_FOR_MOD=Could not deduce reverse modifications from provided modifications: {0}
+ERR_13466_NEW_SUPERIOR_DN_NULL=newSuperiorDn must not be null
+ERR_13467_NULL_MODIFIED_DN=modifiedDn must not be null
+ERR_13468_DONT_MOVE_ROOTDSE=Don''t think about moving the rootDSE.
+ERR_13469_NULL_READ_DN=The newRdn must not be null
+ERR_13470_DONT_RENAME_ROOTDSE=Don''t think about renaming the rootDSE.
+ERR_13471_DELETED_ENTRY_WITH_ATTRIBUTES=Invalid Entry: a deleted entry should not contain attributes
+ERR_13472_ENTRY_WITH_NO_ATTRIBUTE=Invalid Entry: a added or modified entry should contain attributes
+ERR_13473_MODDN_WITH_ATTRIBUTES=Invalid Entry: a modifyDN operation entry should not contain attributes
+ERR_13474_LINE_LENGTH_TOO_SHORT=The length of each line must be at least 2 chars long
+ERR_13475_UNKNOWN_ATTRIBUTETYPE=The AttributeType is unknonw for this attribute: {0}
+
+#   message         13500-13599
+ERR_13500_UNDEFINED_CHANGETYPE=Undefined changeType value: {0}
+ERR_13501_UNKNOWN_JNDI_SCOPE=Unknown JNDI scope constant value: {0}
+ERR_13502_UNKNOWN_LDAP_URL_SCOPE=Unknown LDAP URL scope value: {0}
+ERR_13503_RESULT_CODE_SHOULD_BE_IN=The result code can only be one of: {0}, {1}, {2}
+ERR_13504_FIX_OID=the OID is fixed: {0}
+ERR_13505_HARDCODED_ZERO_LENGTH_RESPONSE=the response is hardcoded as zero length array
+ERR_13506_CANNOT_ABANDON_OPERATION=RFC 2251 [Section 4.11]: Abandon, Bind, Unbind, and StartTLS operations cannot be abandoned.
+ERR_13507_UNRECOGNIZED_JNDI_PROPERTY_VALUE=Unrecognized value ''{0}'' for {1} JNDI property.\nExpected a value of either always, never, searching, or finding.
+ERR_13508_INVALID_FILTER=The filter {0} is invalid.
+ERR_13509_UNEXPECTED_SCOPE=Unexpected scope {0}
+ERR_13510_UNKNOWN_DEREF_MODE=Unknown derefmode {0}
+ERR_13511_INVALID_PROXIED_AUTHZ_NULL=Invalid proxied authz value: cannot be null
+ERR_13512_INVALID_PROXIED_AUTHZ_BAD_DN=Invalid proxied authz value: the DN is not valid
+ERR_13513_INVALID_PROXIED_AUTHZ_NO_DN_OR_U=Invalid proxied authz value: should start with 'dn:' or 'u:'
+ERR_13514_UNKNOWN_SORT_RESPONSE_RESULT=Unknown sort response result code {0}
+ERR_13515_UNEXPECTED_MOD_OP=Unexpected ModificationOperation
+ERR_13516_UNEXPECTED_MESSAGE_TYPE=Unexpected MessageTypeEnum {0}
 
 # api-ldap-net-mina 14000-14999
 
@@ -704,7 +727,7 @@ ERR_15000_SCHEMA_ELEMENT_NAME_REQUIRED={0} the schema configuration element must
 ERR_15001_NULL_SCHEMA=Can''t generate a ldif for a null schema
 ERR_15002_EMPTY_OR_NULL_SCHEMA_OBJECT=The schemaObject is either null or is empty!
 ERR_15003_PARSER_FAILURE=Parser failure on:\n\t{0}\nAntlr exception trace:\n{1}
-ERR_15004_CANNOT_GENERATE_SOURCES=Failed while generating sources for {0} : {1}
+ERR_15004_CANNOT_GENERATE_SOURCES=Failed while generating sources for {0}: {1}
 ERR_15005_NO_PROPERTY=the schema property must be set
 
 # api-ldap-schema-data  16000 - 16999
@@ -748,7 +771,7 @@ ERR_16036_OID_NOT_UNIQUE=Oid {0} for new schema entity is not unique.
 ERR_16037_NON_EXISTING_SCHEMA=Cannot add the SchemaObject {0} into a non existing schema {1} 
 ERR_16038_NOT_ASSOCIATED_TO_A_SCHEMA=Cannot inject the SchemaObject {0} as it''s not associated with a schema
 ERR_16039_OID_DOES_NOT_EXIST=Oid {0} for new schema entity does not exist.
-ERR_16040_CANNOT_REMOVE_FROM_REGISTRY=Cannot remove {0} for the registries, it would become inconsistent. The following SchemaObjects are referencing this SchemaObject : {1}
+ERR_16040_CANNOT_REMOVE_FROM_REGISTRY=Cannot remove {0} for the registries, it would become inconsistent. The following SchemaObjects are referencing this SchemaObject: {1}
 ERR_16041_CANNOT_DELETE_SCHEMA_OBJECT=Cannot delete the SchemaObject {0} as it''s not associated with a schema
 ERR_16042_OUTPUT_DIR_CREATION_FAIL=Failed to create outputDirectory: {0}
 ERR_16043_CANOT_LOAD_SCHEMA=Unable to load schema from the given resource value {0}
diff --git a/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties b/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties
index d3e27d2..85fc91c 100644
--- a/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties
+++ b/i18n/src/main/resources/org/apache/directory/api/i18n/messages.properties
@@ -114,12 +114,34 @@ MSG_13104_CREATING_LIST_CURSOR=Creating ListCursor {0}
 MSG_13105_CREATING_SET_CURSOR=Creating SetCursor {0}
 MSG_13106_CREATING_SINGLE_CURSOR=Creating SingletonCursor {0}
 
-#   entry       123200-13299
+#   entry       13200-13299
 MSG_13200_CANT_STORE_ATTRIBUTE=The attribute ''{0}'' cannot be stored
 MSG_13201_DN_CANT_BE_NORMALIZED=The Dn ''{0}'' cannot be normalized
 MSG_13202_AT_IS_NULL=The attributeType is null
 MSG_13203_MISSING_ATTRIBUTE_IN_ENTRY=The attribute ''{0}'' does not exist in the entry
 
+#   filter       13300-13399
+
+#   ldif         13400-13499
+MSG_13400_LDIF_VERSION=Ldif version: {0}
+MSG_13401_PARSED_NO_ENTRY=Parsed no entry.
+MSG_13402_PARSED_ONE_ENTRY=Parsed one entry.
+MSG_13403_PARSED_N_ENTRIES=Parsed {0} entries. 
+MSG_13404_READ_MODIF=Read a modification: {0}
+MSG_13405_READ_ATTR=Read an attribute: {0}
+MSG_13406_READ_ENTRY=Read an entry: {0}
+MSG_13407_STARTS_PARSING_LDIF=Starts parsing ldif buffer
+MSG_13408_END_OF_LDIF=The entry is empty: end of ldif file
+MSG_13409_HAS_NEXT_FALSE=hasNext(): -- returning false
+MSG_13410_HAS_NEXT_TRUE=hasNext(): -- returning true
+MSG_13411_NEXT_CALLED=next(): -- called
+MSG_13412_NEXT_RETURNING_LDIF=next(): -- returning ldif {0}\n
+MSG_13413_NO_VERSION_ASSUMING_1=No version information: assuming version: 1
+MSG_13414_LDIF_FILE_EMPTY=The ldif file is empty
+
+#   message      13500-13599
+MSG_13500_ATTRIBUTE_NOT_IN_SCHEMA=Requested attribute {0} does not exist in the schema, it will be ignored
+
 # api-ldap-net-mina 14000-14999
 MSG_14000_DECODING_PDU=Decoding the PDU:
 MSG_14001_NULL_BUFFER=NULL buffer, what the HELL ???
diff --git a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/cancel/CancelResponseImpl.java b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/cancel/CancelResponseImpl.java
index 8c5667f..605410c 100644
--- a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/cancel/CancelResponseImpl.java
+++ b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/cancel/CancelResponseImpl.java
@@ -52,7 +52,7 @@ public class CancelResponseImpl extends ExtendedResponseImpl implements CancelRe
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.SUCCESS,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.SUCCESS,
                     ResultCodeEnum.OPERATIONS_ERROR, ResultCodeEnum.INSUFFICIENT_ACCESS_RIGHTS ) );
         }
 
diff --git a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/certGeneration/CertGenerationResponseImpl.java b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/certGeneration/CertGenerationResponseImpl.java
index e086a09..6e65d94 100644
--- a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/certGeneration/CertGenerationResponseImpl.java
+++ b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/certGeneration/CertGenerationResponseImpl.java
@@ -51,7 +51,7 @@ public class CertGenerationResponseImpl extends ExtendedResponseImpl implements
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.SUCCESS,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.SUCCESS,
                     ResultCodeEnum.OPERATIONS_ERROR, ResultCodeEnum.INSUFFICIENT_ACCESS_RIGHTS ) );
         }
 
@@ -106,7 +106,7 @@ public class CertGenerationResponseImpl extends ExtendedResponseImpl implements
     @Override
     public void setResponseName( String oid )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04168, EXTENSION_OID ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13504_FIX_OID, EXTENSION_OID ) );
     }
 
 
diff --git a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java
index f16760c..af0004a 100644
--- a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java
+++ b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulDisconnect/GracefulDisconnectResponseImpl.java
@@ -102,7 +102,7 @@ public class GracefulDisconnectResponseImpl extends ExtendedResponseImpl impleme
     @Override
     public void setResponseName( String oid )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04168, EXTENSION_OID ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13504_FIX_OID, EXTENSION_OID ) );
     }
 
 
diff --git a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulShutdown/GracefulShutdownResponseImpl.java b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulShutdown/GracefulShutdownResponseImpl.java
index 8fca659..2a4ea41 100644
--- a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulShutdown/GracefulShutdownResponseImpl.java
+++ b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/gracefulShutdown/GracefulShutdownResponseImpl.java
@@ -56,7 +56,7 @@ public class GracefulShutdownResponseImpl extends ExtendedResponseImpl implement
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.SUCCESS,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.SUCCESS,
                     ResultCodeEnum.OPERATIONS_ERROR, ResultCodeEnum.INSUFFICIENT_ACCESS_RIGHTS ) );
         }
 
@@ -115,7 +115,7 @@ public class GracefulShutdownResponseImpl extends ExtendedResponseImpl implement
     @Override
     public void setResponseName( String oid )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04168, EXTENSION_OID ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13504_FIX_OID, EXTENSION_OID ) );
     }
 
 
diff --git a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/startTransaction/StartTransactionResponseImpl.java b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/startTransaction/StartTransactionResponseImpl.java
index 904dc92..002fdaa 100644
--- a/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/startTransaction/StartTransactionResponseImpl.java
+++ b/ldap/extras/codec-api/src/main/java/org/apache/directory/api/ldap/extras/extended/startTransaction/StartTransactionResponseImpl.java
@@ -72,7 +72,7 @@ public class StartTransactionResponseImpl extends ExtendedResponseImpl implement
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.SUCCESS,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.SUCCESS,
                     ResultCodeEnum.OPERATIONS_ERROR, ResultCodeEnum.INSUFFICIENT_ACCESS_RIGHTS ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AbstractExprNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AbstractExprNode.java
index a4b5eaf..5b87309 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AbstractExprNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AbstractExprNode.java
@@ -209,7 +209,7 @@ public abstract class AbstractExprNode implements ExprNode
     @Override
     public StringBuilder printRefinementToBuffer( StringBuilder buf )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04144 ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13303_SCOPENODE_IN_REFINEMENT ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AssertionNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AssertionNode.java
index 7926c5c..a19f9f2 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AssertionNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/AssertionNode.java
@@ -112,7 +112,7 @@ public abstract class AssertionNode extends AbstractExprNode
     @Override
     public StringBuilder printRefinementToBuffer( StringBuilder buf )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04145 ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13304_ASSERTIONNODE_IN_REFINEMENT ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterEncoder.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterEncoder.java
index a8ded0f..3889ea7 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterEncoder.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterEncoder.java
@@ -25,6 +25,7 @@ import java.text.MessageFormat;
 import java.util.Locale;
 
 import org.apache.directory.api.i18n.I18n;
+import org.apache.directory.api.util.Strings;
 
 
 /**
@@ -34,9 +35,6 @@ import org.apache.directory.api.i18n.I18n;
  */
 public final class FilterEncoder
 {
-    private static final String[] EMPTY = new String[0];
-
-
     private FilterEncoder()
     {
     }
@@ -57,18 +55,17 @@ public final class FilterEncoder
     {
         if ( values == null )
         {
-            values = EMPTY;
+            values = Strings.EMPTY_STRING_ARRAY;
         }
 
         MessageFormat mf = new MessageFormat( filterTemplate, Locale.ROOT );
 
         // check element count and argument count
         Format[] formats = mf.getFormatsByArgumentIndex();
+        
         if ( formats.length != values.length )
         {
-            // TODO: I18n
-            String msg = "Filter template {0} has {1} placeholders but {2} arguments provided.";
-            throw new IllegalArgumentException( I18n.format( msg, filterTemplate, formats.length, values.length ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13300_BAD_PLACE_HOLDERS_NUMBER, filterTemplate, formats.length, values.length ) );
         }
 
         // encode arguments
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java
index 3820761..ef88989 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/FilterParser.java
@@ -122,7 +122,7 @@ public final class FilterParser
     {
         if ( Strings.isEmpty( filter ) )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04158 ), 0 );
+            throw new ParseException( I18n.err( I18n.ERR_13316_EMPTY_FILTER ), 0 );
         }
 
         /** Convert the filter to an array of bytes, as this is what we expect */
@@ -231,13 +231,13 @@ public final class FilterParser
                     }
                     else
                     {
-                        throw new ParseException( I18n.err( I18n.ERR_04146 ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13305_ASSERTION_VALUE_EXPECTED ), pos.start );
                     }
                 }
             }
             else
             {
-                throw new ParseException( I18n.err( I18n.ERR_04147 ), pos.start );
+                throw new ParseException( I18n.err( I18n.ERR_13306_MR_OR_ASSERTION_VALUE_EXPECTED ), pos.start );
             }
         }
         else
@@ -268,7 +268,7 @@ public final class FilterParser
                 {
                     if ( oidRequested )
                     {
-                        throw new ParseException( I18n.err( I18n.ERR_04148_MATCHING_RULE_EXPECTED ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13307_MATCHING_RULE_EXPECTED ), pos.start );
                     }
 
                     pos.start++;
@@ -295,13 +295,13 @@ public final class FilterParser
                     }
                     else
                     {
-                        throw new ParseException( I18n.err( I18n.ERR_04146 ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13305_ASSERTION_VALUE_EXPECTED ), pos.start );
                     }
                 }
             }
             else
             {
-                throw new ParseException( I18n.err( I18n.ERR_04147 ), pos.start );
+                throw new ParseException( I18n.err( I18n.ERR_13306_MR_OR_ASSERTION_VALUE_EXPECTED ), pos.start );
             }
         }
     }
@@ -377,7 +377,7 @@ public final class FilterParser
                 }
                 else
                 {
-                    throw new ParseException( I18n.err( I18n.ERR_04149 ), pos.start );
+                    throw new ParseException( I18n.err( I18n.ERR_13308_NOT_A_VALID_ESCAPED_VALUE ), pos.start );
                 }
 
                 // second hex
@@ -388,7 +388,7 @@ public final class FilterParser
                 }
                 else
                 {
-                    throw new ParseException( I18n.err( I18n.ERR_04149 ), pos.start );
+                    throw new ParseException( I18n.err( I18n.ERR_13308_NOT_A_VALID_ESCAPED_VALUE ), pos.start );
                 }
             }
             else
@@ -526,7 +526,7 @@ public final class FilterParser
                 }
                 else
                 {
-                    throw new ParseException( I18n.err( I18n.ERR_04149 ), pos.start );
+                    throw new ParseException( I18n.err( I18n.ERR_13308_NOT_A_VALID_ESCAPED_VALUE ), pos.start );
                 }
 
                 // second hex
@@ -537,7 +537,7 @@ public final class FilterParser
                 }
                 else
                 {
-                    throw new ParseException( I18n.err( I18n.ERR_04149 ), pos.start );
+                    throw new ParseException( I18n.err( I18n.ERR_13308_NOT_A_VALID_ESCAPED_VALUE ), pos.start );
                 }
             }
             else
@@ -651,7 +651,7 @@ public final class FilterParser
             else
             {
                 // This is an error
-                throw new ParseException( I18n.err( I18n.ERR_04150 ), pos.start );
+                throw new ParseException( I18n.err( I18n.ERR_13309_BAD_SUBSTRING ), pos.start );
             }
         }
     }
@@ -774,7 +774,7 @@ public final class FilterParser
                         
                     default :
                         // This is an error
-                        throw new ParseException( I18n.err( I18n.ERR_04150 ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13309_BAD_SUBSTRING ), pos.start );
                 }
         }
     }
@@ -803,7 +803,7 @@ public final class FilterParser
 
         if ( b == '\0' )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04151 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13310_BAD_CHAR ), pos.start );
         }
 
         if ( b == ':' )
@@ -837,7 +837,7 @@ public final class FilterParser
                     // Check that we have a '='
                     if ( !Strings.isCharASCII( filterBytes, pos.start, '=' ) )
                     {
-                        throw new ParseException( I18n.err( I18n.ERR_04152 ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13311_EXPECTING_EQUAL ), pos.start );
                     }
 
                     pos.start++;
@@ -870,7 +870,7 @@ public final class FilterParser
                     // Check that we have a '='
                     if ( !Strings.isCharASCII( filterBytes, pos.start, '=' ) )
                     {
-                        throw new ParseException( I18n.err( I18n.ERR_04152 ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13311_EXPECTING_EQUAL ), pos.start );
                     }
 
                     pos.start++;
@@ -903,7 +903,7 @@ public final class FilterParser
                     // Check that we have a '='
                     if ( !Strings.isCharASCII( filterBytes, pos.start, '=' ) )
                     {
-                        throw new ParseException( I18n.err( I18n.ERR_04152 ), pos.start );
+                        throw new ParseException( I18n.err( I18n.ERR_13311_EXPECTING_EQUAL ), pos.start );
                     }
 
                     pos.start++;
@@ -937,7 +937,7 @@ public final class FilterParser
 
                 default:
                     // This is an error
-                    throw new ParseException( I18n.err( I18n.ERR_04153 ), pos.start );
+                    throw new ParseException( I18n.err( I18n.ERR_13312_ITEM_EXPECTED ), pos.start );
             }
         }
     }
@@ -1027,7 +1027,7 @@ public final class FilterParser
 
         if ( pos.start == pos.length )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04154 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13313_EMPTY_FILTERCOMP ), pos.start );
         }
 
         byte b = Strings.byteAt( filterBytes, pos.start );
@@ -1095,7 +1095,7 @@ public final class FilterParser
             // No more node, get out
             if ( ( pos.start == 0 ) && ( pos.length != 0 ) )
             {
-                throw new ParseException( I18n.err( I18n.ERR_04155 ), 0 );
+                throw new ParseException( I18n.err( I18n.ERR_13314_FILTER_MISSING_OPEN_PAR ), 0 );
             }
             else
             {
@@ -1122,7 +1122,7 @@ public final class FilterParser
         // Check that we have a right ')'
         if ( !Strings.isCharASCII( filterBytes, pos.start, ')' ) )
         {
-            throw new ParseException( I18n.err( I18n.ERR_04157 ), pos.start );
+            throw new ParseException( I18n.err( I18n.ERR_13315_FILTER_MISSING_CLOSE_PAR ), pos.start );
         }
 
         pos.start++;
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/GreaterEqNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/GreaterEqNode.java
index dce9964..2019ee8 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/GreaterEqNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/GreaterEqNode.java
@@ -20,6 +20,7 @@
 package org.apache.directory.api.ldap.model.filter;
 
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapSchemaException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
@@ -48,7 +49,7 @@ public class GreaterEqNode<T> extends SimpleNode<T>
         // Check if the AttributeType has an Ordering MR
         if ( ( attributeType != null ) && ( attributeType.getOrdering() == null ) )
         {
-            throw new LdapSchemaException( "There is no ORDERING matchingRule for AttributeType " + attributeType.getName() );
+            throw new LdapSchemaException( I18n.err( I18n.ERR_13301_NO_ORDERING_MR_FOR_AT, attributeType.getName() ) );
         }
     }
 
@@ -67,7 +68,7 @@ public class GreaterEqNode<T> extends SimpleNode<T>
         // Check if the AttributeType has an Ordering MR
         if ( ( attributeType != null ) && ( attributeType.getOrdering() == null ) )
         {
-            throw new LdapSchemaException( "There is no ORDERING matchingRule for AttributeType " + attributeType.getName() );
+            throw new LdapSchemaException( I18n.err( I18n.ERR_13301_NO_ORDERING_MR_FOR_AT, attributeType.getName() ) );
         }
     }
 
@@ -86,7 +87,7 @@ public class GreaterEqNode<T> extends SimpleNode<T>
         // Check if the AttributeType has an Ordering MR
         if ( ( attributeType != null ) && ( attributeType.getOrdering() == null ) )
         {
-            throw new LdapSchemaException( "There is no ORDERING matchingRule for AttributeType " + attributeType.getName() );
+            throw new LdapSchemaException( I18n.err( I18n.ERR_13301_NO_ORDERING_MR_FOR_AT, attributeType.getName() ) );
         }
     }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LeafNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LeafNode.java
index 0d8aeb5..e126161 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LeafNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LeafNode.java
@@ -20,6 +20,7 @@
 package org.apache.directory.api.ldap.model.filter;
 
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.util.Strings;
 
@@ -55,7 +56,7 @@ public abstract class LeafNode extends AbstractExprNode
         }
         else
         {
-            throw new NullPointerException( "Cannot create a Node with a null Attribute" );
+            throw new NullPointerException( I18n.err( I18n.ERR_13302_CANNOT_CREATE_NODE_NULL_ATTR ) );
         }
     }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LessEqNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LessEqNode.java
index df5d63f..ebe1ede 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LessEqNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/LessEqNode.java
@@ -20,6 +20,7 @@
 package org.apache.directory.api.ldap.model.filter;
 
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Value;
 import org.apache.directory.api.ldap.model.exception.LdapSchemaException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
@@ -48,7 +49,7 @@ public class LessEqNode<T> extends SimpleNode<T>
         // Check if the AttributeType has an Ordering MR
         if ( ( attributeType != null ) && ( attributeType.getOrdering() == null ) )
         {
-            throw new LdapSchemaException( "There is no ORDERING matchingRule for AttributeType " + attributeType.getName() );
+            throw new LdapSchemaException( I18n.err( I18n.ERR_13301_NO_ORDERING_MR_FOR_AT, attributeType.getName() ) );
         }
     }
 
@@ -67,7 +68,7 @@ public class LessEqNode<T> extends SimpleNode<T>
         // Check if the AttributeType has an Ordering MR
         if ( ( attributeType != null ) && ( attributeType.getOrdering() == null ) )
         {
-            throw new LdapSchemaException( "There is no ORDERING matchingRule for AttributeType " + attributeType.getName() );
+            throw new LdapSchemaException( I18n.err( I18n.ERR_13301_NO_ORDERING_MR_FOR_AT, attributeType.getName() ) );
         }
     }
 
@@ -86,7 +87,7 @@ public class LessEqNode<T> extends SimpleNode<T>
         // Check if the AttributeType has an Ordering MR
         if ( ( attributeType != null ) && ( attributeType.getOrdering() == null ) )
         {
-            throw new LdapSchemaException( "There is no ORDERING matchingRule for AttributeType " + attributeType.getName() );
+            throw new LdapSchemaException( I18n.err( I18n.ERR_13301_NO_ORDERING_MR_FOR_AT, attributeType.getName() ) );
         }
     }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/NotNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/NotNode.java
index d0d8c09..bce77e7 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/NotNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/NotNode.java
@@ -90,7 +90,7 @@ public class NotNode extends BranchNode
         }
         else
         {
-            throw new IllegalStateException( I18n.err( I18n.ERR_04159 ) );
+            throw new IllegalStateException( I18n.err( I18n.ERR_13317_NO_MORE_THAN_ONE_ELEM_IN_NOT ) );
         }
     }
 
@@ -109,7 +109,7 @@ public class NotNode extends BranchNode
         }
         else
         {
-            throw new IllegalStateException( I18n.err( I18n.ERR_04159 ) );
+            throw new IllegalStateException( I18n.err( I18n.ERR_13317_NO_MORE_THAN_ONE_ELEM_IN_NOT ) );
         }
     }
 
@@ -124,7 +124,7 @@ public class NotNode extends BranchNode
     {
         if ( ( childList != null ) && ( childList.size() > 1 ) )
         {
-            throw new IllegalStateException( I18n.err( I18n.ERR_04159 ) );
+            throw new IllegalStateException( I18n.err( I18n.ERR_13317_NO_MORE_THAN_ONE_ELEM_IN_NOT ) );
         }
 
         children = childList;
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/SimpleNode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/SimpleNode.java
index cc59803..b7f7833 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/SimpleNode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/filter/SimpleNode.java
@@ -250,7 +250,7 @@ public abstract class SimpleNode<T> extends LeafNode
         {
             if ( !attributeType.getOid().equals( SchemaConstants.OBJECT_CLASS_AT_OID ) )
             {
-                throw new UnsupportedOperationException( I18n.err( I18n.ERR_04162, attribute ) );
+                throw new UnsupportedOperationException( I18n.err( I18n.ERR_13318_INVALID_ATTR_IN_REFINEMENT, attribute ) );
             }
         }
         else
@@ -259,7 +259,7 @@ public abstract class SimpleNode<T> extends LeafNode
                 || !( SchemaConstants.OBJECT_CLASS_AT.equalsIgnoreCase( attribute )
                 || SchemaConstants.OBJECT_CLASS_AT_OID.equalsIgnoreCase( attribute ) ) )
             {
-                throw new UnsupportedOperationException( I18n.err( I18n.ERR_04162, attribute ) );
+                throw new UnsupportedOperationException( I18n.err( I18n.ERR_13318_INVALID_ATTR_IN_REFINEMENT, attribute ) );
             }
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/ChangeType.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/ChangeType.java
index 5d420e9..401d31b 100755
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/ChangeType.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/ChangeType.java
@@ -121,7 +121,7 @@ public enum ChangeType
                 return Delete;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_12001_UNKNOWN_CHANGE_TYPE, val ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13438_UNKNOWN_CHANGE_TYPE, val ) );
         }
     }
 }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java
index 461e394..fd7927c 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReader.java
@@ -181,8 +181,8 @@ public class LdifAttributesReader extends LdifReader
         // We should *not* have a Dn twice
         if ( "dn".equals( attributeType ) )
         {
-            LOG.error( I18n.err( I18n.ERR_12002_ENTRY_WITH_TWO_DNS ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12003_LDIF_ENTRY_WITH_TWO_DNS ) );
+            LOG.error( I18n.err( I18n.ERR_13400_ENTRY_WITH_TWO_DNS ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13439_LDIF_ENTRY_WITH_TWO_DNS ) );
         }
 
         Object attributeValue = parseValue( attributeType, line, colonIndex );
@@ -221,8 +221,8 @@ public class LdifAttributesReader extends LdifReader
         // We should *not* have a Dn twice
         if ( "dn".equals( attributeName ) )
         {
-            LOG.error( I18n.err( I18n.ERR_12002_ENTRY_WITH_TWO_DNS ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12003_LDIF_ENTRY_WITH_TWO_DNS ) );
+            LOG.error( I18n.err( I18n.ERR_13400_ENTRY_WITH_TWO_DNS ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13439_LDIF_ENTRY_WITH_TWO_DNS ) );
         }
 
         if ( schemaManager != null )
@@ -231,8 +231,9 @@ public class LdifAttributesReader extends LdifReader
 
             if ( attributeType == null )
             {
-                LOG.error( "" );
-                throw new LdapLdifException( "" );
+                String msg = I18n.err( I18n.ERR_13475_UNKNOWN_ATTRIBUTETYPE,  attributeName );
+                LOG.error( msg );
+                throw new LdapLdifException( msg );
             }
         }
 
@@ -278,7 +279,7 @@ public class LdifAttributesReader extends LdifReader
                 }
                 catch ( LdapException le )
                 {
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12057_BAD_ATTRIBUTE ), le );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13460_BAD_ATTRIBUTE ), le );
                 }
             }
         }
@@ -321,7 +322,8 @@ public class LdifAttributesReader extends LdifReader
     {
         if ( ( lines == null ) || lines.isEmpty() )
         {
-            LOG.debug( "The entry is empty : end of ldif file" );
+            LOG.debug( I18n.msg( I18n.MSG_13408_END_OF_LDIF ) );
+            
             return null;
         }
 
@@ -340,13 +342,13 @@ public class LdifAttributesReader extends LdifReader
             // 3) The first line after the Dn is anything else
             if ( lowerLine.startsWith( "control:" ) )
             {
-                LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
             }
             else if ( lowerLine.startsWith( "changetype:" ) )
             {
-                LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
             }
             else if ( line.indexOf( ':' ) > 0 )
             {
@@ -355,12 +357,12 @@ public class LdifAttributesReader extends LdifReader
             else
             {
                 // Invalid attribute Value
-                LOG.error( I18n.err( I18n.ERR_12006_EXPECTING_ATTRIBUTE_TYPE ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12007_BAD_ATTRIBUTE ) );
+                LOG.error( I18n.err( I18n.ERR_13402_EXPECTING_ATTRIBUTE_TYPE ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13441_BAD_ATTRIBUTE ) );
             }
         }
 
-        LOG.debug( "Read an attributes : {}", entry );
+        LOG.debug( I18n.msg( I18n.MSG_13405_READ_ATTR, entry ) );
 
         return entry;
     }
@@ -385,7 +387,8 @@ public class LdifAttributesReader extends LdifReader
     {
         if ( ( lines == null ) || lines.isEmpty() )
         {
-            LOG.debug( "The entry is empty : end of ldif file" );
+            LOG.debug( I18n.msg( I18n.MSG_13408_END_OF_LDIF ) );
+
             return null;
         }
 
@@ -404,13 +407,13 @@ public class LdifAttributesReader extends LdifReader
             // 3) The first line after the Dn is anything else
             if ( lowerLine.startsWith( "control:" ) )
             {
-                LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
             }
             else if ( lowerLine.startsWith( "changetype:" ) )
             {
-                LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
             }
             else if ( line.indexOf( ':' ) > 0 )
             {
@@ -419,12 +422,12 @@ public class LdifAttributesReader extends LdifReader
             else
             {
                 // Invalid attribute Value
-                LOG.error( I18n.err( I18n.ERR_12006_EXPECTING_ATTRIBUTE_TYPE ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12007_BAD_ATTRIBUTE ) );
+                LOG.error( I18n.err( I18n.ERR_13402_EXPECTING_ATTRIBUTE_TYPE ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13441_BAD_ATTRIBUTE ) );
             }
         }
 
-        LOG.debug( "Read an attributes : {}", attributes );
+        LOG.debug( I18n.msg( I18n.MSG_13405_READ_ATTR, attributes ) );
 
         return attributes;
     }
@@ -442,7 +445,7 @@ public class LdifAttributesReader extends LdifReader
         lines = new ArrayList<String>();
         position = 0;
 
-        LOG.debug( "Starts parsing ldif buffer" );
+        LOG.debug( I18n.msg( I18n.MSG_13407_STARTS_PARSING_LDIF ) );
 
         if ( Strings.isEmpty( ldif ) )
         {
@@ -462,11 +465,11 @@ public class LdifAttributesReader extends LdifReader
             {
                 if ( attributes == null )
                 {
-                    LOG.debug( "Parsed no entry." );
+                    LOG.debug( I18n.msg( I18n.MSG_13401_PARSED_NO_ENTRY ) );
                 }
                 else
                 {
-                    LOG.debug( "Parsed one entry." );
+                    LOG.debug( I18n.msg( I18n.MSG_13402_PARSED_ONE_ENTRY ) );
                 }
             }
 
@@ -474,8 +477,8 @@ public class LdifAttributesReader extends LdifReader
         }
         catch ( LdapLdifException ne )
         {
-            LOG.error( I18n.err( I18n.ERR_12008_CANNOT_PARSE_LDIF_BUFFER, ne.getLocalizedMessage() ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12009_ERROR_PARSING_LDIF_BUFFER ), ne );
+            LOG.error( I18n.err( I18n.ERR_13403_CANNOT_PARSE_LDIF_BUFFER, ne.getLocalizedMessage() ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER ), ne );
         }
         finally
         {
@@ -485,7 +488,7 @@ public class LdifAttributesReader extends LdifReader
             }
             catch ( IOException ioe )
             {
-                throw new LdapLdifException( I18n.err( I18n.ERR_12024_CANNOT_CLOSE_FILE ), ioe );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13450_CANNOT_CLOSE_FILE ), ioe );
             }
         }
     }
@@ -503,7 +506,7 @@ public class LdifAttributesReader extends LdifReader
         lines = new ArrayList<String>();
         position = 0;
 
-        LOG.debug( "Starts parsing ldif buffer" );
+        LOG.debug( I18n.msg( I18n.MSG_13407_STARTS_PARSING_LDIF ) );
 
         if ( Strings.isEmpty( ldif ) )
         {
@@ -523,21 +526,20 @@ public class LdifAttributesReader extends LdifReader
             {
                 if ( entry == null )
                 {
-                    LOG.debug( "Parsed no entry." );
+                    LOG.debug( I18n.msg( I18n.MSG_13401_PARSED_NO_ENTRY ) );
                 }
                 else
                 {
-                    LOG.debug( "Parsed one entry." );
+                    LOG.debug( I18n.msg( I18n.MSG_13402_PARSED_ONE_ENTRY ) );
                 }
-
             }
 
             return entry;
         }
         catch ( LdapLdifException ne )
         {
-            LOG.error( I18n.err( I18n.ERR_12008_CANNOT_PARSE_LDIF_BUFFER, ne.getLocalizedMessage() ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12009_ERROR_PARSING_LDIF_BUFFER ), ne );
+            LOG.error( I18n.err( I18n.ERR_13403_CANNOT_PARSE_LDIF_BUFFER, ne.getLocalizedMessage() ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER ), ne );
         }
         finally
         {
@@ -547,7 +549,7 @@ public class LdifAttributesReader extends LdifReader
             }
             catch ( IOException ioe )
             {
-                throw new LdapLdifException( I18n.err( I18n.ERR_12024_CANNOT_CLOSE_FILE ), ioe );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13450_CANNOT_CLOSE_FILE ), ioe );
             }
         }
     }
@@ -566,7 +568,7 @@ public class LdifAttributesReader extends LdifReader
         lines = new ArrayList<String>();
         position = 0;
 
-        LOG.debug( "Starts parsing ldif buffer" );
+        LOG.debug( I18n.msg( I18n.MSG_13407_STARTS_PARSING_LDIF ) );
 
         if ( Strings.isEmpty( ldif ) )
         {
@@ -586,11 +588,11 @@ public class LdifAttributesReader extends LdifReader
             {
                 if ( entry == null )
                 {
-                    LOG.debug( "Parsed no entry." );
+                    LOG.debug( I18n.msg( I18n.MSG_13401_PARSED_NO_ENTRY ) );
                 }
                 else
                 {
-                    LOG.debug( "Parsed one entry." );
+                    LOG.debug( I18n.msg( I18n.MSG_13402_PARSED_ONE_ENTRY ) );
                 }
 
             }
@@ -599,8 +601,8 @@ public class LdifAttributesReader extends LdifReader
         }
         catch ( LdapLdifException ne )
         {
-            LOG.error( I18n.err( I18n.ERR_12008_CANNOT_PARSE_LDIF_BUFFER, ne.getLocalizedMessage() ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12009_ERROR_PARSING_LDIF_BUFFER ), ne );
+            LOG.error( I18n.err( I18n.ERR_13403_CANNOT_PARSE_LDIF_BUFFER, ne.getLocalizedMessage() ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER ), ne );
         }
         finally
         {
@@ -610,7 +612,7 @@ public class LdifAttributesReader extends LdifReader
             }
             catch ( IOException ioe )
             {
-                throw new LdapLdifException( I18n.err( I18n.ERR_12024_CANNOT_CLOSE_FILE ), ioe );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13450_CANNOT_CLOSE_FILE ), ioe );
             }
         }
     }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java
index dce19d8..f133077 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifEntry.java
@@ -294,7 +294,7 @@ public class LdifEntry implements Cloneable, Externalizable, Iterable<Attribute>
                     break;
 
                 default:
-                    throw new IllegalArgumentException( "Unexpected ChangeType: " + changeType );
+                    throw new IllegalArgumentException( I18n.err( I18n.ERR_13431_UNEXPECTED_CHANGETYPE, changeType ) );
             }
         }
     }
@@ -865,7 +865,7 @@ public class LdifEntry implements Cloneable, Externalizable, Iterable<Attribute>
     {
         if ( controls == null )
         {
-            throw new IllegalArgumentException( "The added control must not be null" );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13432_NULL_ADDED_CONTROL ) );
         }
 
         for ( Control control : controls )
@@ -1375,7 +1375,7 @@ public class LdifEntry implements Cloneable, Externalizable, Iterable<Attribute>
                 break;
 
             default:
-                throw new IllegalArgumentException( "Unexpected ChangeType: " + changeType );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13431_UNEXPECTED_CHANGETYPE, changeType ) );
         }
 
         int nbControls = in.readInt();
@@ -1466,7 +1466,7 @@ public class LdifEntry implements Cloneable, Externalizable, Iterable<Attribute>
                 break;
 
             default:
-                throw new IllegalArgumentException( "Unexpected ChangeType: " + changeType );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13431_UNEXPECTED_CHANGETYPE, changeType ) );
         }
 
         // The controls
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java
index 8370257..828c840 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifReader.java
@@ -336,14 +336,14 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
     {
         if ( !file.exists() )
         {
-            String msg = I18n.err( I18n.ERR_12010_CANNOT_FIND_FILE, file.getAbsoluteFile() );
+            String msg = I18n.err( I18n.ERR_13443_CANNOT_FIND_FILE, file.getAbsoluteFile() );
             LOG.error( msg );
             throw new LdapLdifException( msg );
         }
 
         if ( !file.canRead() )
         {
-            String msg = I18n.err( I18n.ERR_12011_CANNOT_READ_FILE, file.getName() );
+            String msg = I18n.err( I18n.ERR_13444_CANNOT_READ_FILE, file.getName() );
             LOG.error( msg );
             throw new LdapLdifException( msg );
         }
@@ -358,7 +358,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         }
         catch ( FileNotFoundException fnfe )
         {
-            String msg = I18n.err( I18n.ERR_12010_CANNOT_FIND_FILE, file.getAbsoluteFile() );
+            String msg = I18n.err( I18n.ERR_13443_CANNOT_FIND_FILE, file.getAbsoluteFile() );
             LOG.error( msg );
             throw new LdapLdifException( msg, fnfe );
         }
@@ -555,8 +555,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
                 else
                 {
                     // The Dn is empty : error
-                    LOG.error( I18n.err( I18n.ERR_12012_EMPTY_DN_NOT_ALLOWED, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12013_NO_DN ) );
+                    LOG.error( I18n.err( I18n.ERR_13404_EMPTY_DN_NOT_ALLOWED, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13445_NO_DN ) );
                 }
             }
             else
@@ -566,14 +566,14 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         }
         else
         {
-            LOG.error( I18n.err( I18n.ERR_12016_DN_EXPECTED, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12013_NO_DN ) );
+            LOG.error( I18n.err( I18n.ERR_13405_DN_EXPECTED, lineNumber ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13445_NO_DN ) );
         }
 
         // Check that the Dn is valid. If not, an exception will be thrown
         if ( validateDn && !Dn.isValid( dn ) )
         {
-            String message = I18n.err( I18n.ERR_12017_INVALID_DN, dn, lineNumber );
+            String message = I18n.err( I18n.ERR_13446_INVALID_DN, dn, lineNumber );
             LOG.error( message );
             throw new LdapLdifException( message );
         }
@@ -681,8 +681,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
                         if ( !file.exists() )
                         {
-                            LOG.error( I18n.err( I18n.ERR_12018_FILE_NOT_FOUND, fileName, lineNumber ) );
-                            throw new LdapLdifException( I18n.err( I18n.ERR_12019_BAD_URL_FILE_NOT_FOUND ) );
+                            LOG.error( I18n.err( I18n.ERR_13406_FILE_NOT_FOUND, fileName, lineNumber ) );
+                            throw new LdapLdifException( I18n.err( I18n.ERR_13447_BAD_URL_FILE_NOT_FOUND ) );
                         }
                         else
                         {
@@ -690,7 +690,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
                             if ( length > sizeLimit )
                             {
-                                String message = I18n.err( I18n.ERR_12020_FILE_TOO_BIG, fileName, lineNumber );
+                                String message = I18n.err( I18n.ERR_13448_FILE_TOO_BIG, fileName, lineNumber );
                                 LOG.error( message );
                                 throw new LdapLdifException( message );
                             }
@@ -710,27 +710,27 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
                                     // We can't reach this point, the file
                                     // existence has already been
                                     // checked
-                                    LOG.error( I18n.err( I18n.ERR_12018_FILE_NOT_FOUND, fileName, lineNumber ) );
-                                    throw new LdapLdifException( I18n.err( I18n.ERR_12019_BAD_URL_FILE_NOT_FOUND ),
+                                    LOG.error( I18n.err( I18n.ERR_13406_FILE_NOT_FOUND, fileName, lineNumber ) );
+                                    throw new LdapLdifException( I18n.err( I18n.ERR_13447_BAD_URL_FILE_NOT_FOUND ),
                                         fnfe );
                                 }
                                 catch ( IOException ioe )
                                 {
-                                    LOG.error( I18n.err( I18n.ERR_12022_ERROR_READING_FILE, fileName, lineNumber ) );
-                                    throw new LdapLdifException( I18n.err( I18n.ERR_12023_ERROR_READING_BAD_URL ), ioe );
+                                    LOG.error( I18n.err( I18n.ERR_13407_ERROR_READING_FILE, fileName, lineNumber ) );
+                                    throw new LdapLdifException( I18n.err( I18n.ERR_13449_ERROR_READING_BAD_URL ), ioe );
                                 }
                             }
                         }
                     }
                     else
                     {
-                        LOG.error( I18n.err( I18n.ERR_12025_BAD_PROTOCOL ) );
-                        throw new LdapLdifException( I18n.err( I18n.ERR_12026_UNSUPPORTED_PROTOCOL, lineNumber ) );
+                        LOG.error( I18n.err( I18n.ERR_13408_BAD_PROTOCOL ) );
+                        throw new LdapLdifException( I18n.err( I18n.ERR_13451_UNSUPPORTED_PROTOCOL, lineNumber ) );
                     }
                 }
                 catch ( MalformedURLException mue )
                 {
-                    String message = I18n.err( I18n.ERR_12027_BAD_URL, urlName, lineNumber );
+                    String message = I18n.err( I18n.ERR_13452_BAD_URL, urlName, lineNumber );
                     LOG.error( message );
                     throw new LdapLdifException( message, mue );
                 }
@@ -812,8 +812,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         if ( pos > length )
         {
             // No OID : error !
-            LOG.error( I18n.err( I18n.ERR_12029_CONTROL_WITHOUT_OID, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12029_CONTROL_WITHOUT_OID ) );
+            String msg = I18n.err( I18n.ERR_13409_CONTROL_WITHOUT_OID, lineNumber );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
 
         int initPos = pos;
@@ -826,8 +827,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         if ( pos == initPos )
         {
             // Not a valid OID !
-            LOG.error( I18n.err( I18n.ERR_12029_CONTROL_WITHOUT_OID, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12029_CONTROL_WITHOUT_OID ) );
+            String msg = I18n.err( I18n.ERR_13409_CONTROL_WITHOUT_OID, lineNumber );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
 
         // Create and check the OID
@@ -835,7 +837,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
         if ( !Oid.isOid( oidString ) )
         {
-            String message = I18n.err( I18n.ERR_12031_INVALID_OID, oidString, lineNumber );
+            String message = I18n.err( I18n.ERR_13453_INVALID_OID, oidString, lineNumber );
             LOG.error( message );
             throw new LdapLdifException( message );
         }
@@ -875,8 +877,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         {
             // If we have a criticality, it should be either "true" or "false",
             // nothing else
-            LOG.error( I18n.err( I18n.ERR_12033_INVALID_CRITICALITY, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12033_INVALID_CRITICALITY ) );
+            String msg = I18n.err( I18n.ERR_13410_INVALID_CRITICALITY, lineNumber );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
 
         if ( criticalPos > 0 )
@@ -901,7 +904,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             else if ( Chars.isCharASCII( controlValue, criticalPos + 1, '<' ) )
             {
                 // File contained value
-                throw new NotImplementedException( "See DIRSERVER-1547" );
+                throw new NotImplementedException( I18n.err( I18n.ERR_13433_SEE_DIRSERVER_1547 ) );
             }
             else
             {
@@ -978,8 +981,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         // We should *not* have a Dn twice
         if ( "dn".equals( attributeType ) )
         {
-            LOG.error( I18n.err( I18n.ERR_12002_ENTRY_WITH_TWO_DNS, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12003_LDIF_ENTRY_WITH_TWO_DNS ) );
+            LOG.error( I18n.err( I18n.ERR_13400_ENTRY_WITH_TWO_DNS, lineNumber ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13439_LDIF_ENTRY_WITH_TWO_DNS ) );
         }
 
         Object attributeValue = parseValue( attributeType, line, colonIndex );
@@ -1063,14 +1066,16 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             }
             else
             {
-                LOG.error( I18n.err( I18n.ERR_12035_BAD_MODRDN_OPERATION, lineNumber ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12035_BAD_MODRDN_OPERATION ) );
+                String msg = I18n.err( I18n.ERR_13411_BAD_MODRDN_OPERATION, lineNumber );
+                LOG.error( msg );
+                throw new LdapLdifException( msg );
             }
         }
         else
         {
-            LOG.error( I18n.err( I18n.ERR_12035_BAD_MODRDN_OPERATION, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12035_BAD_MODRDN_OPERATION ) );
+            String msg = I18n.err( I18n.ERR_13411_BAD_MODRDN_OPERATION, lineNumber );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
 
         if ( iter.hasNext() )
@@ -1086,14 +1091,16 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             }
             else
             {
-                LOG.error( I18n.err( I18n.ERR_12038_NO_DELETEOLDRDN, lineNumber ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12038_NO_DELETEOLDRDN ) );
+                String msg = I18n.err( I18n.ERR_13412_NO_DELETEOLDRDN, lineNumber );
+                LOG.error( msg );
+                throw new LdapLdifException( msg );
             }
         }
         else
         {
-            LOG.error( I18n.err( I18n.ERR_12038_NO_DELETEOLDRDN, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12038_NO_DELETEOLDRDN ) );
+            String msg = I18n.err( I18n.ERR_13412_NO_DELETEOLDRDN, lineNumber );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
     }
 
@@ -1135,8 +1142,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( ( state != ATTRVAL_SPEC_OR_SEP ) && ( state != ATTRVAL_SPEC ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12040_BAD_MODIFY_SEPARATOR, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12040_BAD_MODIFY_SEPARATOR ) );
+                    String msg = I18n.err( I18n.ERR_13413_BAD_MODIFY_SEPARATOR, lineNumber );
+                    LOG.error( msg );
+                    throw new LdapLdifException( msg );
                 }
                 else
                 {
@@ -1166,8 +1174,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( ( state != MOD_SPEC ) && ( state != ATTRVAL_SPEC ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2 ) );
+                    String msg = I18n.err( I18n.ERR_13414_BAD_MODIFY_SEPARATOR_2, lineNumber );
+                    LOG.error( msg );
+                    throw new LdapLdifException( msg );
                 }
 
                 modified = Strings.trim( line.substring( "add:".length() ) );
@@ -1180,8 +1189,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( ( state != MOD_SPEC ) && ( state != ATTRVAL_SPEC ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2 ) );
+                    String msg = I18n.err( I18n.ERR_13414_BAD_MODIFY_SEPARATOR_2, lineNumber );
+                    LOG.error( msg );
+                    throw new LdapLdifException( msg );
                 }
 
                 modified = Strings.trim( line.substring( "delete:".length() ) );
@@ -1195,8 +1205,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( ( state != MOD_SPEC ) && ( state != ATTRVAL_SPEC ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2 ) );
+                    String msg = I18n.err( I18n.ERR_13414_BAD_MODIFY_SEPARATOR_2, lineNumber );
+                    LOG.error( msg );
+                    throw new LdapLdifException( msg );
                 }
 
                 modified = Strings.trim( line.substring( "replace:".length() ) );
@@ -1218,8 +1229,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( ( state != ATTRVAL_SPEC ) && ( state != ATTRVAL_SPEC_OR_SEP ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12040_BAD_MODIFY_SEPARATOR, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12040_BAD_MODIFY_SEPARATOR ) );
+                    String msg = I18n.err( I18n.ERR_13413_BAD_MODIFY_SEPARATOR, lineNumber );
+                    LOG.error( msg );
+                    throw new LdapLdifException( msg );
                 }
 
                 // A standard AttributeType/AttributeValue pair
@@ -1229,15 +1241,15 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
                 if ( !attributeType.equalsIgnoreCase( modified ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12044, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12045 ) );
+                    LOG.error( I18n.err( I18n.ERR_13415_MOD_ATTR_AND_VALUE_SPEC_NOT_EQUAL, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13454_BAD_MODIFY_ATTRIBUTE ) );
                 }
 
                 // We should *not* have a Dn twice
                 if ( "dn".equalsIgnoreCase( attributeType ) )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12002_ENTRY_WITH_TWO_DNS, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12003_LDIF_ENTRY_WITH_TWO_DNS ) );
+                    LOG.error( I18n.err( I18n.ERR_13400_ENTRY_WITH_TWO_DNS, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13439_LDIF_ENTRY_WITH_TWO_DNS ) );
                 }
 
                 Object attributeValue = parseValue( attributeType, line, colonIndex );
@@ -1266,8 +1278,9 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
         if ( state != MOD_SPEC )
         {
-            LOG.error( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12042_BAD_MODIFY_SEPARATOR_2, lineNumber ) );
+            String msg = I18n.err( I18n.ERR_13414_BAD_MODIFY_SEPARATOR_2, lineNumber );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
     }
 
@@ -1363,8 +1376,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
                     {
                         if ( operation == ChangeType.ModDn )
                         {
-                            LOG.error( I18n.err( I18n.ERR_12046, lineNumber ) );
-                            throw new LdapLdifException( I18n.err( I18n.ERR_12047 ) );
+                            LOG.error( I18n.err( I18n.ERR_13416_NEW_SUPERIOR_NEEDED, lineNumber ) );
+                            throw new LdapLdifException( I18n.err( I18n.ERR_13455_BAD_MODDN_NO_SUPERIOR ) );
                         }
                     }
                 }
@@ -1373,8 +1386,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
             default:
                 // This is an error
-                LOG.error( I18n.err( I18n.ERR_12048, lineNumber ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12049 ) );
+                LOG.error( I18n.err( I18n.ERR_13417_UNKNOWN_OPERATION, lineNumber ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13456_BAD_OPERATION ) );
         }
     }
 
@@ -1397,7 +1410,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
     {
         if ( ( lines == null ) || lines.isEmpty() )
         {
-            LOG.debug( "The entry is empty : end of ldif file" );
+            LOG.debug( I18n.msg( I18n.MSG_13408_END_OF_LDIF ) );
+
             return null;
         }
 
@@ -1484,16 +1498,16 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( containsEntries )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                    LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
                 }
 
                 containsChanges = true;
 
                 if ( controlSeen )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12050, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12051 ) );
+                    LOG.error( I18n.err( I18n.ERR_13418_CONTROL_ALREADY_FOUND, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13457_MISPLACED_CONTROL ) );
                 }
 
                 // Parse the control
@@ -1504,16 +1518,16 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( containsEntries )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                    LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
                 }
 
                 containsChanges = true;
 
                 if ( changeTypeSeen )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12052, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12053 ) );
+                    LOG.error( I18n.err( I18n.ERR_13419_CHANGETYPE_ALREADY_FOUND, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13458_MISPLACED_CHANGETYPE ) );
                 }
 
                 // A change request
@@ -1530,16 +1544,16 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             {
                 if ( containsChanges )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12004_CHANGE_NOT_ALLOWED, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12005_NO_CHANGE ) );
+                    LOG.error( I18n.err( I18n.ERR_13401_CHANGE_NOT_ALLOWED, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13440_NO_CHANGE ) );
                 }
 
                 containsEntries = true;
 
                 if ( controlSeen || changeTypeSeen )
                 {
-                    LOG.error( I18n.err( I18n.ERR_12054, lineNumber ) );
-                    throw new LdapLdifException( I18n.err( I18n.ERR_12055 ) );
+                    LOG.error( I18n.err( I18n.ERR_13420_AT_VALUE_NOT_ALLOWED_AFTER_CONTROL, lineNumber ) );
+                    throw new LdapLdifException( I18n.err( I18n.ERR_13459_MISPLACED_ATTRIBUTETYPE ) );
                 }
 
                 parseAttributeValue( entry, line, lowerLine );
@@ -1548,24 +1562,24 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             else
             {
                 // Invalid attribute Value
-                LOG.error( I18n.err( I18n.ERR_12056, lineNumber ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12057_BAD_ATTRIBUTE ) );
+                LOG.error( I18n.err( I18n.ERR_13421_ATTRIBUTE_TYPE_EXPECTED, lineNumber ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13460_BAD_ATTRIBUTE ) );
             }
         }
 
         if ( type == LDIF_ENTRY )
         {
-            LOG.debug( "Read an entry : {}", entry );
+            LOG.debug( I18n.msg( I18n.MSG_13406_READ_ENTRY, entry ) );
         }
         else if ( type == CHANGE )
         {
             entry.setChangeType( operation );
-            LOG.debug( "Read a modification : {}", entry );
+            LOG.debug( I18n.msg( I18n.MSG_13404_READ_MODIF, entry ) );
         }
         else
         {
-            LOG.error( I18n.err( I18n.ERR_12058_UNKNOWN_ENTRY_TYPE, lineNumber ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12059_UNKNOWN_ENTRY ) );
+            LOG.error( I18n.err( I18n.ERR_13422_UNKNOWN_ENTRY_TYPE, lineNumber ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13461_UNKNOWN_ENTRY ) );
         }
 
         return entry;
@@ -1587,7 +1601,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
         if ( lines.isEmpty() )
         {
-            LOG.warn( "The ldif file is empty" );
+            LOG.warn( I18n.msg( I18n.MSG_13414_LDIF_FILE_EMPTY ) );
             return ver;
         }
 
@@ -1609,8 +1623,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             // We should not have any other chars after the number
             if ( position != document.length )
             {
-                LOG.error( I18n.err( I18n.ERR_12060_VERSION_NOT_A_NUMBER, lineNumber ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12061_LDIF_PARSING_ERROR ) );
+                LOG.error( I18n.err( I18n.ERR_13423_VERSION_NOT_A_NUMBER, lineNumber ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13462_LDIF_PARSING_ERROR ) );
             }
 
             try
@@ -1619,11 +1633,11 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             }
             catch ( NumberFormatException nfe )
             {
-                LOG.error( I18n.err( I18n.ERR_12060_VERSION_NOT_A_NUMBER, lineNumber ) );
-                throw new LdapLdifException( I18n.err( I18n.ERR_12061_LDIF_PARSING_ERROR ), nfe );
+                LOG.error( I18n.err( I18n.ERR_13423_VERSION_NOT_A_NUMBER, lineNumber ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13462_LDIF_PARSING_ERROR ), nfe );
             }
 
-            LOG.debug( "Ldif version : {}", versionNumber );
+            LOG.debug( I18n.msg( I18n.MSG_13400_LDIF_VERSION, versionNumber ) );
 
             // We have found the version, just discard the line from the list
             lines.remove( 0 );
@@ -1641,7 +1655,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         }
         else
         {
-            LOG.info( "No version information : assuming version: 1" );
+            LOG.info( I18n.msg( I18n.MSG_13413_NO_VERSION_ASSUMING_1 ) );
         }
 
         return ver;
@@ -1717,8 +1731,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
                         }
                         else if ( sb.length() == 0 )
                         {
-                            LOG.error( I18n.err( I18n.ERR_12062_EMPTY_CONTINUATION_LINE, lineNumber ) );
-                            throw new LdapLdifException( I18n.err( I18n.ERR_12061_LDIF_PARSING_ERROR ) );
+                            LOG.error( I18n.err( I18n.ERR_13424_EMPTY_CONTINUATION_LINE, lineNumber ) );
+                            throw new LdapLdifException( I18n.err( I18n.ERR_13462_LDIF_PARSING_ERROR ) );
                         }
                         else
                         {
@@ -1751,7 +1765,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         }
         catch ( IOException ioe )
         {
-            throw new LdapLdifException( I18n.err( I18n.ERR_12063_ERROR_WHILE_READING_LDIF_LINE ), ioe );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13463_ERROR_WHILE_READING_LDIF_LINE ), ioe );
         }
 
         // Stores the current line if necessary.
@@ -1787,16 +1801,17 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
     {
         if ( Strings.isEmpty( fileName ) )
         {
-            LOG.error( I18n.err( I18n.ERR_12064_EMPTY_FILE_NAME ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12064_EMPTY_FILE_NAME ) );
+            String msg = I18n.err( I18n.ERR_13425_EMPTY_FILE_NAME );
+            LOG.error( msg );
+            throw new LdapLdifException( msg );
         }
 
         File file = new File( fileName );
 
         if ( !file.exists() )
         {
-            LOG.error( I18n.err( I18n.ERR_12066, fileName ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12067, fileName ) );
+            LOG.error( I18n.err( I18n.ERR_13426_CANNOT_PARSE_INEXISTANT_FILE, fileName ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13464_FILENAME_NOT_FOUND, fileName ) );
         }
 
         // Open the file and then get a channel from the stream
@@ -1808,8 +1823,8 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         }
         catch ( FileNotFoundException fnfe )
         {
-            LOG.error( I18n.err( I18n.ERR_12068, fileName ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12067, fileName ), fnfe );
+            LOG.error( I18n.err( I18n.ERR_13427_CANNOT_FIND_FILE, fileName ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13464_FILENAME_NOT_FOUND, fileName ), fnfe );
         }
         catch ( LdapException le )
         {
@@ -1831,7 +1846,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
      */
     public List<LdifEntry> parseLdif( String ldif ) throws LdapLdifException
     {
-        LOG.debug( "Starts parsing ldif buffer" );
+        LOG.debug( I18n.msg( I18n.MSG_13407_STARTS_PARSING_LDIF ) );
 
         if ( Strings.isEmpty( ldif ) )
         {
@@ -1844,15 +1859,15 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
 
             if ( LOG.isDebugEnabled() )
             {
-                LOG.debug( "Parsed {} entries.", Integer.valueOf( entries.size() ) );
+                LOG.debug( I18n.msg( I18n.MSG_13403_PARSED_N_ENTRIES, Integer.valueOf( entries.size() ) ) );
             }
 
             return entries;
         }
         catch ( LdapLdifException ne )
         {
-            LOG.error( I18n.err( I18n.ERR_12069, ne.getLocalizedMessage() ) );
-            throw new LdapLdifException( I18n.err( I18n.ERR_12070 ), ne );
+            LOG.error( I18n.err( I18n.ERR_13428_CANNOT_PARSE_LDIF, ne.getLocalizedMessage() ) );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER ), ne );
         }
         catch ( LdapException le )
         {
@@ -1860,7 +1875,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
         }
         catch ( IOException ioe )
         {
-            throw new LdapLdifException( I18n.err( I18n.ERR_12024_CANNOT_CLOSE_FILE ), ioe );
+            throw new LdapLdifException( I18n.err( I18n.ERR_13450_CANNOT_CLOSE_FILE ), ioe );
         }
     }
 
@@ -1877,7 +1892,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
     {
         try
         {
-            LOG.debug( "next(): -- called" );
+            LOG.debug( I18n.msg( I18n.MSG_13411_NEXT_CALLED ) );
 
             LdifEntry entry = prefetched;
             readLines();
@@ -1896,13 +1911,13 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
                 throw new NoSuchElementException( le.getMessage() );
             }
 
-            LOG.debug( "next(): -- returning ldif {}\n", entry );
+            LOG.debug( I18n.msg( I18n.MSG_13412_NEXT_RETURNING_LDIF, entry ) );
 
             return entry;
         }
         catch ( LdapLdifException ne )
         {
-            LOG.error( I18n.err( I18n.ERR_12071 ) );
+            LOG.error( I18n.err( I18n.ERR_13430_PREMATURE_LDIF_ITERATOR_TERMINATION ) );
             error = ne;
             return null;
         }
@@ -1951,11 +1966,11 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
     {
         if ( prefetched != null )
         {
-            LOG.debug( "hasNext(): -- returning true" );
+            LOG.debug( I18n.msg( I18n.MSG_13410_HAS_NEXT_TRUE ) );
         }
         else
         {
-            LOG.debug( "hasNext(): -- returning false" );
+            LOG.debug( I18n.msg( I18n.MSG_13409_HAS_NEXT_FALSE ) );
         }
 
         return hasNextInternal();
@@ -2069,7 +2084,7 @@ public class LdifReader implements Iterable<LdifEntry>, Closeable
             }
             else
             {
-                throw new LdapLdifException( I18n.err( I18n.ERR_12072, error.getLocalizedMessage() ) );
+                throw new LdapLdifException( I18n.err( I18n.ERR_13429_ERROR_PARSING_LDIF, error.getLocalizedMessage() ) );
             }
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifRevertor.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifRevertor.java
index e999623..3b0b3a1 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifRevertor.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifRevertor.java
@@ -238,7 +238,7 @@ public final class LdifRevertor
         // Special case if we don't have any reverse modifications
         if ( reverseModifications.isEmpty() )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12073, forwardModifications ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13465_CANT_DEDUCE_REVERSE_FOR_MOD, forwardModifications ) );
         }
 
         // Now, push the reversed list into the entry
@@ -271,17 +271,17 @@ public final class LdifRevertor
 
         if ( newSuperiorDn == null )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12074 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13466_NEW_SUPERIOR_DN_NULL ) );
         }
 
         if ( modifiedDn == null )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12075 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13467_NULL_MODIFIED_DN ) );
         }
 
         if ( modifiedDn.size() == 0 )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12076 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13468_DONT_MOVE_ROOTDSE ) );
         }
 
         currentParent = modifiedDn;
@@ -449,17 +449,17 @@ public final class LdifRevertor
 
         if ( newRdn == null )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12077 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13469_NULL_READ_DN ) );
         }
 
         if ( parentDn == null )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12078 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13467_NULL_MODIFIED_DN ) );
         }
 
         if ( parentDn.size() == 0 )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12079 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13470_DONT_RENAME_ROOTDSE ) );
         }
 
         parentDn = entry.getDn();
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java
index 608c72e..b85591c 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/LdifUtils.java
@@ -425,7 +425,7 @@ public final class LdifUtils
             case Add:
                 if ( entry.getEntry() == null )
                 {
-                    throw new LdapException( I18n.err( I18n.ERR_12082 ) );
+                    throw new LdapException( I18n.err( I18n.ERR_13472_ENTRY_WITH_NO_ATTRIBUTE ) );
                 }
 
                 // Now, iterate through all the attributes
@@ -439,7 +439,7 @@ public final class LdifUtils
             case Delete:
                 if ( entry.getEntry() != null )
                 {
-                    throw new LdapException( I18n.err( I18n.ERR_12081 ) );
+                    throw new LdapException( I18n.err( I18n.ERR_13471_DELETED_ENTRY_WITH_ATTRIBUTES ) );
                 }
 
                 break;
@@ -448,7 +448,7 @@ public final class LdifUtils
             case ModRdn:
                 if ( entry.getEntry() != null )
                 {
-                    throw new LdapException( I18n.err( I18n.ERR_12083 ) );
+                    throw new LdapException( I18n.err( I18n.ERR_13473_MODDN_WITH_ATTRIBUTES ) );
                 }
 
                 // Stores the new Rdn
@@ -508,8 +508,7 @@ public final class LdifUtils
                             break;
 
                         default:
-                            throw new IllegalArgumentException( "Unexpected ModificationOperation: "
-                                + modification.getOperation() );
+                            throw new IllegalArgumentException( I18n.err( I18n.ERR_13434_UNEXPECTED_MOD_OPERATION, modification.getOperation() ) );
                     }
 
                     sb.append( modification.getAttribute().getUpId() );
@@ -522,7 +521,7 @@ public final class LdifUtils
                 break;
 
             default:
-                throw new IllegalArgumentException( "Unexpected ChangeType: " + entry.getChangeType() );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13431_UNEXPECTED_CHANGETYPE, entry.getChangeType() ) );
         }
 
         sb.append( '\n' );
@@ -639,7 +638,7 @@ public final class LdifUtils
 
         if ( nbChars < 2 )
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_12084 ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13474_LINE_LENGTH_TOO_SHORT ) );
         }
 
         // We will first compute the new size of the LDIF result
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/AbstractAnonymizer.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/AbstractAnonymizer.java
index 5383470..95bf1a2 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/AbstractAnonymizer.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/AbstractAnonymizer.java
@@ -24,6 +24,7 @@ import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.schema.SchemaManager;
 
 /**
@@ -207,7 +208,9 @@ public abstract class AbstractAnonymizer<K> implements Anonymizer<K>
             if ( overflow )
             {
                 // We have exhausted all the possible values...
-                throw new RuntimeException( "Cannot compute a new value for " + anonymizedValue );
+                String msg = I18n.err( I18n.ERR_13435_CANNOT_COMPUTE_NEW_VALUE, anonymizedValue );
+                
+                throw new RuntimeException( msg );
             }
             
             getLatestStringMap().put( length, anonymizedValue );
@@ -261,7 +264,9 @@ public abstract class AbstractAnonymizer<K> implements Anonymizer<K>
             if ( overflow )
             {
                 // We have exhausted all the possible values...
-                throw new RuntimeException( "Cannot compute a new value for " + latestBytes );
+                String msg = I18n.err( I18n.ERR_13435_CANNOT_COMPUTE_NEW_VALUE, latestBytes );
+                
+                throw new RuntimeException( msg );
             }
             
             return latestBytes;
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/BinaryAnonymizer.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/BinaryAnonymizer.java
index 18cd740..48e598a 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/BinaryAnonymizer.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/BinaryAnonymizer.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
 import org.apache.directory.api.ldap.model.entry.Value;
@@ -89,7 +90,7 @@ public class BinaryAnonymizer extends AbstractAnonymizer<byte[]>
             }
             catch ( LdapInvalidAttributeValueException e )
             {
-                throw new RuntimeException( "Error while anonymizing the value" + value );
+                throw new RuntimeException( I18n.err( I18n.ERR_13436_ERROR_ANONYMIZING_VALUE, value ) );
             }
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/CaseSensitiveStringAnonymizer.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/CaseSensitiveStringAnonymizer.java
index dfa3cc7..766b79a 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/CaseSensitiveStringAnonymizer.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/CaseSensitiveStringAnonymizer.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
 import org.apache.directory.api.ldap.model.entry.Value;
@@ -111,7 +112,7 @@ public class CaseSensitiveStringAnonymizer extends AbstractAnonymizer<String>
                     }
                     catch ( LdapInvalidAttributeValueException e )
                     {
-                        throw new RuntimeException( "Error while anonymizing the value" + strValue );
+                        throw new RuntimeException( I18n.err( I18n.ERR_13436_ERROR_ANONYMIZING_VALUE, strValue ) );
                     }
                 }
             }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/IntegerAnonymizer.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/IntegerAnonymizer.java
index b6ae728..162a1c6 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/IntegerAnonymizer.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/IntegerAnonymizer.java
@@ -26,6 +26,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
 import org.apache.directory.api.ldap.model.entry.Value;
@@ -182,7 +183,7 @@ public class IntegerAnonymizer extends AbstractAnonymizer<String>
             // Corner case : we can't have a value starting with '0' unless its length is 1
             if ( ( length > 1 ) && ( latest[0] == '0' ) )
             {
-                throw new RuntimeException( "Overflow for " + valStr );
+                throw new RuntimeException( I18n.err( I18n.ERR_13437_OVERFLOW, valStr ) );
             }
             
             String anonymizedValue = new String( latest );
@@ -190,7 +191,9 @@ public class IntegerAnonymizer extends AbstractAnonymizer<String>
             if ( overflow )
             {
                 // We have exhausted all the possible values...
-                throw new RuntimeException( "Cannot compute a new value for " + anonymizedValue );
+                String msg = I18n.err( I18n.ERR_13435_CANNOT_COMPUTE_NEW_VALUE, anonymizedValue );
+                
+                throw new RuntimeException( msg );
             }
             
             latestIntegerMap.put( length, anonymizedValue );
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/StringAnonymizer.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/StringAnonymizer.java
index 80eea13..57b7c58 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/StringAnonymizer.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/ldif/anonymizer/StringAnonymizer.java
@@ -25,6 +25,7 @@ import java.util.HashMap;
 import java.util.Map;
 import java.util.Set;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
 import org.apache.directory.api.ldap.model.entry.Value;
@@ -112,7 +113,7 @@ public class StringAnonymizer extends AbstractAnonymizer<String>
                     }
                     catch ( LdapInvalidAttributeValueException e )
                     {
-                        throw new RuntimeException( "Error while anonymizing the value" + strValue );
+                        throw new RuntimeException( I18n.err( I18n.ERR_13436_ERROR_ANONYMIZING_VALUE, strValue ) );
                     }
                 }
             }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AbandonRequestImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AbandonRequestImpl.java
index e91a249..b12de59 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AbandonRequestImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AbandonRequestImpl.java
@@ -88,7 +88,7 @@ public class AbandonRequestImpl extends AbstractRequest implements AbandonReques
      */
     public void abandon()
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04185 ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13506_CANNOT_ABANDON_OPERATION ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AliasDerefMode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AliasDerefMode.java
index f284d1f..2b32056 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AliasDerefMode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/AliasDerefMode.java
@@ -117,7 +117,7 @@ public enum AliasDerefMode
             }
             else
             {
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04186, property,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13507_UNRECOGNIZED_JNDI_PROPERTY_VALUE, property,
                     JndiPropertyConstants.JNDI_LDAP_DAP_DEREF_ALIASES ) );
             }
         }
@@ -154,23 +154,7 @@ public enum AliasDerefMode
      */
     public boolean isDerefInSearching()
     {
-        switch ( this )
-        {
-            case DEREF_ALWAYS:
-                return true;
-
-            case DEREF_FINDING_BASE_OBJ:
-                return false;
-
-            case DEREF_IN_SEARCHING:
-                return true;
-
-            case NEVER_DEREF_ALIASES:
-                return false;
-
-            default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04187 ) );
-        }
+        return ( this == AliasDerefMode.DEREF_ALWAYS ) || ( this == AliasDerefMode.DEREF_IN_SEARCHING );
     }
 
 
@@ -225,7 +209,7 @@ public enum AliasDerefMode
                 return DEREF_ALWAYS;
 
             default:
-                throw new IllegalArgumentException( "Unknown derefmode " + val );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13510_UNKNOWN_DEREF_MODE, val ) );
         }
     }
 
@@ -261,7 +245,7 @@ public enum AliasDerefMode
             }
         }
 
-        throw new IllegalArgumentException( "Unknown derefmode " + val );
+        throw new IllegalArgumentException( I18n.err( I18n.ERR_13510_UNKNOWN_DEREF_MODE, val ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/BindRequestImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/BindRequestImpl.java
index d737cc9..a738950 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/BindRequestImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/BindRequestImpl.java
@@ -352,7 +352,7 @@ public BindRequest setName( String name )
     @Override
     public void abandon()
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04185 ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13506_CANNOT_ABANDON_OPERATION ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ModifyRequestImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ModifyRequestImpl.java
index 86a475c..7b21996 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ModifyRequestImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ModifyRequestImpl.java
@@ -26,6 +26,7 @@ import java.util.Collections;
 import java.util.Iterator;
 import java.util.List;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.entry.Attribute;
 import org.apache.directory.api.ldap.model.entry.DefaultAttribute;
 import org.apache.directory.api.ldap.model.entry.DefaultModification;
@@ -487,8 +488,7 @@ public class ModifyRequestImpl extends AbstractAbandonableRequest implements Mod
                         break;
 
                     default:
-                        throw new IllegalArgumentException( "Unexpected ModificationOperation "
-                            + modification.getOperation() );
+                        throw new IllegalArgumentException( I18n.err( I18n.ERR_13515_UNEXPECTED_MOD_OP, modification.getOperation() ) );
                 }
 
                 sb.append( "                Modification\n" );
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ResultCodeEnum.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ResultCodeEnum.java
index 7ac9429..18a741f 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ResultCodeEnum.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/ResultCodeEnum.java
@@ -29,6 +29,7 @@ import javax.naming.LimitExceededException;
 import javax.naming.PartialResultException;
 import javax.naming.SizeLimitExceededException;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.exception.LdapAdminLimitExceededException;
 import org.apache.directory.api.ldap.model.exception.LdapAffectMultipleDsaException;
 import org.apache.directory.api.ldap.model.exception.LdapAliasDereferencingException;
@@ -1669,7 +1670,7 @@ public enum ResultCodeEnum
                 return set.iterator().next();
 
             default:
-                throw new IllegalArgumentException( "Unexpected MessageTypeEnum " + type );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13516_UNEXPECTED_MESSAGE_TYPE, type ) );
         }
 
         // we don't want any codes that do not have anything to do w/ errors
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchParams.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchParams.java
index 64deb67..bc44c07 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchParams.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchParams.java
@@ -25,6 +25,7 @@ import java.util.Set;
 
 import javax.naming.directory.SearchControls;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.schema.AttributeType;
 import org.apache.directory.api.ldap.model.schema.AttributeTypeOptions;
@@ -213,7 +214,7 @@ public class SearchParams
             }
             catch ( LdapException ne )
             {
-                LOG.warn( "Requested attribute {} does not exist in the schema, it will be ignored", returnAttribute );
+                LOG.warn( I18n.msg( I18n.MSG_13500_ATTRIBUTE_NOT_IN_SCHEMA, returnAttribute ) );
                 // Unknown attributes should be silently ignored, as RFC 2251 states
             }
         }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java
index bc7a3a7..e0f97f3 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchRequestImpl.java
@@ -26,6 +26,7 @@ import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.exception.LdapException;
 import org.apache.directory.api.ldap.model.exception.LdapProtocolErrorException;
 import org.apache.directory.api.ldap.model.filter.BranchNormalizedVisitor;
@@ -180,8 +181,7 @@ public class SearchRequestImpl extends AbstractAbandonableRequest implements Sea
         }
         catch ( ParseException pe )
         {
-            String msg = "The filter " + filter + " is invalid.";
-            throw new LdapProtocolErrorException( msg, pe );
+            throw new LdapProtocolErrorException( I18n.err( I18n.ERR_13508_INVALID_FILTER, filter ), pe );
         }
 
         return this;
@@ -539,7 +539,7 @@ public class SearchRequestImpl extends AbstractAbandonableRequest implements Sea
                 break;
 
             default:
-                throw new IllegalArgumentException( "Unexpected scope " + scope );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13509_UNEXPECTED_SCOPE, scope ) );
         }
 
         sb.append( '\n' );
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchScope.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchScope.java
index 6004383..39b11fe 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchScope.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/SearchScope.java
@@ -115,7 +115,7 @@ public enum SearchScope
                 return SUBTREE;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04160, scope ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13501_UNKNOWN_JNDI_SCOPE, scope ) );
         }
     }
 
@@ -142,7 +142,7 @@ public enum SearchScope
         }
         else
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_04161, scope ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13502_UNKNOWN_LDAP_URL_SCOPE, scope ) );
         }
     }
 
@@ -170,7 +170,7 @@ public enum SearchScope
         }
         else
         {
-            throw new IllegalArgumentException( I18n.err( I18n.ERR_04161, scope ) );
+            throw new IllegalArgumentException( I18n.err( I18n.ERR_13502_UNKNOWN_LDAP_URL_SCOPE, scope ) );
         }
     }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/UnbindRequestImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/UnbindRequestImpl.java
index 8449616..963769b 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/UnbindRequestImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/UnbindRequestImpl.java
@@ -50,7 +50,7 @@ public class UnbindRequestImpl extends AbstractRequest implements UnbindRequest
      */
     public void abandon()
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04185 ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13506_CANNOT_ABANDON_OPERATION ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ChangeType.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ChangeType.java
index 663bf49..4faeacd 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ChangeType.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ChangeType.java
@@ -115,7 +115,7 @@ public enum ChangeType
                 return MODDN;
                 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04055, value ) );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13500_UNDEFINED_CHANGETYPE, value ) );
         }
     }
 }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ProxiedAuthzImpl.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ProxiedAuthzImpl.java
index bf4dcf8..1d59997 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ProxiedAuthzImpl.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/ProxiedAuthzImpl.java
@@ -19,6 +19,7 @@
 package org.apache.directory.api.ldap.model.message.controls;
 
 
+import org.apache.directory.api.i18n.I18n;
 import org.apache.directory.api.ldap.model.name.Dn;
 import org.apache.directory.api.util.Strings;
 
@@ -77,7 +78,7 @@ public class ProxiedAuthzImpl extends AbstractControl implements ProxiedAuthz
         // We should have a valid authzId
         if ( authzId == null )
         {
-            throw new RuntimeException( "Invalid proxied authz value : cannot be null" );
+            throw new RuntimeException( I18n.err( I18n.ERR_13511_INVALID_PROXIED_AUTHZ_NULL ) );
         }
 
         if ( !Strings.isEmpty( authzId ) )
@@ -90,12 +91,12 @@ public class ProxiedAuthzImpl extends AbstractControl implements ProxiedAuthz
 
                 if ( !Dn.isValid( dn ) )
                 {
-                    throw new RuntimeException( "Invalid proxied authz value : the DN is not valid" );
+                    throw new RuntimeException( I18n.err( I18n.ERR_13512_INVALID_PROXIED_AUTHZ_BAD_DN ) );
                 }
             }
             else if ( !lowercaseAuthzId.startsWith( "u:" ) )
             {
-                throw new RuntimeException( "Invalid proxied authz value : should start with 'dn:' or 'u:'" );
+                throw new RuntimeException( I18n.err( I18n.ERR_13513_INVALID_PROXIED_AUTHZ_NO_DN_OR_U ) );
             }
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/SortResultCode.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/SortResultCode.java
index e45e427..8f4e4fc 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/SortResultCode.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/controls/SortResultCode.java
@@ -19,6 +19,8 @@
  */
 package org.apache.directory.api.ldap.model.message.controls;
 
+import org.apache.directory.api.i18n.I18n;
+
 /**
  * Enumeration of the result codes of a SortResult defined in <a href="http://tools.ietf.org/html/rfc2891">RFC 2891</a>
  * for server side sort control.
@@ -112,7 +114,7 @@ public enum SortResultCode
                 return OTHER;
 
             default:
-                throw new IllegalArgumentException( "Unknown sort response result code " + code );
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13514_UNKNOWN_SORT_RESPONSE_RESULT, code ) );
         }
     }
 }
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/AddNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/AddNoDResponse.java
index 10f563c..b45743e 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/AddNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/AddNoDResponse.java
@@ -66,7 +66,7 @@ public final class AddNoDResponse extends AddResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/BindNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/BindNoDResponse.java
index f82ecfc..a55e7ce 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/BindNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/BindNoDResponse.java
@@ -66,7 +66,7 @@ public final class BindNoDResponse extends BindResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/CompareNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/CompareNoDResponse.java
index 99fc4e4..55c0d2a 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/CompareNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/CompareNoDResponse.java
@@ -66,7 +66,7 @@ public final class CompareNoDResponse extends CompareResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/DeleteNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/DeleteNoDResponse.java
index 178316f..70f13c5 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/DeleteNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/DeleteNoDResponse.java
@@ -66,7 +66,7 @@ public final class DeleteNoDResponse extends DeleteResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ExtendedNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ExtendedNoDResponse.java
index 2eb1267..b3abd50 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ExtendedNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ExtendedNoDResponse.java
@@ -69,7 +69,7 @@ public final class ExtendedNoDResponse extends ExtendedResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyDnNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyDnNoDResponse.java
index 9bf3eac..6fd5108 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyDnNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyDnNoDResponse.java
@@ -66,7 +66,7 @@ public final class ModifyDnNoDResponse extends ModifyDnResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyNoDResponse.java
index ea96186..e82f410 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/ModifyNoDResponse.java
@@ -66,7 +66,7 @@ public final class ModifyNoDResponse extends ModifyResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/NoticeOfDisconnect.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/NoticeOfDisconnect.java
index 38e8456..603db95 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/NoticeOfDisconnect.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/NoticeOfDisconnect.java
@@ -137,7 +137,7 @@ public final class NoticeOfDisconnect extends ExtendedResponseImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
@@ -169,7 +169,7 @@ public final class NoticeOfDisconnect extends ExtendedResponseImpl
      */
     public void setResponse( byte[] value )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04173 ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13505_HARDCODED_ZERO_LENGTH_RESPONSE ) );
     }
 
 
@@ -190,13 +190,12 @@ public final class NoticeOfDisconnect extends ExtendedResponseImpl
      * Sets the OID uniquely identifying this extended response (a.k.a. its
      * name).
      * 
-     * @param oid
-     *            the OID of the extended response type.
+     * @param oid the OID of the extended response type.
      */
     @Override
     public void setResponseName( String oid )
     {
-        throw new UnsupportedOperationException( I18n.err( I18n.ERR_04168, EXTENSION_OID ) );
+        throw new UnsupportedOperationException( I18n.err( I18n.ERR_13504_FIX_OID, EXTENSION_OID ) );
     }
 
 
diff --git a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/SearchNoDResponse.java b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/SearchNoDResponse.java
index f642da1..94d1cbf 100644
--- a/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/SearchNoDResponse.java
+++ b/ldap/model/src/main/java/org/apache/directory/api/ldap/model/message/extended/SearchNoDResponse.java
@@ -66,7 +66,7 @@ public final class SearchNoDResponse extends SearchResultDoneImpl
                 break;
 
             default:
-                throw new IllegalArgumentException( I18n.err( I18n.ERR_04166, ResultCodeEnum.UNAVAILABLE,
+                throw new IllegalArgumentException( I18n.err( I18n.ERR_13503_RESULT_CODE_SHOULD_BE_IN, ResultCodeEnum.UNAVAILABLE,
                     ResultCodeEnum.PROTOCOL_ERROR, ResultCodeEnum.STRONG_AUTH_REQUIRED ) );
         }
 
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReaderTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReaderTest.java
index 332545a..109d27c 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReaderTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifAttributesReaderTest.java
@@ -714,8 +714,8 @@ public class LdifAttributesReaderTest
         }
         catch ( LdapLdifException ne )
         {
-            assertTrue( I18n.err( I18n.ERR_12009_ERROR_PARSING_LDIF_BUFFER ), ne.getMessage().startsWith(
-                I18n.ERR_12009_ERROR_PARSING_LDIF_BUFFER.getErrorCode() ) );
+            assertTrue( I18n.err( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER ), ne.getMessage().startsWith(
+                I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER.getErrorCode() ) );
         }
 
         reader.close();
diff --git a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifReaderTest.java b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifReaderTest.java
index 8770b90..ad88917 100644
--- a/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifReaderTest.java
+++ b/ldap/model/src/test/java/org/apache/directory/api/ldap/model/ldif/LdifReaderTest.java
@@ -1258,7 +1258,8 @@ public class LdifReaderTest
         }
         catch ( Exception ne )
         {
-            assertTrue( I18n.err( I18n.ERR_12070 ), ne.getMessage().startsWith( I18n.ERR_12070.getErrorCode() ) );
+            assertTrue( I18n.err( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER ), 
+                ne.getMessage().startsWith( I18n.ERR_13442_ERROR_PARSING_LDIF_BUFFER.getErrorCode() ) );
         }
     }
 

-- 
To stop receiving notification emails like this one, please contact
elecharny@apache.org.