diff --git a/app/build.gradle.kts b/app/build.gradle.kts
index 3244b422655b480beaefc14fd2899b49fdee642d..a146d57153e7b8e7f02352fc390c1977118b628c 100644
--- a/app/build.gradle.kts
+++ b/app/build.gradle.kts
@@ -45,4 +45,6 @@ dependencies {
     testImplementation(libs.junit)
     androidTestImplementation(libs.ext.junit)
     androidTestImplementation(libs.espresso.core)
+    implementation(libs.retrofit2.retrofit)
+    implementation(libs.retrofit2.converter.gson)
 }
\ No newline at end of file
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 5b948718e24417d8dc35a3af094f92fe24e715da..44c862e9a4a77e4a0a35926bf7bfcc68c8e02d5a 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -12,6 +12,8 @@
         android:maxSdkVersion="32" />
     <uses-permission android:name="android.permission.CAMERA" />
 
+    <uses-permission android:name="android.permission.INTERNET"/>
+
     <application
         android:allowBackup="true"
         android:dataExtractionRules="@xml/data_extraction_rules"
diff --git a/app/src/main/assets/tuto.pdf b/app/src/main/assets/tuto.pdf
index a2fb7992c7e0ae35161a7ca4fc0ac8c1a0e9e0d1..276b75cd16331e10a50026c3580ba681199e3c5f 100644
Binary files a/app/src/main/assets/tuto.pdf and b/app/src/main/assets/tuto.pdf differ
diff --git a/app/src/main/java/com/example/myapplication/GoogleFormApi.java b/app/src/main/java/com/example/myapplication/GoogleFormApi.java
new file mode 100644
index 0000000000000000000000000000000000000000..93f7f4f024087e43861e782c0a75c469c18c206d
--- /dev/null
+++ b/app/src/main/java/com/example/myapplication/GoogleFormApi.java
@@ -0,0 +1,32 @@
+package com.example.myapplication;
+
+import retrofit2.Call;
+import retrofit2.http.Field;
+import retrofit2.http.FormUrlEncoded;
+import retrofit2.http.POST;
+
+public interface GoogleFormApi {
+
+    // Sends form data to the specified Google Form
+    @FormUrlEncoded
+    @POST("/forms/d/e/1FAIpQLScC1-0J39OuIBUedhf_xK_w7qYT8GXVtVpl7SvL4yCPN0VLWA/formResponse")
+    Call<Void> sendFormData(
+            // Birds fields
+            @Field("entry.592245432") String becasseauNumber,
+            @Field("entry.1372224824") String bernacheNumber,
+            @Field("entry.582994154") String goelandNumber,
+            @Field("entry.608828728") String mouetteNumber,
+            @Field("entry.2059411273") String pluvierNumber,
+            @Field("entry.2099434669") String cormoranNumber,
+            @Field("entry.1505904869") String foulqueNumber,
+            @Field("entry.1113424666") String tadorneNumber,
+            @Field("entry.1340159476") String chevalierNumber,
+
+            // Other fields
+            @Field("entry.311834827") String unknownSpecies,
+            @Field("entry.1710251376") String zone,
+            @Field("entry.1284627072") String surroundings,
+            @Field("entry.1321597415") String time
+    );
+}
+
diff --git a/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java b/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java
index b213f426dd5593809171f006fa789a896ec1822b..4efcdceff0b81a9e3bde6b5d2845e071186e5915 100644
--- a/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java
+++ b/app/src/main/java/com/example/myapplication/OverlayDialogFragmentForm.java
@@ -1,25 +1,64 @@
 package com.example.myapplication;
 
-import android.app.Activity;
+import android.app.AlertDialog;
+import android.content.DialogInterface;
 import android.os.Bundle;
+import android.text.Editable;
+import android.text.TextWatcher;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.AdapterView;
 import android.widget.ArrayAdapter;
 import android.widget.Button;
+import android.widget.EditText;
 import android.widget.Spinner;
