diff --git a/pom.xml b/pom.xml
index ae118e9ef38a6d572f4c305f4843d64ee8650716..a9d73d881fb75d9291884ca1e59abd62f2a34665 100644
--- a/pom.xml
+++ b/pom.xml
@@ -59,6 +59,9 @@
     <contributor>
       <name>Silvia R&#237;os Berganti&#241;os</name>
     </contributor>
+    <contributor>
+      <name>Espen Bj&#248;rntvedt</name>
+    </contributor>
     <contributor>
       <name>Francesco Coccoluto</name>
     </contributor>
diff --git a/src/main/java/org/orekit/rugged/api/Rugged.java b/src/main/java/org/orekit/rugged/api/Rugged.java
index b90859af951fb9e0cd44fec0d2cdb699041820fe..03d16f9e445ec3df4341e436ec64fef283e78523 100644
--- a/src/main/java/org/orekit/rugged/api/Rugged.java
+++ b/src/main/java/org/orekit/rugged/api/Rugged.java
@@ -254,7 +254,7 @@ public class Rugged {
      * @param date date of the location
      * @param position pixel position in spacecraft frame
      * @param los normalized line-of-sight in spacecraft frame
-     * @return ground position of all pixels of the specified sensor line
+     * @return ground position of intersection point between specified los and ground
      * @exception RuggedException if line cannot be localized, or sensor is unknown
      */
     public GeodeticPoint directLocation(final AbsoluteDate date, final Vector3D position, final Vector3D los)
diff --git a/src/main/java/org/orekit/rugged/linesensor/LineSensor.java b/src/main/java/org/orekit/rugged/linesensor/LineSensor.java
index af7233a580b480a063b732ef36dd08354772492f..f352628b91cb9444c09b4d1632eaa5ee3b9736cf 100644
--- a/src/main/java/org/orekit/rugged/linesensor/LineSensor.java
+++ b/src/main/java/org/orekit/rugged/linesensor/LineSensor.java
@@ -69,7 +69,7 @@ public class LineSensor {
 
     /** Get the pixel normalized line-of-sight at some date.
      * @param date current date
-     * @param i pixel index (must be between 0 and {@link #getNbPixels() - 1}
+     * @param i pixel index (must be between 0 and {@link #getNbPixels()} - 1
      * @return pixel normalized line-of-sight
      */
     public Vector3D getLos(final AbsoluteDate date, final int i) {
diff --git a/src/main/resources/assets/org/orekit/rugged/RuggedMessages_no.utf8 b/src/main/resources/assets/org/orekit/rugged/RuggedMessages_no.utf8
new file mode 100644
index 0000000000000000000000000000000000000000..081166d6863359235b650cf11054480f4313d0c6
--- /dev/null
+++ b/src/main/resources/assets/org/orekit/rugged/RuggedMessages_no.utf8
@@ -0,0 +1,47 @@
+# internal error, contact maintenance at {0}
+INTERNAL_ERROR = intern feil. Kontakt vedlikeholdsansvarlig {0}
+
+# no data at indices [{0}, {1}], tile only covers from [0, 0] to [{2}, {3}] (inclusive)
+OUT_OF_TILE_INDICES = ingen data funnet på [{0}, {1}], flisen dekker kun fra [0, 0] til [{2}, {3}] (inkludert)
+
+# no data at latitude {0} and longitude {1}, tile covers only latitudes {2} to {3} and longitudes {4} to {5}
+OUT_OF_TILE_ANGLES = ingen data på breddegrad {0} og lengdegrad {1}, flisen dekker kun breddegradene {2} til {3} og lengdegradene {4} til {5} 
+
+# the tile selected for latitude {0} and longitude {1} does not contain required point neighborhood
+TILE_WITHOUT_REQUIRED_NEIGHBORS_SELECTED = den valgte flisen for breddegrad {0} og lengdegrad {1} inneholder ikke nødvendig nabopunkt
+
+# date {0} is out of time span [{1}, {2}]
+OUT_OF_TIME_RANGE = datoen {0} er utenfor perioden [{1}, {2}]
+
+# general context has not been initialized (missing call to {0})
+UNINITIALIZED_CONTEXT = generell kontekst har ikke blitt initialisert ({0} har ikke blitt kalt)
+
+# tile is empty: {0} ⨉ {1}
+EMPTY_TILE = flisen er tom: {0} ⨉ {1}
+
+# unknown sensor {0}
+UNKNOWN_SENSOR = ukjent måler {0}
+
+# line-of-sight does not reach ground
+LINE_OF_SIGHT_DOES_NOT_REACH_GROUND = synslinjen når ikke bakken
+
+# line-of-sight never crosses latitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LATITUDE = synslinjen krysser aldri breddegrad {0}
+
+# line-of-sight never crosses longitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_LONGITUDE = synslinjen krysser aldri lengdegrad {0}
+
+# line never crosses altitude {0}
+LINE_OF_SIGHT_NEVER_CROSSES_ALTITUDE = linjen krysser aldri høyden {0}
+
+# line-of-sight enters the Digital Elevation Model behind spacecraft!
+DEM_ENTRY_POINT_IS_BEHIND_SPACECRAFT = synslinjen går inn i den digital terrengmodellen bak romfartøyet
+
+# frame {0} does not match frame {1} from interpolator dump
+FRAMES_MISMATCH_WITH_INTERPOLATOR_DUMP = rammen {0} stemmer ikke med rammen {1} fra interpolar-dumpen
+
+# data is not an interpolator dump
+NOT_INTERPOLATOR_DUMP_DATA = dataen er ikke en interpolar-dump
+
+# number of estimated parameters mismatch, expected {0} got {1}
+ESTIMATED_PARAMETERS_NUMBER_MISMATCH = <MISSING TRANSLATION>
diff --git a/src/site/markdown/index.md b/src/site/markdown/index.md
index 9e32e83a306322fc3d7af3e6553969647bef994b..8a07053572d5767514c2c3ee4c800f8bc76e9398 100644
--- a/src/site/markdown/index.md
+++ b/src/site/markdown/index.md
@@ -82,6 +82,8 @@ Features
 
     * Italian
 
+    * Norwegian
+
     * Romanian
 
     * Spanish
diff --git a/src/site/markdown/tutorials/direct-location.md b/src/site/markdown/tutorials/direct-location.md
index 096228a96f89044e19668da4cfb7326aa8dfba6d..8266c4bdbb60d8137956bf624e801aba0cbfef0d 100644
--- a/src/site/markdown/tutorials/direct-location.md
+++ b/src/site/markdown/tutorials/direct-location.md
@@ -49,6 +49,7 @@ For this we need the following packages
     import org.orekit.rugged.los.LOSBuilder;
     import org.orekit.rugged.los.FixedRotation;
     import org.orekit.rugged.los.TimeDependentLOS;
+    import org.orekit.rugged.utils.ParameterType;
  
 
 The raw viewing direction of pixel i with respect to the instrument is defined by the vector:
@@ -64,7 +65,7 @@ The instrument is oriented 10° off nadir around the X-axis, we need to rotate t
 direction to obtain the line of sight in the satellite frame
 
     LOSBuilder losBuilder = new LOSBuilder(rawDirs);
-    losBuilder.addTransform(new FixedRotation(new Rotation(Vector3D.PLUS_I, FastMath.toRadians(10))));
+    losBuilder.addTransform(new FixedRotation(ParameterType.FIXED, new Rotation(Vector3D.PLUS_I, FastMath.toRadians(10))));
 
 Here we have considered that the viewing directions are constant with time, it is also possible to
 have time-dependent lines-of-sight by using other transforms. It is also possible to append several
diff --git a/src/site/xdoc/changes.xml b/src/site/xdoc/changes.xml
index c747bd2146b3d0db59512d088a9d7dc9dd464498..df750dc72905dd40e0182f3c1d7ff20de94dc625 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="Espen Bjørntvedt">
+        Added Norwegian translation of error messages.
+      </action>
       <action dev="luc" type="update">
         Updated Apache Commons Version as 3.4 has now been released.
       </action>
diff --git a/src/test/java/org/orekit/rugged/errors/RuggedMessagesTest.java b/src/test/java/org/orekit/rugged/errors/RuggedMessagesTest.java
index eb225981d281d9c34d584ce0a47042ff90e5379a..04751a2a24e131b9ee82ee480211cf9b89c51d76 100644
--- a/src/test/java/org/orekit/rugged/errors/RuggedMessagesTest.java
+++ b/src/test/java/org/orekit/rugged/errors/RuggedMessagesTest.java
@@ -35,7 +35,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testAllKeysPresentInPropertiesFiles() {
-        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "ro" } ) {
+        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "no", "ro" } ) {
             ResourceBundle bundle =
                 ResourceBundle.getBundle("assets/org/orekit/rugged/RuggedMessages",
                                          new Locale(language), new RuggedMessages.UTF8Control());
@@ -55,7 +55,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testAllPropertiesCorrespondToKeys() {
-        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "ro" } ) {
+        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "no", "ro" } ) {
             ResourceBundle bundle =
                 ResourceBundle.getBundle("assets/org/orekit/rugged/RuggedMessages",
                                          new Locale(language), new RuggedMessages.UTF8Control());
@@ -90,7 +90,7 @@ public class RuggedMessagesTest {
 
     @Test
     public void testVariablePartsConsistency() {
-        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "ro" } ) {
+        for (final String language : new String[] { "de", "en", "es", "fr", "gl", "it", "no", "ro" } ) {
             Locale locale = new Locale(language);
             for (RuggedMessages message : RuggedMessages.values()) {
                 MessageFormat source     = new MessageFormat(message.getSourceString());