diff --git a/app/builders/language_builder.rb b/app/builders/language_builder.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7263a195a3557f50d561157e925a023892a44a18
--- /dev/null
+++ b/app/builders/language_builder.rb
@@ -0,0 +1,22 @@
+class LanguageBuilder < Builder
+  ##
+  # receive a list of ids and return a list of languages
+  # useful for create a new learning object
+  #
+  def self.build(objects = [])
+    super(language_repository, objects, true, 'rid')
+  end
+
+  def self.build_from_orientdb(args = {})
+    super(args) do
+      obj = Language.new(
+          id: args['@rid'],
+          name: args['name'],
+          code: args['code']
+      )
+      obj
+    end
+  end
+
+  private
+end
diff --git a/app/controllers/learning_objects_controller.rb b/app/controllers/learning_objects_controller.rb
index 2d009d4e25c5612d1ddbabc992daf12274f84b99..281440f028b375722cadec2fcb9bc12d5015735a 100644
--- a/app/controllers/learning_objects_controller.rb
+++ b/app/controllers/learning_objects_controller.rb
@@ -23,6 +23,7 @@ class LearningObjectsController < ApplicationController
     @school_levels = ['EducaçÃĢo Infantil', 'Ensino Fundamental', 'Ensino MÃĐdio']
     @subjects = Subject.default_list
     @types = learning_object_repository.types
+    @languages = language_repository.all
   end
 
   # GET /learning_objects/1/edit
diff --git a/app/models/language.rb b/app/models/language.rb
new file mode 100644
index 0000000000000000000000000000000000000000..7f310cdc03027afcb2ad8d7d9acfec424f45e48f
--- /dev/null
+++ b/app/models/language.rb
@@ -0,0 +1,8 @@
+class Language
+  include ActiveModel::Model
+  include RepositoriesProxy
+  include OrientDbSerializable
+  include Metadatable
+
+  attr_accessor :id, :name, :code
+end
\ No newline at end of file
diff --git a/app/repositories/orient_db/associations/languages_association.rb b/app/repositories/orient_db/associations/languages_association.rb
new file mode 100644
index 0000000000000000000000000000000000000000..a84ad8f1c6dd19e3549d3602dc68d71d51aa52bb
--- /dev/null
+++ b/app/repositories/orient_db/associations/languages_association.rb
@@ -0,0 +1,14 @@
+class OrientDb::Associations::LanguagesAssociation < OrientDb::Association
+
+  def can_create?
+    true
+  end
+
+  protected
+
+  def execute
+    create_edge("HasLang", @object.id, @object.language)
+  end
+
+end
+
diff --git a/app/repositories/orient_db/associations/learning_object_associations.rb b/app/repositories/orient_db/associations/learning_object_associations.rb
index 888f4cddf1de226b71831a0f6afacc56f8af0f56..f6ef622337f682ed65c7393c5b75a7a54d6e0b7e 100644
--- a/app/repositories/orient_db/associations/learning_object_associations.rb
+++ b/app/repositories/orient_db/associations/learning_object_associations.rb
@@ -4,7 +4,8 @@ class OrientDb::Associations::LearningObjectAssociations < OrientDb::Association
     [
         OrientDb::Associations::SubjectsAssociation.new(object, connection),
         OrientDb::Associations::AttributesAssociation.new(object, connection),
-        OrientDb::Associations::PublisherAssociation.new(object, connection)
+        OrientDb::Associations::PublisherAssociation.new(object, connection),
+        OrientDb::Associations::LanguagesAssociation.new(object, connection)
     ]
   end
 
diff --git a/app/repositories/orient_db/language_repository.rb b/app/repositories/orient_db/language_repository.rb
new file mode 100644
index 0000000000000000000000000000000000000000..33b4b2228907b13bf72f3aa93a6e1a11dd42ab22
--- /dev/null
+++ b/app/repositories/orient_db/language_repository.rb
@@ -0,0 +1,14 @@
+require 'json'
+module OrientDb
+  class LanguageRepository < Base
+    include OrientDb::Methods::SocialMethods
+    include OrientDb::Methods::EdgeMethods
+    include OrientDb::Methods::CountableMethods
+    include RepositoriesProxy
+
+    def all
+      result = connection.query("Select from Language")
+      build_objects result
+    end
+  end
+end
diff --git a/app/views/learning_objects/_form.html.erb b/app/views/learning_objects/_form.html.erb
index c82330503d3626ac311a5d29cae3ff31e0a9a9bd..0cdfb9ee8716003df130ca1261cc66a224fb8ceb 100644
--- a/app/views/learning_objects/_form.html.erb
+++ b/app/views/learning_objects/_form.html.erb
@@ -27,8 +27,8 @@
             <%= f.label :description, "Descreva seu objeto" %>
             <%= f.text_area :description, class: "form-control" %><br>
 
-            <%= f.label :language, "Idioma do objeto" %>
-            <%= f.text_field :language, class: "form-control" %><br>
+            <%= f.label :language, "Idioma do objeto" %><br>
+            <%= f.collection_select(:language, @languages, :id, :name, prompt: "Por favor informe o idioma do objeto ") %><br>
 
             <%= f.label :author, "Autor" %>
             <%= f.text_field :author, class: "form-control" %><br>
diff --git a/config/initializers/repositories.rb b/config/initializers/repositories.rb
index 73115d23bec271f125d40c604098efbd202cb35c..2220f03bac40a4f6f3376350491e8956b19ff6b1 100644
--- a/config/initializers/repositories.rb
+++ b/config/initializers/repositories.rb
@@ -4,6 +4,7 @@ orientdb_client = OrientdbService.create_client
 
 repositories = {
     learning_object: OrientDb::LearningObjectRepository.new(orientdb_client),
+    language: OrientDb::LanguageRepository.new(orientdb_client),
     user: UserRepositoryProxy.new(OrientDb::UserRepository.new(orientdb_client)),
     subject: OrientDb::SubjectRepository.new(orientdb_client),
     institution: OrientDb::InstitutionRepository.new(orientdb_client),