+import android.widget.TextView;
+import android.widget.TimePicker;
+import android.widget.Toast;
 
 import androidx.annotation.NonNull;
 import androidx.annotation.Nullable;
 import androidx.fragment.app.DialogFragment;
 
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+import retrofit2.Retrofit;
+import retrofit2.converter.gson.GsonConverterFactory;
+
 public class OverlayDialogFragmentForm extends DialogFragment {
+    private String zoneSelected;
+    private boolean isZoneSelected = false;
+
+    private String time;
+    private boolean isTimeSelected = false;
+
+    private String finalPredictionOutput;
+
+    private String becasseauCounter = "0";
+    private String bernacheCounter = "0";
+    private String goelandCounter = "0";
+    private String mouetteCounter = "0";
+    private String pluvierCounter = "0";
+    private String cormoranCounter = "0";
+    private String foulqueCounter = "0";
+    private String tadorneCounter = "0";
+    private String chevalierCounter = "0";
+
+    private String surroundingsDescription;
+
+    // Linking the Google Forms
+    private final Retrofit retrofit = new Retrofit.Builder().baseUrl("https://docs.google.com/").addConverterFactory(GsonConverterFactory.create()).build();
+
+    private final GoogleFormApi api = retrofit.create(GoogleFormApi.class);
+
     @Nullable
     @Override
     public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
         // Inflate the layout for this dialog fragment
         View view = inflater.inflate(R.layout.fragment_form, container, false);
-        return inflater.inflate(R.layout.fragment_form, container, false);
+        return view;
     }
 
     @Override
@@ -29,19 +68,206 @@ public class OverlayDialogFragmentForm extends DialogFragment {
             getDialog().getWindow().setLayout(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT);
             getDialog().getWindow().setBackgroundDrawableResource(android.R.color.transparent); // Transparent background
         }
-        Button goBackButton=(Button) this.getView().findViewById(R.id.submit_form_button);
+    }
+
+    @Override
+    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+        super.onViewCreated(view, savedInstanceState);
+
+        // Select the dropdown menu
+        Spinner zoneSelector = view.findViewById(R.id.zone_selector);
+
+        // Create the list of options
+        String[] items = new String[]{"Zone 1\n","Zone 2\n","Zone 3\n","Zone 4\n",
+                "Je ne suis pas dans la rade de Lorient"};
+        ArrayAdapter<String> adapter = new ArrayAdapter<>(this.getContext(),
+                android.R.layout.simple_spinner_item, items);
+
+        // Set the list of options in the dropdown menu
+        zoneSelector.setAdapter(adapter);
+
+        // If an item is selected we retain its value
+        zoneSelector.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
+            @Override
+            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
+                zoneSelected = parent.getItemAtPosition(position).toString();
+                isZoneSelected = true;
+            }
+
+            @Override
+            public void onNothingSelected(AdapterView<?> parent) {
+                isZoneSelected = false;
+            }
+        });
+
+
+        // Set the time picker settings
+        TimePicker timePicker = view.findViewById(R.id.time_picker);
+        timePicker.setIs24HourView(true);
+        time = timePicker.getHour() + ":" + timePicker.getMinute();
+        // If time is changed we retain its value
+        timePicker.setOnTimeChangedListener(new TimePicker.OnTimeChangedListener() {
+            @Override
+            public void onTimeChanged(TimePicker timePicker, int i, int i1) {
+                time = timePicker.getHour() + ":" + timePicker.getMinute();
+                isTimeSelected = true;
+            }
+        });
+
+        // Display the result in the form
+        finalPredictionOutput = PhotoPage.getPredictionOutput();
+        TextView predictionDisplay = view.findViewById(R.id.prediction_output);
+        String predictionText = "Nous avons détecté sur votre photo :\n" + finalPredictionOutput;
+        predictionDisplay.setText(predictionText);
+
+        String[] numberBySpecies = finalPredictionOutput.split("\n");
+
+        // See how many birds of each species were identified
+        if (finalPredictionOutput.contains("Bécasseau Sanderling")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Bécasseau Sanderling")) {
+                    becasseauCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Bernache Cravant")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Bernache Cravant")) {
+                    bernacheCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Goéland Argenté")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Goéland Argenté")) {
+                    goelandCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Mouette Rieuse")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Mouette Rieuse")) {
+                    mouetteCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Pluvier Argenté")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Pluvier Argenté")) {
+                    pluvierCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Grand Cormoran")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Grand Cormoran")) {
+                    cormoranCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Foulque Macroule")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Foulque Macroule")) {
+                    foulqueCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Tadorne de Belon")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Tadorne de Belon")) {
+                    tadorneCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        if (finalPredictionOutput.contains("Chevalier Gambette")) {
+            for (String species : numberBySpecies) {
+                if (species.contains("Chevalier Gambette")) {
+                    chevalierCounter = species.split(" : ")[1];
+                }
+            }
+        }
+
+        EditText surroundings = view.findViewById(R.id.location_input);
+        surroundings.addTextChangedListener(new TextWatcher() {
+            @Override
+            public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+                surroundingsDescription = "Pas de description fournie";
+            }
+
+            @Override
+            public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+                surroundingsDescription = surroundings.getText().toString();
+            }
+
+            @Override
+            public void afterTextChanged(Editable editable) {
+                surroundingsDescription = surroundings.getText().toString();
+            }
+        });
+
 
