feat(design) : intégration dans l'Observatoire des Polycrises
This commit is contained in:
parent
2846403860
commit
a9bf92a4bc
@ -1,332 +1,332 @@
|
||||
{
|
||||
"app": {
|
||||
"title": "Fabnum – Chain Analysis",
|
||||
"description": "Ecosystem exploration and vulnerability identification.",
|
||||
"dev_mode": "You are in the development environment."
|
||||
"app": {
|
||||
"title": "Fabnum – Chain Analysis",
|
||||
"description": "Ecosystem exploration and vulnerability identification.",
|
||||
"dev_mode": "You are in the development environment."
|
||||
},
|
||||
"header": {
|
||||
"title": "FabNum - Digital Manufacturing Chain",
|
||||
"subtitle": "Ecosystem exploration and vulnerability identification.\n -> This site is still under development <-"
|
||||
},
|
||||
"footer": {
|
||||
"copyright": "FabNum@Polycrisis Observatory © 2025",
|
||||
"contact": "Contact",
|
||||
"license": "License",
|
||||
"license_text": "CC BY-NC-ND",
|
||||
"eco_note": "🌱 CO₂ calculations via",
|
||||
"eco_provider": "The Green Web Foundation",
|
||||
"powered_by": "🚀 Powered by",
|
||||
"powered_by_name": "Streamlit"
|
||||
},
|
||||
"sidebar": {
|
||||
"menu": "Main Menu",
|
||||
"navigation": "Main Navigation",
|
||||
"theme": "Theme",
|
||||
"theme_light": "Light",
|
||||
"theme_dark": "Dark",
|
||||
"theme_instructions_only": "Theme changes can only be made from the Instructions tab.",
|
||||
"impact": "Environmental Impact",
|
||||
"loading": "Loading..."
|
||||
},
|
||||
"auth": {
|
||||
"title": "Authentication",
|
||||
"username": "Username_token",
|
||||
"token": "Gitea Personal Access Token",
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"logged_as": "Logged in as",
|
||||
"error": "❌ Access denied.",
|
||||
"gitea_error": "❌ Unable to verify user with Gitea.",
|
||||
"success": "Successfully logged out."
|
||||
},
|
||||
"navigation": {
|
||||
"instructions": "Instructions",
|
||||
"personnalisation": "Customization",
|
||||
"analyse": "Analysis",
|
||||
"ia_nalyse": "AI'nalysis",
|
||||
"plan_d_action": "Actions plan",
|
||||
"visualisations": "Visualizations",
|
||||
"fiches": "Cards"
|
||||
},
|
||||
"pages": {
|
||||
"instructions": {
|
||||
"title": "Instructions"
|
||||
},
|
||||
"header": {
|
||||
"title": "FabNum - Digital Manufacturing Chain",
|
||||
"subtitle": "Ecosystem exploration and vulnerability identification."
|
||||
"personnalisation": {
|
||||
"title": "Final Product Customization",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Click on \"Add a final product\" to create a new product",
|
||||
"2. Give your product a name",
|
||||
"3. Select an appropriate assembly operation (if relevant)",
|
||||
"4. Choose the components that make up your product from the list provided",
|
||||
"5. Save your configuration for future reuse",
|
||||
"6. You will be able to modify or delete your custom products later"
|
||||
],
|
||||
"add_new_product": "Add a new final product",
|
||||
"new_product_name": "New product name (unique)",
|
||||
"assembly_operation": "Assembly operation (optional)",
|
||||
"product_exists": "This product already exists",
|
||||
"none": "-- None --",
|
||||
"components_to_link": "Components to link",
|
||||
"create_product": "Create product",
|
||||
"added": "added",
|
||||
"modify_product": "Modify an added final product",
|
||||
"products_to_modify": "Products to modify",
|
||||
"delete": "Delete",
|
||||
"linked_assembly_operation": "Linked assembly operation",
|
||||
"components_linked_to": "Components linked to",
|
||||
"update": "Update",
|
||||
"updated": "updated",
|
||||
"deleted": "deleted",
|
||||
"save_restore_config": "Save or restore configuration",
|
||||
"export_config": "Export configuration",
|
||||
"download_json": "Download (JSON)",
|
||||
"import_config": "Import a JSON configuration (max 100 KB)",
|
||||
"file_too_large": "File too large (max 100 KB).",
|
||||
"no_products_found": "No products found in the file.",
|
||||
"select_products_to_restore": "Select products to restore",
|
||||
"products_to_restore": "Products to restore",
|
||||
"restore_selected": "Restore selected items",
|
||||
"config_restored": "Partial configuration successfully restored.",
|
||||
"import_error": "Import error:"
|
||||
},
|
||||
"footer": {
|
||||
"copyright": "Fabnum © 2025",
|
||||
"contact": "Contact",
|
||||
"license": "License",
|
||||
"license_text": "CC BY-NC-ND",
|
||||
"eco_note": "🌱 CO₂ calculations via",
|
||||
"eco_provider": "The Green Web Foundation",
|
||||
"powered_by": "🚀 Powered by",
|
||||
"powered_by_name": "Streamlit"
|
||||
"analyse": {
|
||||
"title": "Graph Analysis",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Select the starting level (final product, component, or mineral)",
|
||||
"2. Choose the desired destination level",
|
||||
"3. Refine your selection by specifying either one or more specific minerals to target or specific items at each level (optional)",
|
||||
"4. Define the analysis criteria by selecting the relevant vulnerability indices",
|
||||
"5. Choose the index combination mode (AND/OR) according to your analysis needs",
|
||||
"6. Explore the generated graph using zoom and panning controls; you can switch to full screen mode for the graph"
|
||||
],
|
||||
"selection_nodes": "Selection of start and end nodes",
|
||||
"select_level": "-- Select a level --",
|
||||
"start_level": "Start level",
|
||||
"end_level": "End level",
|
||||
"select_minerals": "Select one or more minerals",
|
||||
"filter_by_minerals": "Filter by minerals (optional)",
|
||||
"fine_selection": "Fine selection of items",
|
||||
"filter_start_nodes": "Filter by start nodes (optional)",
|
||||
"filter_end_nodes": "Filter by end nodes (optional)",
|
||||
"vulnerability_filters": "Selection of filters to identify vulnerabilities",
|
||||
"filter_ics": "Filter paths containing at least one critical mineral for a component (ICS > 66%)",
|
||||
"filter_ivc": "Filter paths containing at least one critical mineral in relation to sectoral competition (IVC > 30)",
|
||||
"filter_ihh": "Filter paths containing at least one critical operation in relation to geographical or industrial concentration (IHH countries or actors > 25)",
|
||||
"apply_ihh_filter": "Apply IHH filter on:",
|
||||
"countries": "Countries",
|
||||
"actors": "Actors",
|
||||
"filter_isg": "Filter paths containing an unstable country (ISG ≥ 60)",
|
||||
"filter_logic": "Filter logic",
|
||||
"or": "OR",
|
||||
"and": "AND",
|
||||
"run_analysis": "Run analysis",
|
||||
"sankey": {
|
||||
"no_paths": "No paths found for the specified criteria.",
|
||||
"no_matching_paths": "No paths match the criteria.",
|
||||
"filtered_hierarchy": "Hierarchy filtered by levels and nodes",
|
||||
"download_dot": "Download filtered DOT file",
|
||||
"relation": "Relation"
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"menu": "Main Menu",
|
||||
"navigation": "Main Navigation",
|
||||
"theme": "Theme",
|
||||
"theme_light": "Light",
|
||||
"theme_dark": "Dark",
|
||||
"theme_instructions_only": "Theme changes can only be made from the Instructions tab.",
|
||||
"impact": "Environmental Impact",
|
||||
"loading": "Loading..."
|
||||
"ia_nalyse": {
|
||||
"title": "Graph Analysis by AI",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"The graph covers all levels, from end products to geographic countries.\n",
|
||||
"1. You can select minerals through which the paths go.",
|
||||
"2. You can choose end products to perform an analysis tailored to your context.\n",
|
||||
"These two selections are optional, but strongly recommended for a more relevant analysis.",
|
||||
"The analysis is carried out using a private AI on a minimalist server. The result is therefore not immediate (approximately 30 minutes) and you will be notified of the progress."
|
||||
],
|
||||
"select_minerals": "Select one or more minerals",
|
||||
"filter_by_minerals": "Filter by minerals (optional, but highly recommended)",
|
||||
"fine_selection": "End product selection",
|
||||
"filter_start_nodes": "Filter by start nodes (optional, but recommended)",
|
||||
"run_analysis": "Run analysis",
|
||||
"confirm_download": "Confirm download",
|
||||
"submit_request": "Submit your request",
|
||||
"empty_graph": "The graph is empty. Please make another selection."
|
||||
},
|
||||
"auth": {
|
||||
"title": "Authentication",
|
||||
"username": "Username_token",
|
||||
"token": "Gitea Personal Access Token",
|
||||
"login": "Login",
|
||||
"logout": "Logout",
|
||||
"logged_as": "Logged in as",
|
||||
"error": "❌ Access denied.",
|
||||
"gitea_error": "❌ Unable to verify user with Gitea.",
|
||||
"success": "Successfully logged out."
|
||||
"plan_d_action": {
|
||||
"title": "Graph analysis for action",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"The graph covers all levels, from end products to geographic countries.\n",
|
||||
"1. You can select minerals through which the paths go.",
|
||||
"2. You can choose end products to perform an analysis tailored to your context.\n",
|
||||
"These two selections are optional, but strongly recommended for a more relevant analysis.",
|
||||
"The recommendations for actions and indicator monitoring are generic. They must therefore be adapted to the context.",
|
||||
"The proposed actions or indicators depend on the type of organization concerned and can be applied directly or required of digital providers."
|
||||
],
|
||||
"select_minerals": "Select one or more minerals",
|
||||
"filter_by_minerals": "Filter by minerals (optional, but highly recommended)",
|
||||
"fine_selection": "End product selection",
|
||||
"filter_start_nodes": "Filter by start nodes",
|
||||
"run_analysis": "Run analysis",
|
||||
"confirm_download": "Confirm download",
|
||||
"submit_request": "Submit your request",
|
||||
"empty_graph": "The graph is empty. Please make another selection."
|
||||
},
|
||||
"navigation": {
|
||||
"instructions": "Instructions",
|
||||
"personnalisation": "Customization",
|
||||
"analyse": "Analysis",
|
||||
"ia_nalyse": "AI'nalysis",
|
||||
"plan_d_action": "Actions plan",
|
||||
"visualisations": "Visualizations",
|
||||
"fiches": "Cards"
|
||||
"visualisations": {
|
||||
"title": "Visualizations",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Explore the graphs presenting the Herfindahl-Hirschmann Index (IHH)",
|
||||
"2. Analyze its relationship with the average criticality of minerals or their Competitive Vulnerability Index (IVC)",
|
||||
"3. Zoom in on the graphs to better discover the information",
|
||||
"",
|
||||
"It is important to remember that the IHH has two thresholds:",
|
||||
"* below 15, concentration is considered to be low",
|
||||
"* above 25, it is considered to be high",
|
||||
"",
|
||||
"Thus, the higher a point is positioned in the top right of the graphs, the higher the risks.",
|
||||
"The graphs present 2 horizontal and vertical lines to mark these thresholds."
|
||||
],
|
||||
"ihh_criticality": "Herfindahl-Hirschmann Index - IHH vs Criticality",
|
||||
"ihh_criticality_desc": "The size of the points indicates the substitutability criticality of the mineral.",
|
||||
"ihh_ivc": "Herfindahl-Hirschmann Index - IHH vs IVC",
|
||||
"ihh_ivc_desc": "The size of the points indicates the competitive criticality of the mineral.",
|
||||
"launch": "Launch",
|
||||
"no_data": "No data to display.",
|
||||
"categories": {
|
||||
"assembly": "Assembly",
|
||||
"manufacturing": "Manufacturing",
|
||||
"processing": "Processing",
|
||||
"extraction": "Extraction"
|
||||
},
|
||||
"axis_titles": {
|
||||
"ihh_countries": "IHH Countries (%)",
|
||||
"ihh_actors": "IHH Actors (%)",
|
||||
"ihh_extraction": "IHH Extraction (%)",
|
||||
"ihh_reserves": "IHH Reserves (%)"
|
||||
},
|
||||
"chart_titles": {
|
||||
"concentration_criticality": "Concentration and Criticality – {0}",
|
||||
"concentration_resources": "Concentration of Critical Resources vs IVC Vulnerability"
|
||||
}
|
||||
},
|
||||
"pages": {
|
||||
"instructions": {
|
||||
"title": "Instructions"
|
||||
},
|
||||
"personnalisation": {
|
||||
"title": "Final Product Customization",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Click on \"Add a final product\" to create a new product",
|
||||
"2. Give your product a name",
|
||||
"3. Select an appropriate assembly operation (if relevant)",
|
||||
"4. Choose the components that make up your product from the list provided",
|
||||
"5. Save your configuration for future reuse",
|
||||
"6. You will be able to modify or delete your custom products later"
|
||||
],
|
||||
"add_new_product": "Add a new final product",
|
||||
"new_product_name": "New product name (unique)",
|
||||
"assembly_operation": "Assembly operation (optional)",
|
||||
"product_exists": "This product already exists",
|
||||
"none": "-- None --",
|
||||
"components_to_link": "Components to link",
|
||||
"create_product": "Create product",
|
||||
"added": "added",
|
||||
"modify_product": "Modify an added final product",
|
||||
"products_to_modify": "Products to modify",
|
||||
"delete": "Delete",
|
||||
"linked_assembly_operation": "Linked assembly operation",
|
||||
"components_linked_to": "Components linked to",
|
||||
"update": "Update",
|
||||
"updated": "updated",
|
||||
"deleted": "deleted",
|
||||
"save_restore_config": "Save or restore configuration",
|
||||
"export_config": "Export configuration",
|
||||
"download_json": "Download (JSON)",
|
||||
"import_config": "Import a JSON configuration (max 100 KB)",
|
||||
"file_too_large": "File too large (max 100 KB).",
|
||||
"no_products_found": "No products found in the file.",
|
||||
"select_products_to_restore": "Select products to restore",
|
||||
"products_to_restore": "Products to restore",
|
||||
"restore_selected": "Restore selected items",
|
||||
"config_restored": "Partial configuration successfully restored.",
|
||||
"import_error": "Import error:"
|
||||
},
|
||||
"analyse": {
|
||||
"title": "Graph Analysis",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Select the starting level (final product, component, or mineral)",
|
||||
"2. Choose the desired destination level",
|
||||
"3. Refine your selection by specifying either one or more specific minerals to target or specific items at each level (optional)",
|
||||
"4. Define the analysis criteria by selecting the relevant vulnerability indices",
|
||||
"5. Choose the index combination mode (AND/OR) according to your analysis needs",
|
||||
"6. Explore the generated graph using zoom and panning controls; you can switch to full screen mode for the graph"
|
||||
],
|
||||
"selection_nodes": "Selection of start and end nodes",
|
||||
"select_level": "-- Select a level --",
|
||||
"start_level": "Start level",
|
||||
"end_level": "End level",
|
||||
"select_minerals": "Select one or more minerals",
|
||||
"filter_by_minerals": "Filter by minerals (optional)",
|
||||
"fine_selection": "Fine selection of items",
|
||||
"filter_start_nodes": "Filter by start nodes (optional)",
|
||||
"filter_end_nodes": "Filter by end nodes (optional)",
|
||||
"vulnerability_filters": "Selection of filters to identify vulnerabilities",
|
||||
"filter_ics": "Filter paths containing at least one critical mineral for a component (ICS > 66%)",
|
||||
"filter_ivc": "Filter paths containing at least one critical mineral in relation to sectoral competition (IVC > 30)",
|
||||
"filter_ihh": "Filter paths containing at least one critical operation in relation to geographical or industrial concentration (IHH countries or actors > 25)",
|
||||
"apply_ihh_filter": "Apply IHH filter on:",
|
||||
"countries": "Countries",
|
||||
"actors": "Actors",
|
||||
"filter_isg": "Filter paths containing an unstable country (ISG ≥ 60)",
|
||||
"filter_logic": "Filter logic",
|
||||
"or": "OR",
|
||||
"and": "AND",
|
||||
"run_analysis": "Run analysis",
|
||||
"sankey": {
|
||||
"no_paths": "No paths found for the specified criteria.",
|
||||
"no_matching_paths": "No paths match the criteria.",
|
||||
"filtered_hierarchy": "Hierarchy filtered by levels and nodes",
|
||||
"download_dot": "Download filtered DOT file",
|
||||
"relation": "Relation"
|
||||
}
|
||||
},
|
||||
"ia_nalyse": {
|
||||
"title": "Graph Analysis by AI",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"The graph covers all levels, from end products to geographic countries.\n",
|
||||
"1. You can select minerals through which the paths go.",
|
||||
"2. You can choose end products to perform an analysis tailored to your context.\n",
|
||||
"These two selections are optional, but strongly recommended for a more relevant analysis.",
|
||||
"The analysis is carried out using a private AI on a minimalist server. The result is therefore not immediate (approximately 30 minutes) and you will be notified of the progress."
|
||||
],
|
||||
"select_minerals": "Select one or more minerals",
|
||||
"filter_by_minerals": "Filter by minerals (optional, but highly recommended)",
|
||||
"fine_selection": "End product selection",
|
||||
"filter_start_nodes": "Filter by start nodes (optional, but recommended)",
|
||||
"run_analysis": "Run analysis",
|
||||
"confirm_download": "Confirm download",
|
||||
"submit_request": "Submit your request",
|
||||
"empty_graph": "The graph is empty. Please make another selection."
|
||||
},
|
||||
"plan_d_action": {
|
||||
"title": "Graph analysis for action",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"The graph covers all levels, from end products to geographic countries.\n",
|
||||
"1. You can select minerals through which the paths go.",
|
||||
"2. You can choose end products to perform an analysis tailored to your context.\n",
|
||||
"These two selections are optional, but strongly recommended for a more relevant analysis.",
|
||||
"The recommendations for actions and indicator monitoring are generic. They must therefore be adapted to the context.",
|
||||
"The proposed actions or indicators depend on the type of organization concerned and can be applied directly or required of digital providers."
|
||||
],
|
||||
"select_minerals": "Select one or more minerals",
|
||||
"filter_by_minerals": "Filter by minerals (optional, but highly recommended)",
|
||||
"fine_selection": "End product selection",
|
||||
"filter_start_nodes": "Filter by start nodes",
|
||||
"run_analysis": "Run analysis",
|
||||
"confirm_download": "Confirm download",
|
||||
"submit_request": "Submit your request",
|
||||
"empty_graph": "The graph is empty. Please make another selection."
|
||||
},
|
||||
"visualisations": {
|
||||
"title": "Visualizations",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Explore the graphs presenting the Herfindahl-Hirschmann Index (IHH)",
|
||||
"2. Analyze its relationship with the average criticality of minerals or their Competitive Vulnerability Index (IVC)",
|
||||
"3. Zoom in on the graphs to better discover the information",
|
||||
"",
|
||||
"It is important to remember that the IHH has two thresholds:",
|
||||
"* below 15, concentration is considered to be low",
|
||||
"* above 25, it is considered to be high",
|
||||
"",
|
||||
"Thus, the higher a point is positioned in the top right of the graphs, the higher the risks.",
|
||||
"The graphs present 2 horizontal and vertical lines to mark these thresholds."
|
||||
],
|
||||
"ihh_criticality": "Herfindahl-Hirschmann Index - IHH vs Criticality",
|
||||
"ihh_criticality_desc": "The size of the points indicates the substitutability criticality of the mineral.",
|
||||
"ihh_ivc": "Herfindahl-Hirschmann Index - IHH vs IVC",
|
||||
"ihh_ivc_desc": "The size of the points indicates the competitive criticality of the mineral.",
|
||||
"launch": "Launch",
|
||||
"no_data": "No data to display.",
|
||||
"categories": {
|
||||
"assembly": "Assembly",
|
||||
"manufacturing": "Manufacturing",
|
||||
"processing": "Processing",
|
||||
"extraction": "Extraction"
|
||||
},
|
||||
"axis_titles": {
|
||||
"ihh_countries": "IHH Countries (%)",
|
||||
"ihh_actors": "IHH Actors (%)",
|
||||
"ihh_extraction": "IHH Extraction (%)",
|
||||
"ihh_reserves": "IHH Reserves (%)"
|
||||
},
|
||||
"chart_titles": {
|
||||
"concentration_criticality": "Concentration and Criticality – {0}",
|
||||
"concentration_resources": "Concentration of Critical Resources vs IVC Vulnerability"
|
||||
}
|
||||
},
|
||||
"fiches": {
|
||||
"title": "Card Discovery",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Browse the list of available cards by category",
|
||||
"2. Select a card to display its full content",
|
||||
"3. Consult detailed data, graphs, and additional analyses",
|
||||
"4. Use this information to deepen your understanding of the identified vulnerabilities",
|
||||
"",
|
||||
"The categories are as follows:",
|
||||
"* Assembly: operation of assembling final products from components",
|
||||
"* Related: various operations necessary to manufacture digital technology, but not directly entering its composition",
|
||||
"* Criticalities: indices used to identify and evaluate vulnerabilities",
|
||||
"* Manufacturing: operation of manufacturing components from minerals",
|
||||
"* Mineral: description and operations of extraction and processing of minerals"
|
||||
],
|
||||
"no_files": "No cards available at the moment.",
|
||||
"choose_category": "Choose a card category",
|
||||
"select_folder": "-- Select a folder --",
|
||||
"choose_file": "Choose a card",
|
||||
"select_file": "-- Select a card --",
|
||||
"loading_error": "Error loading the card:",
|
||||
"download_pdf": "Download this card as PDF",
|
||||
"pdf_unavailable": "The PDF file for this card is not available.",
|
||||
"ticket_management": "Ticket management for this card",
|
||||
"tickets": {
|
||||
"create_new": "Create a new ticket linked to this card",
|
||||
"model_load_error": "Unable to load the ticket template.",
|
||||
"contribution_type": "Contribution type",
|
||||
"specify": "Specify",
|
||||
"other": "Other",
|
||||
"concerned_card": "Concerned card",
|
||||
"subject": "Subject of the proposal",
|
||||
"preview": "Preview ticket",
|
||||
"cancel": "Cancel",
|
||||
"preview_title": "Ticket preview",
|
||||
"summary": "Summary",
|
||||
"title": "Title",
|
||||
"labels": "Labels",
|
||||
"confirm": "Confirm ticket creation",
|
||||
"created": "Ticket created and form cleared.",
|
||||
"model_error": "Template loading error:",
|
||||
"no_linked_tickets": "No tickets linked to this card.",
|
||||
"associated_tickets": "Tickets associated with this card",
|
||||
"moderation_notice": "ticket(s) awaiting moderation are not displayed.",
|
||||
"status": {
|
||||
"awaiting": "Awaiting processing",
|
||||
"in_progress": "In progress",
|
||||
"completed": "Completed",
|
||||
"rejected": "Rejected",
|
||||
"others": "Others"
|
||||
},
|
||||
"no_title": "No title",
|
||||
"unknown": "unknown",
|
||||
"subject_label": "Subject",
|
||||
"no_labels": "none",
|
||||
"comments": "Comment(s):",
|
||||
"no_comments": "No comments.",
|
||||
"comment_error": "Error retrieving comments:",
|
||||
"opened_by": "Opened by",
|
||||
"on_date": "on",
|
||||
"updated": "UPDATED",
|
||||
"continue": "Continuer",
|
||||
"created_success": "Ticket created and placed in moderation",
|
||||
"created_error": "Ticket creation failed. Please try later",
|
||||
"see_ticket": "See ticket"
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_levels": {
|
||||
"0": "Final product",
|
||||
"1": "Component",
|
||||
"2": "Mineral",
|
||||
"10": "Operation",
|
||||
"11": "Operation country",
|
||||
"12": "Operation actor",
|
||||
"99": "Geographic country"
|
||||
},
|
||||
"errors": {
|
||||
"log_read_error": "Log reading error:",
|
||||
"graph_preview_error": "Graph preview error:",
|
||||
"graph_creation_error": "Error creating the graph:",
|
||||
"ihh_criticality_error": "Error in IHH vs Criticality visualization:",
|
||||
"ihh_ivc_error": "Error in IHH vs IVC visualization:",
|
||||
"comment_fetch_error": "Error retrieving comments:",
|
||||
"template_load_error": "Template loading error:",
|
||||
"import_error": "Import error:"
|
||||
},
|
||||
"buttons": {
|
||||
"download": "Download",
|
||||
"run": "Run",
|
||||
"save": "Save",
|
||||
"fiches": {
|
||||
"title": "Card Discovery",
|
||||
"help": "How to use this tab?",
|
||||
"help_content": [
|
||||
"1. Browse the list of available cards by category",
|
||||
"2. Select a card to display its full content",
|
||||
"3. Consult detailed data, graphs, and additional analyses",
|
||||
"4. Use this information to deepen your understanding of the identified vulnerabilities",
|
||||
"",
|
||||
"The categories are as follows:",
|
||||
"* Assembly: operation of assembling final products from components",
|
||||
"* Related: various operations necessary to manufacture digital technology, but not directly entering its composition",
|
||||
"* Criticalities: indices used to identify and evaluate vulnerabilities",
|
||||
"* Manufacturing: operation of manufacturing components from minerals",
|
||||
"* Mineral: description and operations of extraction and processing of minerals"
|
||||
],
|
||||
"no_files": "No cards available at the moment.",
|
||||
"choose_category": "Choose a card category",
|
||||
"select_folder": "-- Select a folder --",
|
||||
"choose_file": "Choose a card",
|
||||
"select_file": "-- Select a card --",
|
||||
"loading_error": "Error loading the card:",
|
||||
"download_pdf": "Download this card as PDF",
|
||||
"pdf_unavailable": "The PDF file for this card is not available.",
|
||||
"ticket_management": "Ticket management for this card",
|
||||
"tickets": {
|
||||
"create_new": "Create a new ticket linked to this card",
|
||||
"model_load_error": "Unable to load the ticket template.",
|
||||
"contribution_type": "Contribution type",
|
||||
"specify": "Specify",
|
||||
"other": "Other",
|
||||
"concerned_card": "Concerned card",
|
||||
"subject": "Subject of the proposal",
|
||||
"preview": "Preview ticket",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"filter": "Filter",
|
||||
"search": "Search",
|
||||
"create": "Create",
|
||||
"update": "Update",
|
||||
"delete": "Delete",
|
||||
"preview": "Preview",
|
||||
"export": "Export",
|
||||
"import": "Import",
|
||||
"restore": "Restore",
|
||||
"refresh": "Refresh",
|
||||
"browse_files": "Browse files"
|
||||
},
|
||||
"ui": {
|
||||
"file_uploader": {
|
||||
"drag_drop_here": "Drag and drop file here",
|
||||
"size_limit": "100 KB limit per file • JSON"
|
||||
}
|
||||
},
|
||||
"batch": {
|
||||
"in_queue": "In queue",
|
||||
"in_progress": "Analysis in progress",
|
||||
"failure": "Error",
|
||||
"unknwon_error": "unknown error",
|
||||
"no_task": "No task wainting or in progress",
|
||||
"complete": "Analysis complete. Download the result in zip format, which contains the detailed report and analysis.",
|
||||
"step": "Step"
|
||||
"preview_title": "Ticket preview",
|
||||
"summary": "Summary",
|
||||
"title": "Title",
|
||||
"labels": "Labels",
|
||||
"confirm": "Confirm ticket creation",
|
||||
"created": "Ticket created and form cleared.",
|
||||
"model_error": "Template loading error:",
|
||||
"no_linked_tickets": "No tickets linked to this card.",
|
||||
"associated_tickets": "Tickets associated with this card",
|
||||
"moderation_notice": "ticket(s) awaiting moderation are not displayed.",
|
||||
"status": {
|
||||
"awaiting": "Awaiting processing",
|
||||
"in_progress": "In progress",
|
||||
"completed": "Completed",
|
||||
"rejected": "Rejected",
|
||||
"others": "Others"
|
||||
},
|
||||
"no_title": "No title",
|
||||
"unknown": "unknown",
|
||||
"subject_label": "Subject",
|
||||
"no_labels": "none",
|
||||
"comments": "Comment(s):",
|
||||
"no_comments": "No comments.",
|
||||
"comment_error": "Error retrieving comments:",
|
||||
"opened_by": "Opened by",
|
||||
"on_date": "on",
|
||||
"updated": "UPDATED",
|
||||
"continue": "Continuer",
|
||||
"created_success": "Ticket created and placed in moderation",
|
||||
"created_error": "Ticket creation failed. Please try later",
|
||||
"see_ticket": "See ticket"
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_levels": {
|
||||
"0": "Final product",
|
||||
"1": "Component",
|
||||
"2": "Mineral",
|
||||
"10": "Operation",
|
||||
"11": "Operation country",
|
||||
"12": "Operation actor",
|
||||
"99": "Geographic country"
|
||||
},
|
||||
"errors": {
|
||||
"log_read_error": "Log reading error:",
|
||||
"graph_preview_error": "Graph preview error:",
|
||||
"graph_creation_error": "Error creating the graph:",
|
||||
"ihh_criticality_error": "Error in IHH vs Criticality visualization:",
|
||||
"ihh_ivc_error": "Error in IHH vs IVC visualization:",
|
||||
"comment_fetch_error": "Error retrieving comments:",
|
||||
"template_load_error": "Template loading error:",
|
||||
"import_error": "Import error:"
|
||||
},
|
||||
"buttons": {
|
||||
"download": "Download",
|
||||
"run": "Run",
|
||||
"save": "Save",
|
||||
"cancel": "Cancel",
|
||||
"confirm": "Confirm",
|
||||
"filter": "Filter",
|
||||
"search": "Search",
|
||||
"create": "Create",
|
||||
"update": "Update",
|
||||
"delete": "Delete",
|
||||
"preview": "Preview",
|
||||
"export": "Export",
|
||||
"import": "Import",
|
||||
"restore": "Restore",
|
||||
"refresh": "Refresh",
|
||||
"browse_files": "Browse files"
|
||||
},
|
||||
"ui": {
|
||||
"file_uploader": {
|
||||
"drag_drop_here": "Drag and drop file here",
|
||||
"size_limit": "100 KB limit per file • JSON"
|
||||
}
|
||||
},
|
||||
"batch": {
|
||||
"in_queue": "In queue",
|
||||
"in_progress": "Analysis in progress",
|
||||
"failure": "Error",
|
||||
"unknwon_error": "unknown error",
|
||||
"no_task": "No task wainting or in progress",
|
||||
"complete": "Analysis complete. Download the result in zip format, which contains the detailed report and analysis.",
|
||||
"step": "Step"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,332 +1,332 @@
|
||||
{
|
||||
"app": {
|
||||
"title": "Fabnum – Analyse de chaîne",
|
||||
"description": "Parcours de l'écosystème et identification des vulnérabilités.",
|
||||
"dev_mode": "Vous êtes dans l'environnement de développement."
|
||||
"app": {
|
||||
"title": "Fabnum – Analyse de chaîne",
|
||||
"description": "Parcours de l'écosystème et identification des vulnérabilités.",
|
||||
"dev_mode": "Vous êtes dans l'environnement de développement."
|
||||
},
|
||||
"header": {
|
||||
"title": "FabNum - Chaîne de fabrication du numérique",
|
||||
"subtitle": "Parcours de l'écosystème et identification des vulnérabilités.\n-> Ce site est encore en cours de développement <-"
|
||||
},
|
||||
"footer": {
|
||||
"copyright": "FabNum@Polycrisis Observatory © 2025",
|
||||
"contact": "Contact",
|
||||
"license": "Licence",
|
||||
"license_text": "CC BY-NC-ND",
|
||||
"eco_note": "🌱 Calculs CO₂ via",
|
||||
"eco_provider": "The Green Web Foundation",
|
||||
"powered_by": "🚀 Propulsé par",
|
||||
"powered_by_name": "Streamlit"
|
||||
},
|
||||
"sidebar": {
|
||||
"menu": "Menu principal",
|
||||
"navigation": "Navigation principale",
|
||||
"theme": "Thème",
|
||||
"theme_light": "Clair",
|
||||
"theme_dark": "Sombre",
|
||||
"theme_instructions_only": "Le changement de thème ne peut se faire que depuis l'onglet Instructions.",
|
||||
"impact": "Impact environnemental",
|
||||
"loading": "Chargement en cours…"
|
||||
},
|
||||
"auth": {
|
||||
"title": "Authentification",
|
||||
"username": "Identifiant_token",
|
||||
"token": "Token d'accès personnel Gitea",
|
||||
"login": "Se connecter",
|
||||
"logout": "Se déconnecter",
|
||||
"logged_as": "Connecté en tant que",
|
||||
"error": "❌ Accès refusé.",
|
||||
"gitea_error": "❌ Impossible de vérifier l'utilisateur auprès de Gitea.",
|
||||
"success": "Déconnecté avec succès."
|
||||
},
|
||||
"navigation": {
|
||||
"instructions": "Instructions",
|
||||
"personnalisation": "Personnalisation",
|
||||
"analyse": "Analyse",
|
||||
"ia_nalyse": "IA'nalyse",
|
||||
"plan_d_action": "Plan d'action",
|
||||
"visualisations": "Visualisations",
|
||||
"fiches": "Fiches"
|
||||
},
|
||||
"pages": {
|
||||
"instructions": {
|
||||
"title": "Instructions"
|
||||
},
|
||||
"header": {
|
||||
"title": "FabNum - Chaîne de fabrication du numérique",
|
||||
"subtitle": "Parcours de l'écosystème et identification des vulnérabilités."
|
||||
"personnalisation": {
|
||||
"title": "Personnalisation des produits finaux",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Cliquez sur « Ajouter un produit final » pour créer un nouveau produit",
|
||||
"2. Donnez un nom à votre produit",
|
||||
"3. Sélectionnez une opération d'assemblage appropriée (si pertinent)",
|
||||
"4. Choisissez les composants qui constituent votre produit dans la liste proposée",
|
||||
"5. Sauvegardez votre configuration pour une réutilisation future",
|
||||
"6. Vous pourrez par la suite modifier ou supprimer vos produits personnalisés"
|
||||
],
|
||||
"add_new_product": "Ajouter un nouveau produit final",
|
||||
"new_product_name": "Nom du nouveau produit (unique)",
|
||||
"assembly_operation": "Opération d'assemblage (optionnelle)",
|
||||
"product_exists": "Ce produit existe déjà.",
|
||||
"none": "-- Aucune --",
|
||||
"components_to_link": "Composants à lier",
|
||||
"create_product": "Créer le produit",
|
||||
"added": "ajouté",
|
||||
"modify_product": "Modifier un produit final ajouté",
|
||||
"products_to_modify": "Produits à modifier",
|
||||
"delete": "Supprimer",
|
||||
"linked_assembly_operation": "Opération d'assemblage liée",
|
||||
"components_linked_to": "Composants liés à",
|
||||
"update": "Mettre à jour",
|
||||
"updated": "mis à jour",
|
||||
"deleted": "supprimé",
|
||||
"save_restore_config": "Sauvegarder ou restaurer la configuration",
|
||||
"export_config": "Exporter configuration",
|
||||
"download_json": "Télécharger (JSON)",
|
||||
"import_config": "Importer une configuration JSON (max 100 Ko)",
|
||||
"file_too_large": "Fichier trop volumineux (max 100 Ko).",
|
||||
"no_products_found": "Aucun produit trouvé dans le fichier.",
|
||||
"select_products_to_restore": "Sélection des produits à restaurer",
|
||||
"products_to_restore": "Produits à restaurer",
|
||||
"restore_selected": "Restaurer les éléments sélectionnés",
|
||||
"config_restored": "Configuration partielle restaurée avec succès.",
|
||||
"import_error": "Erreur d'import :"
|
||||
},
|
||||
"footer": {
|
||||
"copyright": "Fabnum © 2025",
|
||||
"contact": "Contact",
|
||||
"license": "Licence",
|
||||
"license_text": "CC BY-NC-ND",
|
||||
"eco_note": "🌱 Calculs CO₂ via",
|
||||
"eco_provider": "The Green Web Foundation",
|
||||
"powered_by": "🚀 Propulsé par",
|
||||
"powered_by_name": "Streamlit"
|
||||
"analyse": {
|
||||
"title": "Analyse du graphe",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Sélectionnez le niveau de départ (produit final, composant ou minerai)",
|
||||
"2. Choisissez le niveau d'arrivée souhaité",
|
||||
"3. Affinez votre sélection en spécifiant soit un ou des minerais à cibler spécifiquement ou des items précis à chaque niveau (optionnel)",
|
||||
"4. Définissez les critères d'analyse en sélectionnant les indices de vulnérabilité pertinents",
|
||||
"5. Choisissez le mode de combinaison des indices (ET/OU) selon votre besoin d'analyse",
|
||||
"6. Explorez le graphique généré en utilisant les contrôles de zoom et de déplacement ; vous pouvez basculer en mode plein écran pour le graphe"
|
||||
],
|
||||
"selection_nodes": "Sélection des nœuds de départ et d'arrivée",
|
||||
"select_level": "-- Sélectionner un niveau --",
|
||||
"start_level": "Niveau de départ",
|
||||
"end_level": "Niveau d'arrivée",
|
||||
"select_minerals": "Sélectionner un ou plusieurs minerais",
|
||||
"filter_by_minerals": "Filtrer par minerais (optionnel)",
|
||||
"fine_selection": "Sélection fine des items",
|
||||
"filter_start_nodes": "Filtrer par noeuds de départ (optionnel)",
|
||||
"filter_end_nodes": "Filtrer par noeuds d'arrivée (optionnel)",
|
||||
"vulnerability_filters": "Sélection des filtres pour identifier les vulnérabilités",
|
||||
"filter_ics": "Filtrer les chemins contenant au moins minerai critique pour un composant (ICS > 66 %)",
|
||||
"filter_ivc": "Filtrer les chemins contenant au moins un minerai critique par rapport à la concurrence sectorielle (IVC > 30)",
|
||||
"filter_ihh": "Filtrer les chemins contenant au moins une opération critique par rapport à la concentration géographique ou industrielle (IHH pays ou acteurs > 25)",
|
||||
"apply_ihh_filter": "Appliquer le filtre IHH sur :",
|
||||
"countries": "Pays",
|
||||
"actors": "Acteurs",
|
||||
"filter_isg": "Filtrer les chemins contenant un pays instable (ISG ≥ 60)",
|
||||
"filter_logic": "Logique de filtrage",
|
||||
"or": "OU",
|
||||
"and": "ET",
|
||||
"run_analysis": "Lancer l'analyse",
|
||||
"sankey": {
|
||||
"no_paths": "Aucun chemin trouvé pour les critères spécifiés.",
|
||||
"no_matching_paths": "Aucun chemin ne correspond aux critères.",
|
||||
"filtered_hierarchy": "Hiérarchie filtrée par niveaux et noeuds",
|
||||
"download_dot": "Télécharger le fichier DOT filtré",
|
||||
"relation": "Relation"
|
||||
}
|
||||
},
|
||||
"sidebar": {
|
||||
"menu": "Menu principal",
|
||||
"navigation": "Navigation principale",
|
||||
"theme": "Thème",
|
||||
"theme_light": "Clair",
|
||||
"theme_dark": "Sombre",
|
||||
"theme_instructions_only": "Le changement de thème ne peut se faire que depuis l'onglet Instructions.",
|
||||
"impact": "Impact environnemental",
|
||||
"loading": "Chargement en cours…"
|
||||
"ia_nalyse": {
|
||||
"title": "Analyse du graphe par IA",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"Le graphe intègre l'ensemble des niveaux, des produits finaux aux pays géographiques.\n",
|
||||
"1. Vous pouvez sélectionner des minerais par lesquels passent les chemins.",
|
||||
"2. Vous pouvez choisir des produits finaux pour faire une analyse adaptée à votre contexte.\n",
|
||||
" Ces deux sélections sont optionnelles, mais fortement recommandées pour avoir une meilleure pertinence de l'analyse.",
|
||||
"L'analyse se réalise à l'aide d'une IA privée, sur un serveur minimaliste. Le résultat n'est donc pas immédiat (ordre de grandeur : 30 minutes) et vous serez informé de l'avancement."
|
||||
],
|
||||
"select_minerals": "Sélectionner un ou plusieurs minerais",
|
||||
"filter_by_minerals": "Filtrer par minerais (optionnel, mais recommandé)",
|
||||
"fine_selection": "Sélection des produits finaux",
|
||||
"filter_start_nodes": "Filtrer par noeuds de départ (optionnel, mais recommandé)",
|
||||
"run_analysis": "Lancer l'analyse",
|
||||
"confirm_download": "Confirmer le téléchargement",
|
||||
"submit_request": "Soumettre votre demande",
|
||||
"empty_graph": "Le graphe est vide. Veuillez faire une autre sélection."
|
||||
},
|
||||
"auth": {
|
||||
"title": "Authentification",
|
||||
"username": "Identifiant_token",
|
||||
"token": "Token d'accès personnel Gitea",
|
||||
"login": "Se connecter",
|
||||
"logout": "Se déconnecter",
|
||||
"logged_as": "Connecté en tant que",
|
||||
"error": "❌ Accès refusé.",
|
||||
"gitea_error": "❌ Impossible de vérifier l'utilisateur auprès de Gitea.",
|
||||
"success": "Déconnecté avec succès."
|
||||
"plan_d_action": {
|
||||
"title": "Analyse du graphe pour action",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"Le graphe intègre l'ensemble des niveaux, des produits finaux aux pays géographiques.\n",
|
||||
"1. Vous pouvez sélectionner des minerais par lesquels passent les chemins.",
|
||||
"2. Vous pouvez choisir des produits finaux pour faire une analyse adaptée à votre contexte.\n",
|
||||
" Ces deux sélections sont optionnelles, mais fortement recommandées pour avoir une meilleure pertinence de l'analyse.",
|
||||
"Les préconisations d'actions et de suivi d'indicateurs sont génériques. Elles doivent donc être adaptées au contexte.",
|
||||
"Les actions ou les indicateurs proposés dépendent du type d'organisation concernée et peuvent être appliquées directement ou exigées des fournisseurs de numérique."
|
||||
],
|
||||
"select_minerals": "Sélectionner un ou plusieurs minerais",
|
||||
"filter_by_minerals": "Filtrer par minerais (optionnel, mais recommandé)",
|
||||
"fine_selection": "Sélection des produits finaux",
|
||||
"filter_start_nodes": "Filtrer par noeuds de départ",
|
||||
"run_analysis": "Lancer l'analyse",
|
||||
"confirm_download": "Confirmer le téléchargement",
|
||||
"submit_request": "Soumettre votre demande",
|
||||
"empty_graph": "Le graphe est vide. Veuillez faire une autre sélection."
|
||||
},
|
||||
"navigation": {
|
||||
"instructions": "Instructions",
|
||||
"personnalisation": "Personnalisation",
|
||||
"analyse": "Analyse",
|
||||
"ia_nalyse": "IA'nalyse",
|
||||
"plan_d_action": "Plan d'action",
|
||||
"visualisations": "Visualisations",
|
||||
"fiches": "Fiches"
|
||||
"visualisations": {
|
||||
"title": "Visualisations",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Explorez les graphiques présentant l'Indice de Herfindahl-Hirschmann (IHH)",
|
||||
"2. Analysez sa relation avec la criticité moyenne des minerais ou leur Indice de Vulnérabilité Concurrentielle (IVC)",
|
||||
"3. Zoomer dans les graphes pour mieux découvrir les informations",
|
||||
"",
|
||||
"Il est important de se rappeler que l'IHH a deux seuils :",
|
||||
"* en-dessous de 15, la concentration est considérée comme étant faible",
|
||||
"* au-dessus de 25, elle est considérée comme étant forte",
|
||||
"",
|
||||
"Ainsi plus le positionnement d'un point est en haut à droite des graphiques, plus les risques sont élevés.",
|
||||
"Les graphiques présentent 2 droites horizontales et vetrticales pour matérialiser ces seuils."
|
||||
],
|
||||
"ihh_criticality": "Indice de Herfindahl-Hirschmann - IHH vs Criticité",
|
||||
"ihh_criticality_desc": "La taille des points donne l'indication de la criticité de substituabilité du minerai.",
|
||||
"ihh_ivc": "Indice de Herfindahl-Hirschmann - IHH vs IVC",
|
||||
"ihh_ivc_desc": "La taille des points donne l'indication de la criticité concurrentielle du minerai.",
|
||||
"launch": "Lancer",
|
||||
"no_data": "Aucune donnée à visualiser.",
|
||||
"categories": {
|
||||
"assembly": "Assemblage",
|
||||
"manufacturing": "Fabrication",
|
||||
"processing": "Traitement",
|
||||
"extraction": "Extraction"
|
||||
},
|
||||
"axis_titles": {
|
||||
"ihh_countries": "IHH Pays (%)",
|
||||
"ihh_actors": "IHH Acteurs (%)",
|
||||
"ihh_extraction": "IHH Extraction (%)",
|
||||
"ihh_reserves": "IHH Réserves (%)"
|
||||
},
|
||||
"chart_titles": {
|
||||
"concentration_criticality": "Concentration et criticité – {0}",
|
||||
"concentration_resources": "Concentration des ressources critiques vs vulnérabilité IVC"
|
||||
}
|
||||
},
|
||||
"pages": {
|
||||
"instructions": {
|
||||
"title": "Instructions"
|
||||
},
|
||||
"personnalisation": {
|
||||
"title": "Personnalisation des produits finaux",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Cliquez sur « Ajouter un produit final » pour créer un nouveau produit",
|
||||
"2. Donnez un nom à votre produit",
|
||||
"3. Sélectionnez une opération d'assemblage appropriée (si pertinent)",
|
||||
"4. Choisissez les composants qui constituent votre produit dans la liste proposée",
|
||||
"5. Sauvegardez votre configuration pour une réutilisation future",
|
||||
"6. Vous pourrez par la suite modifier ou supprimer vos produits personnalisés"
|
||||
],
|
||||
"add_new_product": "Ajouter un nouveau produit final",
|
||||
"new_product_name": "Nom du nouveau produit (unique)",
|
||||
"assembly_operation": "Opération d'assemblage (optionnelle)",
|
||||
"product_exists": "Ce produit existe déjà.",
|
||||
"none": "-- Aucune --",
|
||||
"components_to_link": "Composants à lier",
|
||||
"create_product": "Créer le produit",
|
||||
"added": "ajouté",
|
||||
"modify_product": "Modifier un produit final ajouté",
|
||||
"products_to_modify": "Produits à modifier",
|
||||
"delete": "Supprimer",
|
||||
"linked_assembly_operation": "Opération d'assemblage liée",
|
||||
"components_linked_to": "Composants liés à",
|
||||
"update": "Mettre à jour",
|
||||
"updated": "mis à jour",
|
||||
"deleted": "supprimé",
|
||||
"save_restore_config": "Sauvegarder ou restaurer la configuration",
|
||||
"export_config": "Exporter configuration",
|
||||
"download_json": "Télécharger (JSON)",
|
||||
"import_config": "Importer une configuration JSON (max 100 Ko)",
|
||||
"file_too_large": "Fichier trop volumineux (max 100 Ko).",
|
||||
"no_products_found": "Aucun produit trouvé dans le fichier.",
|
||||
"select_products_to_restore": "Sélection des produits à restaurer",
|
||||
"products_to_restore": "Produits à restaurer",
|
||||
"restore_selected": "Restaurer les éléments sélectionnés",
|
||||
"config_restored": "Configuration partielle restaurée avec succès.",
|
||||
"import_error": "Erreur d'import :"
|
||||
},
|
||||
"analyse": {
|
||||
"title": "Analyse du graphe",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Sélectionnez le niveau de départ (produit final, composant ou minerai)",
|
||||
"2. Choisissez le niveau d'arrivée souhaité",
|
||||
"3. Affinez votre sélection en spécifiant soit un ou des minerais à cibler spécifiquement ou des items précis à chaque niveau (optionnel)",
|
||||
"4. Définissez les critères d'analyse en sélectionnant les indices de vulnérabilité pertinents",
|
||||
"5. Choisissez le mode de combinaison des indices (ET/OU) selon votre besoin d'analyse",
|
||||
"6. Explorez le graphique généré en utilisant les contrôles de zoom et de déplacement ; vous pouvez basculer en mode plein écran pour le graphe"
|
||||
],
|
||||
"selection_nodes": "Sélection des nœuds de départ et d'arrivée",
|
||||
"select_level": "-- Sélectionner un niveau --",
|
||||
"start_level": "Niveau de départ",
|
||||
"end_level": "Niveau d'arrivée",
|
||||
"select_minerals": "Sélectionner un ou plusieurs minerais",
|
||||
"filter_by_minerals": "Filtrer par minerais (optionnel)",
|
||||
"fine_selection": "Sélection fine des items",
|
||||
"filter_start_nodes": "Filtrer par noeuds de départ (optionnel)",
|
||||
"filter_end_nodes": "Filtrer par noeuds d'arrivée (optionnel)",
|
||||
"vulnerability_filters": "Sélection des filtres pour identifier les vulnérabilités",
|
||||
"filter_ics": "Filtrer les chemins contenant au moins minerai critique pour un composant (ICS > 66 %)",
|
||||
"filter_ivc": "Filtrer les chemins contenant au moins un minerai critique par rapport à la concurrence sectorielle (IVC > 30)",
|
||||
"filter_ihh": "Filtrer les chemins contenant au moins une opération critique par rapport à la concentration géographique ou industrielle (IHH pays ou acteurs > 25)",
|
||||
"apply_ihh_filter": "Appliquer le filtre IHH sur :",
|
||||
"countries": "Pays",
|
||||
"actors": "Acteurs",
|
||||
"filter_isg": "Filtrer les chemins contenant un pays instable (ISG ≥ 60)",
|
||||
"filter_logic": "Logique de filtrage",
|
||||
"or": "OU",
|
||||
"and": "ET",
|
||||
"run_analysis": "Lancer l'analyse",
|
||||
"sankey": {
|
||||
"no_paths": "Aucun chemin trouvé pour les critères spécifiés.",
|
||||
"no_matching_paths": "Aucun chemin ne correspond aux critères.",
|
||||
"filtered_hierarchy": "Hiérarchie filtrée par niveaux et noeuds",
|
||||
"download_dot": "Télécharger le fichier DOT filtré",
|
||||
"relation": "Relation"
|
||||
}
|
||||
},
|
||||
"ia_nalyse": {
|
||||
"title": "Analyse du graphe par IA",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"Le graphe intègre l'ensemble des niveaux, des produits finaux aux pays géographiques.\n",
|
||||
"1. Vous pouvez sélectionner des minerais par lesquels passent les chemins.",
|
||||
"2. Vous pouvez choisir des produits finaux pour faire une analyse adaptée à votre contexte.\n",
|
||||
" Ces deux sélections sont optionnelles, mais fortement recommandées pour avoir une meilleure pertinence de l'analyse.",
|
||||
"L'analyse se réalise à l'aide d'une IA privée, sur un serveur minimaliste. Le résultat n'est donc pas immédiat (ordre de grandeur : 30 minutes) et vous serez informé de l'avancement."
|
||||
],
|
||||
"select_minerals": "Sélectionner un ou plusieurs minerais",
|
||||
"filter_by_minerals": "Filtrer par minerais (optionnel, mais recommandé)",
|
||||
"fine_selection": "Sélection des produits finaux",
|
||||
"filter_start_nodes": "Filtrer par noeuds de départ (optionnel, mais recommandé)",
|
||||
"run_analysis": "Lancer l'analyse",
|
||||
"confirm_download": "Confirmer le téléchargement",
|
||||
"submit_request": "Soumettre votre demande",
|
||||
"empty_graph": "Le graphe est vide. Veuillez faire une autre sélection."
|
||||
},
|
||||
"plan_d_action": {
|
||||
"title": "Analyse du graphe pour action",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"Le graphe intègre l'ensemble des niveaux, des produits finaux aux pays géographiques.\n",
|
||||
"1. Vous pouvez sélectionner des minerais par lesquels passent les chemins.",
|
||||
"2. Vous pouvez choisir des produits finaux pour faire une analyse adaptée à votre contexte.\n",
|
||||
" Ces deux sélections sont optionnelles, mais fortement recommandées pour avoir une meilleure pertinence de l'analyse.",
|
||||
"Les préconisations d'actions et de suivi d'indicateurs sont génériques. Elles doivent donc être adaptées au contexte.",
|
||||
"Les actions ou les indicateurs proposés dépendent du type d'organisation concernée et peuvent être appliquées directement ou exigées des fournisseurs de numérique."
|
||||
],
|
||||
"select_minerals": "Sélectionner un ou plusieurs minerais",
|
||||
"filter_by_minerals": "Filtrer par minerais (optionnel, mais recommandé)",
|
||||
"fine_selection": "Sélection des produits finaux",
|
||||
"filter_start_nodes": "Filtrer par noeuds de départ",
|
||||
"run_analysis": "Lancer l'analyse",
|
||||
"confirm_download": "Confirmer le téléchargement",
|
||||
"submit_request": "Soumettre votre demande",
|
||||
"empty_graph": "Le graphe est vide. Veuillez faire une autre sélection."
|
||||
},
|
||||
"visualisations": {
|
||||
"title": "Visualisations",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Explorez les graphiques présentant l'Indice de Herfindahl-Hirschmann (IHH)",
|
||||
"2. Analysez sa relation avec la criticité moyenne des minerais ou leur Indice de Vulnérabilité Concurrentielle (IVC)",
|
||||
"3. Zoomer dans les graphes pour mieux découvrir les informations",
|
||||
"",
|
||||
"Il est important de se rappeler que l'IHH a deux seuils :",
|
||||
"* en-dessous de 15, la concentration est considérée comme étant faible",
|
||||
"* au-dessus de 25, elle est considérée comme étant forte",
|
||||
"",
|
||||
"Ainsi plus le positionnement d'un point est en haut à droite des graphiques, plus les risques sont élevés.",
|
||||
"Les graphiques présentent 2 droites horizontales et vetrticales pour matérialiser ces seuils."
|
||||
],
|
||||
"ihh_criticality": "Indice de Herfindahl-Hirschmann - IHH vs Criticité",
|
||||
"ihh_criticality_desc": "La taille des points donne l'indication de la criticité de substituabilité du minerai.",
|
||||
"ihh_ivc": "Indice de Herfindahl-Hirschmann - IHH vs IVC",
|
||||
"ihh_ivc_desc": "La taille des points donne l'indication de la criticité concurrentielle du minerai.",
|
||||
"launch": "Lancer",
|
||||
"no_data": "Aucune donnée à visualiser.",
|
||||
"categories": {
|
||||
"assembly": "Assemblage",
|
||||
"manufacturing": "Fabrication",
|
||||
"processing": "Traitement",
|
||||
"extraction": "Extraction"
|
||||
},
|
||||
"axis_titles": {
|
||||
"ihh_countries": "IHH Pays (%)",
|
||||
"ihh_actors": "IHH Acteurs (%)",
|
||||
"ihh_extraction": "IHH Extraction (%)",
|
||||
"ihh_reserves": "IHH Réserves (%)"
|
||||
},
|
||||
"chart_titles": {
|
||||
"concentration_criticality": "Concentration et criticité – {0}",
|
||||
"concentration_resources": "Concentration des ressources critiques vs vulnérabilité IVC"
|
||||
}
|
||||
},
|
||||
"fiches": {
|
||||
"title": "Découverte des fiches",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Parcourez la liste des fiches disponibles par catégorie",
|
||||
"2. Sélectionnez une fiche pour afficher son contenu complet",
|
||||
"3. Consultez les données détaillées, graphiques et analyses supplémentaires",
|
||||
"4. Utilisez ces informations pour approfondir votre compréhension des vulnérabilités identifiées",
|
||||
"",
|
||||
"Les catégories sont les suivantes :",
|
||||
"* Assemblage : opération d'assemblage des produits finaux à partir des composants",
|
||||
"* Connexe : opérations diverses nécessaires pour fabriquer le numérique, mais n'entrant pas directement dans sa composition",
|
||||
"* Criticités : indices utilisés pour identifier et évaluer les vulnérabilités",
|
||||
"* Fabrication : opération de fabrication des composants à partir de minerais",
|
||||
"* Minerai : description et opérations d'extraction et de traitement des minerais"
|
||||
],
|
||||
"no_files": "Aucune fiche disponible pour le moment.",
|
||||
"choose_category": "Choisissez une catégorie de fiches",
|
||||
"select_folder": "-- Sélectionner un dossier --",
|
||||
"choose_file": "Choisissez une fiche",
|
||||
"select_file": "-- Sélectionner une fiche --",
|
||||
"loading_error": "Erreur lors du chargement de la fiche :",
|
||||
"download_pdf": "Télécharger cette fiche en PDF",
|
||||
"pdf_unavailable": "Le fichier PDF de cette fiche n'est pas disponible.",
|
||||
"ticket_management": "Gestion des tickets pour cette fiche",
|
||||
"tickets": {
|
||||
"create_new": "Créer un nouveau ticket lié à cette fiche",
|
||||
"model_load_error": "Impossible de charger le modèle de ticket.",
|
||||
"contribution_type": "Type de contribution",
|
||||
"specify": "Précisez",
|
||||
"other": "Autre",
|
||||
"concerned_card": "Fiche concernée",
|
||||
"subject": "Sujet de la proposition",
|
||||
"preview": "Prévisualiser le ticket",
|
||||
"cancel": "Annuler",
|
||||
"preview_title": "Prévisualisation du ticket",
|
||||
"summary": "Résumé",
|
||||
"title": "Titre",
|
||||
"labels": "Labels",
|
||||
"confirm": "Confirmer la création du ticket",
|
||||
"created": "Ticket créé et formulaire vidé.",
|
||||
"model_error": "Erreur chargement modèle :",
|
||||
"no_linked_tickets": "Aucun ticket lié à cette fiche.",
|
||||
"associated_tickets": "Tickets associés à cette fiche",
|
||||
"moderation_notice": "ticket(s) en attente de modération ne sont pas affichés.",
|
||||
"status": {
|
||||
"awaiting": "En attente de traitement",
|
||||
"in_progress": "En cours",
|
||||
"completed": "Terminés",
|
||||
"rejected": "Non retenus",
|
||||
"others": "Autres"
|
||||
},
|
||||
"no_title": "Sans titre",
|
||||
"unknown": "inconnu",
|
||||
"subject_label": "Sujet",
|
||||
"no_labels": "aucun",
|
||||
"comments": "Commentaire(s) :",
|
||||
"no_comments": "Aucun commentaire.",
|
||||
"comment_error": "Erreur lors de la récupération des commentaires :",
|
||||
"opened_by": "Ouvert par",
|
||||
"on_date": "le",
|
||||
"updated": "MAJ",
|
||||
"continue": "Continuer",
|
||||
"created_success": "Ticket créé et placé en modération",
|
||||
"created_error": "Échec de la création du ticket. Veuillez réessayer plus tard",
|
||||
"see_ticket": "Voir le ticket"
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_levels": {
|
||||
"0": "Produit final",
|
||||
"1": "Composant",
|
||||
"2": "Minerai",
|
||||
"10": "Opération",
|
||||
"11": "Pays d'opération",
|
||||
"12": "Acteur d'opération",
|
||||
"99": "Pays géographique"
|
||||
},
|
||||
"errors": {
|
||||
"log_read_error": "Erreur lecture log:",
|
||||
"graph_preview_error": "Erreur de prévisualisation du graphe :",
|
||||
"graph_creation_error": "Erreur lors de la création du graphique :",
|
||||
"ihh_criticality_error": "Erreur dans la visualisation IHH vs Criticité :",
|
||||
"ihh_ivc_error": "Erreur dans la visualisation IHH vs IVC :",
|
||||
"comment_fetch_error": "Erreur lors de la récupération des commentaires :",
|
||||
"template_load_error": "Erreur chargement modèle :",
|
||||
"import_error": "Erreur d'import :"
|
||||
},
|
||||
"buttons": {
|
||||
"download": "Télécharger",
|
||||
"run": "Lancer",
|
||||
"save": "Enregistrer",
|
||||
"fiches": {
|
||||
"title": "Découverte des fiches",
|
||||
"help": "Comment utiliser cet onglet ?",
|
||||
"help_content": [
|
||||
"1. Parcourez la liste des fiches disponibles par catégorie",
|
||||
"2. Sélectionnez une fiche pour afficher son contenu complet",
|
||||
"3. Consultez les données détaillées, graphiques et analyses supplémentaires",
|
||||
"4. Utilisez ces informations pour approfondir votre compréhension des vulnérabilités identifiées",
|
||||
"",
|
||||
"Les catégories sont les suivantes :",
|
||||
"* Assemblage : opération d'assemblage des produits finaux à partir des composants",
|
||||
"* Connexe : opérations diverses nécessaires pour fabriquer le numérique, mais n'entrant pas directement dans sa composition",
|
||||
"* Criticités : indices utilisés pour identifier et évaluer les vulnérabilités",
|
||||
"* Fabrication : opération de fabrication des composants à partir de minerais",
|
||||
"* Minerai : description et opérations d'extraction et de traitement des minerais"
|
||||
],
|
||||
"no_files": "Aucune fiche disponible pour le moment.",
|
||||
"choose_category": "Choisissez une catégorie de fiches",
|
||||
"select_folder": "-- Sélectionner un dossier --",
|
||||
"choose_file": "Choisissez une fiche",
|
||||
"select_file": "-- Sélectionner une fiche --",
|
||||
"loading_error": "Erreur lors du chargement de la fiche :",
|
||||
"download_pdf": "Télécharger cette fiche en PDF",
|
||||
"pdf_unavailable": "Le fichier PDF de cette fiche n'est pas disponible.",
|
||||
"ticket_management": "Gestion des tickets pour cette fiche",
|
||||
"tickets": {
|
||||
"create_new": "Créer un nouveau ticket lié à cette fiche",
|
||||
"model_load_error": "Impossible de charger le modèle de ticket.",
|
||||
"contribution_type": "Type de contribution",
|
||||
"specify": "Précisez",
|
||||
"other": "Autre",
|
||||
"concerned_card": "Fiche concernée",
|
||||
"subject": "Sujet de la proposition",
|
||||
"preview": "Prévisualiser le ticket",
|
||||
"cancel": "Annuler",
|
||||
"confirm": "Confirmer",
|
||||
"filter": "Filtrer",
|
||||
"search": "Rechercher",
|
||||
"create": "Créer",
|
||||
"update": "Mettre à jour",
|
||||
"delete": "Supprimer",
|
||||
"preview": "Prévisualiser",
|
||||
"export": "Exporter",
|
||||
"import": "Importer",
|
||||
"restore": "Restaurer",
|
||||
"refresh": "Rafraîchir",
|
||||
"browse_files": "Parcourir les fichiers"
|
||||
},
|
||||
"ui": {
|
||||
"file_uploader": {
|
||||
"drag_drop_here": "Glissez-déposez votre fichier ici",
|
||||
"size_limit": "Limite 100 Ko par fichier • JSON"
|
||||
}
|
||||
},
|
||||
"batch": {
|
||||
"in_queue": "En attente",
|
||||
"in_progress": "Analyse en cours",
|
||||
"failure": "Échec",
|
||||
"unknwon_error": "erreur inconnue",
|
||||
"no_task": "Aucune tâche en attente ou en cours",
|
||||
"complete": "Analyse terminée. Télécharger le résultat au format zip, qui contient le rapport détaillé et l'analyse.",
|
||||
"step": "Étape"
|
||||
"preview_title": "Prévisualisation du ticket",
|
||||
"summary": "Résumé",
|
||||
"title": "Titre",
|
||||
"labels": "Labels",
|
||||
"confirm": "Confirmer la création du ticket",
|
||||
"created": "Ticket créé et formulaire vidé.",
|
||||
"model_error": "Erreur chargement modèle :",
|
||||
"no_linked_tickets": "Aucun ticket lié à cette fiche.",
|
||||
"associated_tickets": "Tickets associés à cette fiche",
|
||||
"moderation_notice": "ticket(s) en attente de modération ne sont pas affichés.",
|
||||
"status": {
|
||||
"awaiting": "En attente de traitement",
|
||||
"in_progress": "En cours",
|
||||
"completed": "Terminés",
|
||||
"rejected": "Non retenus",
|
||||
"others": "Autres"
|
||||
},
|
||||
"no_title": "Sans titre",
|
||||
"unknown": "inconnu",
|
||||
"subject_label": "Sujet",
|
||||
"no_labels": "aucun",
|
||||
"comments": "Commentaire(s) :",
|
||||
"no_comments": "Aucun commentaire.",
|
||||
"comment_error": "Erreur lors de la récupération des commentaires :",
|
||||
"opened_by": "Ouvert par",
|
||||
"on_date": "le",
|
||||
"updated": "MAJ",
|
||||
"continue": "Continuer",
|
||||
"created_success": "Ticket créé et placé en modération",
|
||||
"created_error": "Échec de la création du ticket. Veuillez réessayer plus tard",
|
||||
"see_ticket": "Voir le ticket"
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_levels": {
|
||||
"0": "Produit final",
|
||||
"1": "Composant",
|
||||
"2": "Minerai",
|
||||
"10": "Opération",
|
||||
"11": "Pays d'opération",
|
||||
"12": "Acteur d'opération",
|
||||
"99": "Pays géographique"
|
||||
},
|
||||
"errors": {
|
||||
"log_read_error": "Erreur lecture log:",
|
||||
"graph_preview_error": "Erreur de prévisualisation du graphe :",
|
||||
"graph_creation_error": "Erreur lors de la création du graphique :",
|
||||
"ihh_criticality_error": "Erreur dans la visualisation IHH vs Criticité :",
|
||||
"ihh_ivc_error": "Erreur dans la visualisation IHH vs IVC :",
|
||||
"comment_fetch_error": "Erreur lors de la récupération des commentaires :",
|
||||
"template_load_error": "Erreur chargement modèle :",
|
||||
"import_error": "Erreur d'import :"
|
||||
},
|
||||
"buttons": {
|
||||
"download": "Télécharger",
|
||||
"run": "Lancer",
|
||||
"save": "Enregistrer",
|
||||
"cancel": "Annuler",
|
||||
"confirm": "Confirmer",
|
||||
"filter": "Filtrer",
|
||||
"search": "Rechercher",
|
||||
"create": "Créer",
|
||||
"update": "Mettre à jour",
|
||||
"delete": "Supprimer",
|
||||
"preview": "Prévisualiser",
|
||||
"export": "Exporter",
|
||||
"import": "Importer",
|
||||
"restore": "Restaurer",
|
||||
"refresh": "Rafraîchir",
|
||||
"browse_files": "Parcourir les fichiers"
|
||||
},
|
||||
"ui": {
|
||||
"file_uploader": {
|
||||
"drag_drop_here": "Glissez-déposez votre fichier ici",
|
||||
"size_limit": "Limite 100 Ko par fichier • JSON"
|
||||
}
|
||||
},
|
||||
"batch": {
|
||||
"in_queue": "En attente",
|
||||
"in_progress": "Analyse en cours",
|
||||
"failure": "Échec",
|
||||
"unknwon_error": "erreur inconnue",
|
||||
"no_task": "Aucune tâche en attente ou en cours",
|
||||
"complete": "Analyse terminée. Télécharger le résultat au format zip, qui contient le rapport détaillé et l'analyse.",
|
||||
"step": "Étape"
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,33 +4,33 @@
|
||||
1. Reset et base
|
||||
========================================== */
|
||||
.stAppHeader {
|
||||
visibility: hidden;
|
||||
visibility: hidden;
|
||||
}
|
||||
|
||||
body,
|
||||
html {
|
||||
font-family:
|
||||
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
|
||||
sans-serif;
|
||||
font-family:
|
||||
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial,
|
||||
sans-serif;
|
||||
}
|
||||
|
||||
body,
|
||||
.stApp,
|
||||
.block-container {
|
||||
background-color: var(--bg-color) !important;
|
||||
color: var(--text-color) !important;
|
||||
background-color: var(--bg-color) !important;
|
||||
color: var(--text-color) !important;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
2. Layout et containers
|
||||
========================================== */
|
||||
.block-container {
|
||||
max-width: 1024px !important;
|
||||
padding: 0 1rem 10rem;
|
||||
max-width: 1024px !important;
|
||||
padding: 0 1rem 10rem;
|
||||
}
|
||||
|
||||
.stVerticalBlock {
|
||||
gap: 0.5rem !important;
|
||||
gap: 0.5rem !important;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
@ -42,97 +42,97 @@ body,
|
||||
.stDownloadButton > button,
|
||||
.stFormSubmitButton > button,
|
||||
.stSlider > div > div {
|
||||
background-color: darkgreen !important;
|
||||
color: white !important;
|
||||
border: 1px solid grey;
|
||||
background-color: #072c6e !important;
|
||||
color: white !important;
|
||||
border: 1px solid grey;
|
||||
}
|
||||
|
||||
.st-key-FormSubmitter-auth_form-Se-connecter {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"])
|
||||
button[data-testid="stBaseButton-primary"],
|
||||
button[data-testid="stBaseButton-primary"],
|
||||
section:not([data-testid="stSidebar"])
|
||||
button[data-testid="stBaseButton-secondary"] {
|
||||
color: white !important;
|
||||
background: darkgreen !important;
|
||||
button[data-testid="stBaseButton-secondary"] {
|
||||
color: white !important;
|
||||
background: #072c6e !important;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"])
|
||||
button[data-testid="stBaseButton-primary"]
|
||||
p,
|
||||
button[data-testid="stBaseButton-primary"]
|
||||
p,
|
||||
section:not([data-testid="stSidebar"])
|
||||
button[data-testid="stBaseButton-secondary"]
|
||||
p {
|
||||
color: white !important;
|
||||
button[data-testid="stBaseButton-secondary"]
|
||||
p {
|
||||
color: white !important;
|
||||
}
|
||||
|
||||
.bouton-fictif {
|
||||
display: inline-flex;
|
||||
-moz-box-align: center;
|
||||
align-items: center;
|
||||
-moz-box-pack: center;
|
||||
justify-content: center;
|
||||
padding: 0.25rem 0.75rem;
|
||||
border-radius: 0.5rem;
|
||||
min-height: 2.5rem;
|
||||
margin-bottom: 20px;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
font-size: x-large;
|
||||
font-family: inherit;
|
||||
user-select: none;
|
||||
border: 1px solid rgba(49, 51, 63, 0.2);
|
||||
background-color: darkgrey !important;
|
||||
color: darkgreen !important;
|
||||
font-weight: bold !important;
|
||||
width: 100%;
|
||||
letter-spacing: 0.2em;
|
||||
display: inline-flex;
|
||||
-moz-box-align: center;
|
||||
align-items: center;
|
||||
-moz-box-pack: center;
|
||||
justify-content: center;
|
||||
padding: 0.25rem 0.75rem;
|
||||
border-radius: 0.5rem;
|
||||
min-height: 2.5rem;
|
||||
margin-bottom: 20px;
|
||||
line-height: 1;
|
||||
text-transform: none;
|
||||
font-size: x-large;
|
||||
font-family: inherit;
|
||||
user-select: none;
|
||||
border: 1px solid rgba(49, 51, 63, 0.2);
|
||||
background-color: darkgrey !important;
|
||||
color: #072c6e !important;
|
||||
font-weight: bold !important;
|
||||
width: 100%;
|
||||
letter-spacing: 0.2em;
|
||||
}
|
||||
|
||||
button[data-testid="stBaseButton-headerNoPadding"] svg {
|
||||
fill: var(--text-color) !important;
|
||||
fill: var(--text-color) !important;
|
||||
}
|
||||
|
||||
/* --- 3.2 Onglets et radiogroup --- */
|
||||
div[role="radiogroup"] > label {
|
||||
padding: 0.5em 1em;
|
||||
border-radius: 0.4em;
|
||||
margin-right: 0.5em;
|
||||
cursor: pointer;
|
||||
border: 1px solid #fff;
|
||||
padding: 0.5em 1em;
|
||||
border-radius: 0.4em;
|
||||
margin-right: 0.5em;
|
||||
cursor: pointer;
|
||||
border: 1px solid #fff;
|
||||
}
|
||||
|
||||
div[role="radiogroup"] > label[data-selected="true"] {
|
||||
font-weight: bold;
|
||||
border: 2px solid #145a1a;
|
||||
font-weight: bold;
|
||||
border: 2px solid #145a1a;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"]) div[role="radiogroup"] > label p {
|
||||
background-color: var(--radio-bg) !important;
|
||||
color: var(--radio-text) !important;
|
||||
background-color: var(--radio-bg) !important;
|
||||
color: var(--radio-text) !important;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"])
|
||||
div[role="radiogroup"]
|
||||
> label[data-selected="true"] {
|
||||
background-color: var(--radio-selected-bg) !important;
|
||||
color: var(--radio-selected-text) !important;
|
||||
div[role="radiogroup"]
|
||||
> label[data-selected="true"] {
|
||||
background-color: var(--radio-selected-bg) !important;
|
||||
color: var(--radio-selected-text) !important;
|
||||
}
|
||||
|
||||
/* --- 3.3 Champs de formulaire --- */
|
||||
div[data-baseweb="select"],
|
||||
section:not([data-testid="stSidebar"]) div[data-baseweb="base-input"],
|
||||
section[data-testid="stFileUploaderDropzone"] {
|
||||
border: 1px solid var(--input-border) !important;
|
||||
border-radius: 5px;
|
||||
padding: 4px;
|
||||
border: 1px solid var(--input-border) !important;
|
||||
border-radius: 5px;
|
||||
padding: 4px;
|
||||
}
|
||||
|
||||
small {
|
||||
display: none;
|
||||
display: none;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"]) div[data-testid="stSelectbox"] p,
|
||||
@ -142,7 +142,7 @@ section:not([data-testid="stSidebar"]) div[data-testid="stCheckbox"] p,
|
||||
section:not([data-testid="stSidebar"]) div[data-testid="stTextInput"] p,
|
||||
section:not([data-testid="stSidebar"]) div[data-testid="stTextArea"] p,
|
||||
section:not([data-testid="stSidebar"]) div[data-testid="stAlertContentInfo"] p {
|
||||
color: var(--text-color) !important;
|
||||
color: var(--text-color) !important;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
@ -151,98 +151,98 @@ section:not([data-testid="stSidebar"]) div[data-testid="stAlertContentInfo"] p {
|
||||
|
||||
/* --- 4.1 Header --- */
|
||||
.wide-header {
|
||||
width: 100vw;
|
||||
margin-left: calc(-50vw + 50%);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid #ddd;
|
||||
text-align: center;
|
||||
padding-top: 1rem;
|
||||
margin-top: -1.25em;
|
||||
background-color: var(--header-bg);
|
||||
width: 100vw;
|
||||
margin-left: calc(-50vw + 50%);
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
border-bottom: 1px solid #ddd;
|
||||
text-align: center;
|
||||
padding-top: 1rem;
|
||||
margin-top: -1.25em;
|
||||
background-color: var(--header-bg);
|
||||
}
|
||||
|
||||
.titre-header {
|
||||
font-size: 2rem !important;
|
||||
font-weight: bolder !important;
|
||||
color: var(--header-title);
|
||||
font-size: 2rem !important;
|
||||
font-weight: bolder !important;
|
||||
color: var(--header-title);
|
||||
}
|
||||
|
||||
/* --- 4.2 Footer --- */
|
||||
.wide-footer {
|
||||
width: 100vw;
|
||||
margin-left: calc(-50vw + 50%);
|
||||
margin-top: 3rem;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid #ddd;
|
||||
text-align: center;
|
||||
padding-top: 1rem;
|
||||
background-color: var(--footer-bg);
|
||||
width: 100vw;
|
||||
margin-left: calc(-50vw + 50%);
|
||||
margin-top: 3rem;
|
||||
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
|
||||
border-top: 1px solid #ddd;
|
||||
text-align: center;
|
||||
padding-top: 1rem;
|
||||
background-color: var(--footer-bg);
|
||||
}
|
||||
|
||||
.info-footer {
|
||||
font-size: 1rem !important;
|
||||
font-weight: 800;
|
||||
color: var(--footer-text);
|
||||
font-size: 1rem !important;
|
||||
font-weight: 800;
|
||||
color: var(--footer-text);
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
5. Sidebar
|
||||
========================================== */
|
||||
section[data-testid="stSidebar"] {
|
||||
background-color: #ccc !important;
|
||||
color: #111 !important;
|
||||
background-color: #ccc !important;
|
||||
color: #111 !important;
|
||||
}
|
||||
|
||||
section[data-testid="stSidebar"] .stButton > button {
|
||||
background-color: darkgreen !important;
|
||||
color: white !important;
|
||||
font-weight: bold !important;
|
||||
border: 1px solid #ccc !important;
|
||||
width: 100%;
|
||||
background-color: #072c6e !important;
|
||||
color: white !important;
|
||||
font-weight: bold !important;
|
||||
border: 1px solid #ccc !important;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
section[data-testid="stSidebar"] .decorative-heading {
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.5rem;
|
||||
text-align: center;
|
||||
color: #145a1a;
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.5rem;
|
||||
text-align: center;
|
||||
color: #072c6e;
|
||||
}
|
||||
|
||||
section[data-testid="stSidebar"] div[role="radiogroup"] {
|
||||
justify-content: center !important;
|
||||
display: flex !important;
|
||||
gap: 1rem;
|
||||
justify-content: center !important;
|
||||
display: flex !important;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
6. Tables
|
||||
========================================== */
|
||||
table {
|
||||
border: 1px solid var(--table-border) !important;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-bottom: 1.5em;
|
||||
border: 1px solid var(--table-border) !important;
|
||||
border-collapse: collapse;
|
||||
width: 100%;
|
||||
margin-bottom: 1.5em;
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
border: 1px solid var(--table-border) !important;
|
||||
padding: 8px;
|
||||
text-align: left;
|
||||
border: 1px solid var(--table-border) !important;
|
||||
padding: 8px;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
caption {
|
||||
caption-side: top;
|
||||
font-weight: bold;
|
||||
padding: 0.5em;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
text-align: center;
|
||||
caption-side: top;
|
||||
font-weight: bold;
|
||||
padding: 0.5em;
|
||||
text-align: left;
|
||||
caption-side: bottom;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
table[role="table"] th[scope="col"] {
|
||||
background-color: var(--background-color);
|
||||
background-color: var(--background-color);
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
@ -254,99 +254,99 @@ table[role="table"] th[scope="col"] {
|
||||
|
||||
/* --- 7.2 Graphiques --- */
|
||||
.stPlotlyChart text {
|
||||
fill: var(--plot-text) !important;
|
||||
fill: var(--plot-text) !important;
|
||||
}
|
||||
|
||||
.stPlotlyChart text {
|
||||
fill: black !important;
|
||||
text-shadow: none !important;
|
||||
font-weight: bold !important;
|
||||
font-size: 14px !important;
|
||||
font-family: Verdana, sans-serif !important;
|
||||
fill: black !important;
|
||||
text-shadow: none !important;
|
||||
font-weight: bold !important;
|
||||
font-size: 14px !important;
|
||||
font-family: Verdana, sans-serif !important;
|
||||
}
|
||||
|
||||
/* Cache complètement la section d'actions Vega */
|
||||
.vega-actions {
|
||||
display: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* Et aussi le <details> parent, s'il faut tout masquer */
|
||||
details[title="Click to view actions"] {
|
||||
display: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
/* --- 7.3 Détails et paragraphes --- */
|
||||
details {
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 6px;
|
||||
padding: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
background-color: var(--background-color);
|
||||
border-color: var(--details-border) !important;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 6px;
|
||||
padding: 0.5em;
|
||||
margin-bottom: 0.5em;
|
||||
background-color: var(--background-color);
|
||||
border-color: var(--details-border) !important;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"])
|
||||
div:not[data-testid="stElementContainer"]
|
||||
p:not(#Authentification):not(#Theme) {
|
||||
color: var(--paragraph-color) !important;
|
||||
div:not[data-testid="stElementContainer"]
|
||||
p:not(#Authentification):not(#Theme) {
|
||||
color: var(--paragraph-color) !important;
|
||||
}
|
||||
|
||||
section:not([data-testid="stSidebar"]) hr {
|
||||
background-color: var(--hr-color) !important;
|
||||
background-color: var(--hr-color) !important;
|
||||
}
|
||||
|
||||
/* --- 7.4 Conteneurs de commentaires et tickets --- */
|
||||
.conteneur_commentaire,
|
||||
.conteneur_ticket {
|
||||
background: var(--background-color);
|
||||
padding: 1em;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 1em;
|
||||
border: 1px solid #ccc;
|
||||
background: var(--background-color);
|
||||
padding: 1em;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 1em;
|
||||
border: 1px solid #ccc;
|
||||
}
|
||||
|
||||
.commentaire_auteur,
|
||||
.ticket_auteur {
|
||||
color: var(--text-color) !important;
|
||||
margin: 0;
|
||||
color: var(--text-color) !important;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.commentaire_contenu,
|
||||
.ticket_contenu {
|
||||
color: var(--text-color) !important;
|
||||
margin: 0.5rem 0 0;
|
||||
color: var(--text-color) !important;
|
||||
margin: 0.5rem 0 0;
|
||||
}
|
||||
|
||||
/* --- 7.5 Blocs mathématiques --- */
|
||||
.math-block {
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 1em 0;
|
||||
border: 1px solid var(--math-block-border);
|
||||
border-radius: 10px;
|
||||
background: var(--math-block-bg);
|
||||
font-size: x-large;
|
||||
color: var(--text-color);
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 1em 0;
|
||||
border: 1px solid var(--math-block-border);
|
||||
border-radius: 10px;
|
||||
background: var(--math-block-bg);
|
||||
font-size: x-large;
|
||||
color: var(--text-color);
|
||||
}
|
||||
|
||||
.math-block math {
|
||||
display: inline-block;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
/* ==========================================
|
||||
8. Éléments spécifiques
|
||||
========================================== */
|
||||
div.stElementContainer.element-container.st-key-nom_utilisateur {
|
||||
display: none !important;
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.st-key-telecharger_fiche_pdf {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 1rem;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.details_introduction {
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
margin-top: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
@ -11,7 +11,9 @@ def afficher_pied_de_page():
|
||||
<div role='contentinfo' aria-labelledby='footer-appli' class='wide-footer'>
|
||||
<div class='info-footer'>
|
||||
<p id='footer-appli' class='info-footer'>
|
||||
{_("footer.copyright")} – <a href='mailto:stephan-pro@peccini.fr'>{_("footer.contact")}</a> – {_("footer.license")} <a href='https://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr' target='_blank'>{_("footer.license_text")}</a>
|
||||
{_("footer.copyright")} – <a href='mailto:stephan.peccini@polycrisis-observatory.org'>{_("footer.contact")}</a> – {_("footer.license")} <a href='https://creativecommons.org/licenses/by-nc-nd/4.0/deed.fr' target='_blank'>{_("footer.license_text")}</a>
|
||||
</p>
|
||||
<a href="https://www.polycrisis-observatory.org/" target="_blank"><img src="/app/static/images/polycrisis_observatory.webp" alt="Logo de l'Observatoire des Polycrises"></a>
|
||||
</p>
|
||||
<p class='footer-note'>
|
||||
{_("footer.eco_note")} <a href='https://www.thegreenwebfoundation.org/' target='_blank'>{_("footer.eco_provider")}</a><br>
|
||||
|
||||
@ -125,7 +125,7 @@ def afficher_impact(total_bytes):
|
||||
font-size: 1.25rem;
|
||||
font-weight: bold;
|
||||
margin-bottom: 0.5rem;
|
||||
color: #145a1a;
|
||||
color: #072c6e;
|
||||
text-align: center;
|
||||
}}
|
||||
span {{
|
||||
|
||||
BIN
static/images/polycrisis_observatory.webp
Normal file
BIN
static/images/polycrisis_observatory.webp
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 12 KiB |
Loading…
x
Reference in New Issue
Block a user