diff --git a/pom.xml b/pom.xml
index 034362783e77b8702f7722d78cd38db4ebed9846..c07378636d89a282fa28e985d202a7a95309f18c 100644
--- a/pom.xml
+++ b/pom.xml
@@ -53,6 +53,9 @@
   </developers>
 
   <contributors>
+    <contributor>
+      <name>Lucian Barbulescu</name>
+    </contributor>
     <contributor>
       <name>Silvia R&#237;os Berganti&#241;os</name>
     </contributor>
diff --git a/src/main/resources/assets/org/orekit/rugged/RuggedMessages_ro.utf8 b/src/main/resources/assets/org/orekit/rugged/RuggedMessages_ro.utf8
new file mode 100644
index 0000000000000000000000000000000000000000..5dc5eae4e4c9189de7d00641115d340498ede15f
--- /dev/null
+++ b/src/main/resources/assets/org/orekit/rugged/RuggedMessages_ro.utf8
@@ -0,0 +1,44 @@
+# internal error, contact maintenance at {0}
+INTERNAL_ERROR = eroare internă, contactați echipa de întrținere la {0}
+
+# no data at indices [{0}, {1}], tile only covers from [0, 0] to [{2}, {3}] (inclusive)
+OUT_OF_TILE_INDICES = date inexistente pentru indicii [{0}, {1}], regiunea oferă acoperire doar pentru intervalul de la [0, 0] la [{2}, {3}] (inclusiv)
+
+# no data at latitude {0} and longitude {1}, tile covers only latitudes {2} to {3} and longitudes {4} to {5}
+OUT_OF_TILE_ANGLES = nu există date pentru latitudinea {0} și longitudinea {1}, regiunea oferă acoperire doar pentru latitudini de la {2} la {3} și longitudini de la {4} la {5}
+
+# the tile selected for latitude {0} and longitude {1} does not contain required point neighborhood
+TILE_WITHOUT_REQUIRED_NEIGHBORS_SELECTED = regiunea selectată pentru latitudinea {0} și longitudinea {1} nu conține vecinătatea necesară a punctului
+
+# date {0} is out of time span [{1}, {2}]
+OUT_OF_TIME_RANGE = data {0} este în afara intervalului [{1}, {2}]
+
+# general context has not been initialized (missing call to {0})
+UNINITIALIZED_CONTEXT = contextul general nu a fost inițializat (lipsește apelul către {0})
+
+# tile is empty: {0} ⨉ {1}
+EMPTY_TILE = regiunea este vidă: {0} ⨉ {1}
+
+# unknown sensor {0}
+UNKNOWN_SENSOR = senzor necunoscut {0}
+
+# line-of-sight does not reach ground
+LINE_OF_SIGHT_DOES_NOT_REACH_GROUND = linia de vizare nu ajunge la sol
+
+# line-of-sight never crosses latitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE = linia de vizare nu intersectează latitudinea {0}
+
+# line-of-sight never crosses longitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE = linia de vizare nu intersectează longitudinea {0}
+
+# line never crosses altitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE = linia de vizare nu intersectează altitudinea {0}
+
+# line-of-sight enters the Digital Elevation Model behind spacecraft!
+DEM_ENTRY_POINT_IS_BEHIND_SPACECRAFT = linia de vizare intră în Modelul Digital de Elevație în spatele navei spațiale!
+
+# frame {0} does not match frame {1} from interpolator dump
+FRAMES_MISMATCH_WITH_INTERPOLATOR_DUMP = sistemul de coordonate {0} nu se potrivește cu sistemul de coordonate {1} din copia de siguranță a interpolatorului
+
+# data is not an interpolator dump
+NOT_INTERPOLATOR_DUMP_DATA = datele nu reprezintă o copie de siguranță a interpolatorului
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
index 714311c95950097fc5bcce995031c7eaa6a8eafc..4409605c2b633b4ffed7ee10b6dfb2b8c01d8de5 100644
--- a/src/site/markdown/index.md
+++ b/src/site/markdown/index.md
@@ -82,6 +82,8 @@ Features
 
     * Italian
 
+    * Romanian
+
     * Spanish
 
 Free software
diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml
index 8a828c657d1acf3fecdb65aeb59463d0d2ad40c8..7a6d533fe772e038e1d70d56e4407d28d5adfbef 100644
--- a/src/site/xdoc/changes.xml
+++ b/src/site/xdoc/changes.xml
@@ -22,6 +22,9 @@
   <body>
     <release version="1.0" date="TBD"
              description="TBD">
+      <action dev="luc" type="add" due-to="Lucian Barbulescu">
+        Added Romanian translation of error messages.
+      </action>
       <action dev="luc" type="update" >
         Use builder pattern and fluent interface to create the top level Rugged instance.
       </action>
diff --git a/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java b/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
index 8c555280ab659ace508227ad13eb8ad25ef4748d..c31773138b6d50795bbc5acc868e2cbec14651fc 100644
--- a/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
+++ b/src/test/java/org/orekit/rugged/api/RuggedMessagesTest.java
@@ -34,7 +34,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testAllKeysPresentInPropertiesFiles() {
-        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it" } ) {
+        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "ro" } ) {
             ResourceBundle bundle =
                 ResourceBundle.getBundle("assets/org/orekit/rugged/RuggedMessages",
                                          new Locale(language), new RuggedMessages.UTF8Control());
@@ -54,7 +54,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testAllPropertiesCorrespondToKeys() {
-        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it" } ) {
+        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "ro" } ) {
             ResourceBundle bundle =
                 ResourceBundle.getBundle("assets/org/orekit/rugged/RuggedMessages",
                                          new Locale(language), new RuggedMessages.UTF8Control());
@@ -89,7 +89,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testVariablePartsConsistency() {
-        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it" } ) {
+        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "ro" } ) {
             Locale locale = new Locale(language);
             for (RuggedMessages message : RuggedMessages.values()) {
                 MessageFormat source     = new MessageFormat(message.getSourceString());