-        View.OnClickListener listenerGoBackButton=new View.OnClickListener() {
+
+        Button submitButton=(Button) this.getView().findViewById(R.id.submit_form_button);
+
+        View.OnClickListener listenerSubmitButton=new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                goBack();
+                Call<Void> call = api.sendFormData(becasseauCounter, bernacheCounter, goelandCounter, mouetteCounter, pluvierCounter, cormoranCounter,
+                        foulqueCounter, tadorneCounter, chevalierCounter, "test", zoneSelected.split("\n")[0], surroundingsDescription, "14:30");
+
+                call.enqueue(new Callback<Void>() {
+                    @Override
+                    public void onResponse(Call<Void> call, Response<Void> response) {
+                        try {
+                            if (response.isSuccessful()) {
+                                Toast.makeText(getContext(), "Successful", Toast.LENGTH_SHORT).show();
+                            } else {
+                                Toast.makeText(getContext(), "Unsuccessful" + response.code() , Toast.LENGTH_SHORT).show();
+
+                                new AlertDialog.Builder(getContext())
+                                        .setTitle("Delete entry")
+                                        .setMessage(becasseauCounter + "\n" + bernacheCounter + "\n" + goelandCounter + "\n" + mouetteCounter+ "\n"
+                                                        + pluvierCounter + "\n" + cormoranCounter + "\n" + foulqueCounter + "\n"
+                                                + tadorneCounter + "\n" + chevalierCounter + "\n" + "test" + "\n" + zoneSelected.split("\n")[0] + "\n" + surroundingsDescription + "\n" + "14:30")
+
+                                        // Specifying a listener allows you to take an action before dismissing the dialog.
+                                        // The dialog is automatically dismissed when a dialog button is clicked.
+                                        .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
+                                            public void onClick(DialogInterface dialog, int which) {
+                                                // Continue with delete operation
+                                            }
+                                        })
+
+                                        // A null listener allows the button to dismiss the dialog and take no further action.
+                                        .setNegativeButton(android.R.string.no, null)
+                                        .setIcon(android.R.drawable.ic_dialog_alert)
+                                        .show();
+                            }
+                        } catch (Exception e) {
+                            Toast.makeText(getContext(), "Error: ${e.message}", Toast.LENGTH_SHORT).show();
+                        }
+                    }
+
+                    @Override
+                    public void onFailure(Call<Void> call, Throwable t) {
+                        try {
+                            Toast.makeText(getContext(), "Error: ${t.message}", Toast.LENGTH_SHORT).show();
+                        } catch (Exception e) {
+                            Toast.makeText(getContext(), "Error: ${e.message}", Toast.LENGTH_SHORT).show();
+                        }
+                    }
+                });
             }
         };
 
-        goBackButton.setOnClickListener(listenerGoBackButton);
-    }
-
-    private void goBack() {
-        this.getDialog().dismiss();
+        submitButton.setOnClickListener(listenerSubmitButton);
     }
 }
diff --git a/app/src/main/java/com/example/myapplication/PhotoPage.java b/app/src/main/java/com/example/myapplication/PhotoPage.java
index 6db91977fec58413c59e63c8221a51ba0766f9d3..0e2cc29fead635866c1fc2ce6ebd30dd8cb004fc 100644
--- a/app/src/main/java/com/example/myapplication/PhotoPage.java
+++ b/app/src/main/java/com/example/myapplication/PhotoPage.java
@@ -34,6 +34,8 @@ public class PhotoPage extends Fragment {
     private static final int GALLERY_REQUEST_CODE = 1;
     private static final int CAMERA_PERMISSION_REQUEST_CODE = 100;
 
+    private static String predictionOutput;
+
     Button cameraButton, folderButton;
     TextView textPredictionOutput, textProbabilityOutput;
     ImageView imageView;
@@ -131,7 +133,6 @@ public class PhotoPage extends Fragment {
                 }
                 break;
         }
-
     }
 
     private void processImage(Bitmap bitmap) {
@@ -151,8 +152,9 @@ public class PhotoPage extends Fragment {
             scaledBitmap = Bitmap.createScaledBitmap(annotatedImage, (int) width, (int) height, true);
             imageView.setImageBitmap(scaledBitmap);
             //TextView textView = getView().findViewById(R.id.textView2);
-            textPredictionOutput.setText(outputPredictedImage.toString());
 
+            predictionOutput=outputPredictedImage.toString();
+            textPredictionOutput.setText(outputPredictedImage.toString());
         } catch (IOException e) {
             throw new RuntimeException(e);
         } catch (NoSpeciesRecognizedException e) {
@@ -176,8 +178,13 @@ public class PhotoPage extends Fragment {
         }
 
     }
+
     public void showOverlayForm() {
         OverlayDialogFragmentForm overlayDialogForm = new OverlayDialogFragmentForm();
         overlayDialogForm.show(getParentFragmentManager(), "overlayDialogForm");
     }
+
+    public static String getPredictionOutput() {
+        return predictionOutput;
+    }
 }
diff --git a/app/src/main/res/drawable/polygon_10.png b/app/src/main/res/drawable/polygon_10.png
index 3057c3a93b54fd8ae4ed9d2a6df59ea58f6811c8..dfe5f39a231544fb4236b07b963a139f1168c18f 100644
Binary files a/app/src/main/res/drawable/polygon_10.png and b/app/src/main/res/drawable/polygon_10.png differ
diff --git a/app/src/main/res/layout/fragment_form.xml b/app/src/main/res/layout/fragment_form.xml
index 48e806cbff52fd6687723df126792b5bd8744d88..f3ff8307d02a9ec73a2e7ab97bd363eb90073bc6 100644
--- a/app/src/main/res/layout/fragment_form.xml
+++ b/app/src/main/res/layout/fragment_form.xml
@@ -1,96 +1,120 @@
-
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
-    xmlns:app="http://schemas.android.com/apk/res-auto"
+<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
     xmlns:tools="http://schemas.android.com/tools"
-    android:id="@+id/form_layout"
     android:layout_width="match_parent"
     android:layout_height="match_parent"
-    android:orientation="vertical"
-    android:background="@drawable/shape"
-    android:padding="20dp"
     tools:context=".PhotoPage">
 
-    <!-- Title for the form -->
-    <TextView
-        android:id="@+id/form_title"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="Saisissez les détails du localisation"
-        android:textSize="18sp"
-        android:textColor="#333333"
-        android:textStyle="bold"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginTop="20dp" />
-
-    <!-- Location Input -->
-    <EditText
-        android:id="@+id/location_input"
+    <LinearLayout
+        android:id="@+id/form_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:layout_marginTop="15dp"
-        android:hint="Localisation (qu'est ce que vous voyez?)"
-        android:padding="20dp"
-        android:textColor="#000000" />
+        android:background="@drawable/shape_transparent"
+        android:orientation="vertical"
+        android:padding="20dp">
 
-    <TextView
-        android:id="@+id/form_zonage"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="Saisissez la zone correspondante"
-        android:textSize="18sp"
-        android:textColor="#333333"
-        android:textStyle="bold"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginTop="20dp" />
+        <TextView
+            android:id="@+id/prediction_output"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:text="@string/display_prediction_text" />
 
-    <EditText
-        android:id="@+id/zone_input"
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content"
-        android:layout_marginTop="15dp"
-        android:hint="Dans quelle zone vous situez"
-        android:padding="20dp"
-        android:textColor="#000000" />
-    <Button
-        android:id="@+id/form_zoneInfo"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="Plus d'info sur les zones"
-        android:textSize="12sp"
-        android:textColor="#4B0076"
-        android:layout_gravity="right"
-        android:backgroundTint="#FFFFFF"
-        android:layout_marginTop="5dp" />
+        <TextView
+            android:id="@+id/form_zonage"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginTop="20dp"
+            android:text="@string/corresponding_zone_text"
+            android:textColor="#333333"
+            android:textSize="18sp"
+            android:textStyle="bold" />
 
-    <!-- Date Picker (Optional) -->
+        <Spinner
+            android:id="@+id/zone_selector"
+            android:layout_width="match_parent"
+            android:layout_height="50dp"
+            android:layout_marginTop="15dp" />
 
-    <!-- Submit Button -->
-    <TextView
-        android:id="@+id/form_date"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:text="Saisissez la date de la prise de la photo"
-        android:textSize="18sp"
-        android:textColor="#333333"
-        android:textStyle="bold"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginTop="5dp" />
+        <Button
+            android:id="@+id/form_zoneInfo"
+            style="@style/ButtonAppearance"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="end"
+            android:layout_marginTop="5dp"
+            android:text="@string/zone_info_text"
+            android:textSize="12sp" />
 
-    <DatePicker
-        android:id="@+id/date_picker"
-        android:layout_width="wrap_content"
-        android:layout_height="250dp"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginTop="20dp" />
+        <TextView
+            android:id="@+id/surroundings"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginTop="20dp"
+            android:text="@string/desc_text"
+            android:textColor="#333333"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <!-- Location Input -->
+        <EditText
+            android:id="@+id/location_input"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:hint="@string/locate_text"
+            android:padding="20dp"
+            android:textColor="#000000" />
+
+        <TextView
+            android:id="@+id/unknown_species"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginTop="20dp"
+            android:text="@string/unknown_species_text"
+            android:gravity="center"
+            android:textColor="#333333"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <EditText
+            android:id="@+id/unknown_species_input"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp"
+            android:hint="@string/unknown_species_question"
+            android:padding="20dp"
+            android:textColor="#000000"
+            android:editable="false" />
+
+        <TextView
+            android:id="@+id/form_date"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginTop="15dp"
+            android:text="@string/photo_time_text"
+            android:textColor="#333333"
+            android:textSize="18sp"
+            android:textStyle="bold" />
+
+        <TimePicker
+            android:id="@+id/time_picker"
+            android:layout_width="match_parent"
+            android:layout_height="wrap_content"
+            android:layout_marginTop="15dp" />
+
+        <Button
+            android:id="@+id/submit_form_button"
+            style="@style/ButtonAppearance"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:layout_gravity="center_horizontal"
+            android:layout_marginTop="30dp"
+            android:backgroundTint="#517293"
+            android:text="@string/send"
+            android:textColor="#FFFFFF" />
+    </LinearLayout>
+</ScrollView>
 
-    <Button
-        android:id="@+id/submit_form_button"
-        android:layout_width="wrap_content"
-        android:layout_height="wrap_content"
-        android:layout_gravity="center_horizontal"
-        android:layout_marginTop="30dp"
-        android:text="Envoyer"
-        android:textColor="#FFFFFF"
-        android:backgroundTint="#517293"
-        style="@style/ButtonAppearance" />
-</LinearLayout>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 80d188bf8431d280cfbd3a7e864b5e020505ed5d..e2d549b0bb4c7041081b8cb67004aeb9571e4096 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -81,6 +81,15 @@
     <string name="mode_sombre">Mode sombre</string>
     <string name="mode_sombre_texte">Le mode sombre économise votre batterie 
et lutte contre la fatigue visuelle</string>
     <string name="download_text">Télécharge un guide d’utilisation approfondi de l’application au format pdf</string>
+    <string name="photo_time_text">Confirmez l\'heure de la prise de la photo</string>
+    <string name="locate_text">Localisation (qu\'est ce que vous voyez?)</string>
+    <string name="send">Envoyer</string>
+    <string name="desc_text">Que voyez-vous autour de vous ?</string>
+    <string name="zone_info_text">Plus d\'info sur les zones</string>
+    <string name="corresponding_zone_text">Saisissez la zone correspondante</string>
+    <string name="display_prediction_text">Si rien ne s\'affiche ici, c\'est que la détection d\'espèces n\'a pas fonctionné.</string>
+    <string name="unknown_species_text">Si rien ne s\'affiche en haut de l\'écran et que vous connaissez l\'espèce en question, écrivez cela ici. Sinon écrivez je ne sais pas.</string>
+    <string name="unknown_species_question">Quelle est cette espèce ?</string>
     <string-array name="zone_array">
         <item>Zone 1</item>
         <item>Zone 2</item>
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 6a037e25384d2dfe086b2113b911697a986fc9b0..c82554bf358bdd830134a51b133946970a712112 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -11,6 +11,7 @@ flexboxVersion= "3.0.0"
 readmoretextviewVersion= "1.0.2"
 litertGpu = "1.0.1"
 uiGraphicsAndroid = "1.7.5"
+retrofit = "2.9.0"
 
 [libraries]
 junit = { group = "junit", name = "junit", version.ref = "junit" }
@@ -24,6 +25,8 @@ flexboxlayout = {group="com.google.android.flexbox", name="flexbox", version.ref
 readmoretextview = {group="com.github.colourmoon", name="readmore-textview", version.ref="readmoretextviewVersion"}
 litert-gpu = { group = "com.google.ai.edge.litert", name = "litert-gpu", version.ref = "litertGpu" }
 ui-graphics-android = { group = "androidx.compose.ui", name = "ui-graphics-android", version.ref = "uiGraphicsAndroid" }
+retrofit2-retrofit = {group = "com.squareup.retrofit2", name = "retrofit", version.ref = "retrofit"}
+retrofit2-converter-gson = {group = "com.squareup.retrofit2", name = "converter-gson", version.ref = "retrofit"}
 
 [plugins]
 android-application = { id = "com.android.application", version.ref = "agp" }