diff --git a/frontend/src/app/app.routes.ts b/frontend/src/app/app.routes.ts index 1f6c192a..cdf20b87 100644 --- a/frontend/src/app/app.routes.ts +++ b/frontend/src/app/app.routes.ts @@ -16,6 +16,16 @@ export const routes: Routes = [ path: 'shop', loadChildren: () => import('./shop/shop.routes').then((m) => m.SHOP_ROUTES), }, + { + path: 'privacy-policy', + title: 'Privacy Policy', + loadComponent: () => import('./shared/privacy-policy/privacy-policy.component').then((m) => m.PrivacyPolicyComponent), + }, + { + path: 'terms-of-service', + title: 'Terms of Service', + loadComponent: () => import('./shared/terms-of-service/terms-of-service.component').then((m) => m.TermsOfServiceComponent), + }, { path: '', redirectTo: '/home', diff --git a/frontend/src/app/dialogs/information/information.component.html b/frontend/src/app/dialogs/information/information.component.html index 485e9321..088a9c4e 100644 --- a/frontend/src/app/dialogs/information/information.component.html +++ b/frontend/src/app/dialogs/information/information.component.html @@ -9,13 +9,17 @@

Map of Pi

{{ version }}

-

Latest Updates

+

{{ 'INFORMATION_DIALOG.LATEST_UPDATES' | translate }}

-

{{ date }}

- +
+
+

{{ item.date }}

+
    +
  • {{ update }}
  • +
+
+
-
Please report defects to {{ email }}
- \ No newline at end of file +
{{ 'INFORMATION_DIALOG.REPORTING_MESSAGE' | translate }} {{ email }}
+ diff --git a/frontend/src/app/dialogs/information/information.component.spec.ts b/frontend/src/app/dialogs/information/information.component.spec.ts index 7526e079..16ac342b 100644 --- a/frontend/src/app/dialogs/information/information.component.spec.ts +++ b/frontend/src/app/dialogs/information/information.component.spec.ts @@ -1,5 +1,5 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; - +import { TranslateModule } from '@ngx-translate/core'; import { InformationComponent } from './information.component'; describe('InformationComponent', () => { @@ -8,7 +8,7 @@ describe('InformationComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [InformationComponent] + imports: [InformationComponent, TranslateModule.forRoot()] }) .compileComponents(); diff --git a/frontend/src/app/dialogs/information/information.component.ts b/frontend/src/app/dialogs/information/information.component.ts index 0a281c59..e8410c7b 100644 --- a/frontend/src/app/dialogs/information/information.component.ts +++ b/frontend/src/app/dialogs/information/information.component.ts @@ -1,11 +1,11 @@ import { Component } from '@angular/core'; import { CommonModule } from '@angular/common'; -import { RouterLink } from '@angular/router'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'app-information', standalone: true, - imports: [CommonModule, RouterLink], + imports: [CommonModule, TranslateModule], templateUrl: './information.component.html', styleUrl: './information.component.scss' }) @@ -16,10 +16,27 @@ export class InformationComponent { version: string = 'Alpha V1.0'; logo: string = "../../assets/images/logo.svg"; - date: string = '3/8/2024'; - updateItems: string[] = [ - 'Added footer.', - 'Added information popup for latest updates.', + updateItems: { date: string, updates: string[] }[] = [ + { + date: '3/10/2024', + updates: [ + 'Added Terms of Service section.' + ] + }, + { + date: '3/9/2024', + updates: [ + 'Added GPS navigation feature.', + 'Added Privacy Policy section.' + ] + }, + { + date: '3/8/2024', + updates: [ + 'Added Footer.', + 'Added Information Popup to share latest updates.' + ] + } ]; email: string = 'info@mapofpi.com'; diff --git a/frontend/src/app/home/action-row/action-row.component.scss b/frontend/src/app/home/action-row/action-row.component.scss index c1ccf69e..e1eb6f69 100644 --- a/frontend/src/app/home/action-row/action-row.component.scss +++ b/frontend/src/app/home/action-row/action-row.component.scss @@ -1,10 +1,10 @@ .action-row-container { - position: fixed; - bottom: 15%; /* Adjust this value as needed */ - width: 100%; - min-width: 80px; - margin-bottom: 2px; - display: flex; - justify-content: center; - z-index: 5; + position: absolute; + bottom: 15%; /* Adjust this value as needed */ + width: 100%; + min-width: 80px; + margin-bottom: 2px; + display: flex; + justify-content: center; + z-index: 5; } diff --git a/frontend/src/app/shared/footer/footer.component.html b/frontend/src/app/shared/footer/footer.component.html index 73df4aed..dbd383e9 100644 --- a/frontend/src/app/shared/footer/footer.component.html +++ b/frontend/src/app/shared/footer/footer.component.html @@ -21,8 +21,8 @@ diff --git a/frontend/src/app/shared/footer/footer.component.spec.ts b/frontend/src/app/shared/footer/footer.component.spec.ts index 23c81b6e..c0ca38cb 100644 --- a/frontend/src/app/shared/footer/footer.component.spec.ts +++ b/frontend/src/app/shared/footer/footer.component.spec.ts @@ -1,4 +1,6 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { RouterTestingModule } from '@angular/router/testing'; +import { TranslateModule } from '@ngx-translate/core'; import { FooterComponent } from './footer.component'; describe('FooterComponent', () => { @@ -7,9 +9,8 @@ describe('FooterComponent', () => { beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [FooterComponent] - }) - .compileComponents(); + imports: [FooterComponent, RouterTestingModule, TranslateModule.forRoot()] + }).compileComponents(); fixture = TestBed.createComponent(FooterComponent); component = fixture.componentInstance; diff --git a/frontend/src/app/shared/footer/footer.component.ts b/frontend/src/app/shared/footer/footer.component.ts index e079d6d5..de815e55 100644 --- a/frontend/src/app/shared/footer/footer.component.ts +++ b/frontend/src/app/shared/footer/footer.component.ts @@ -1,11 +1,12 @@ import { Component } from '@angular/core'; -import { TranslateModule } from '@ngx-translate/core'; import { CommonModule } from '@angular/common'; +import { RouterModule } from '@angular/router'; +import { TranslateModule } from '@ngx-translate/core'; @Component({ selector: 'app-footer', standalone: true, - imports: [TranslateModule, CommonModule], + imports: [CommonModule, RouterModule, TranslateModule], templateUrl: './footer.component.html', styleUrl: './footer.component.scss' }) diff --git a/frontend/src/app/shared/header/header.component.html b/frontend/src/app/shared/header/header.component.html index 2f7cb6d5..66de7e07 100644 --- a/frontend/src/app/shared/header/header.component.html +++ b/frontend/src/app/shared/header/header.component.html @@ -4,14 +4,14 @@ - - } @else { - } @@ -19,7 +19,8 @@
Map of Pi
-

{{ 'CORE.APP_NAME' | translate }}

+ +

Map of Pi

diff --git a/frontend/src/app/shared/privacy-policy/privacy-policy.component.html b/frontend/src/app/shared/privacy-policy/privacy-policy.component.html index 751daf98..52f720f4 100644 --- a/frontend/src/app/shared/privacy-policy/privacy-policy.component.html +++ b/frontend/src/app/shared/privacy-policy/privacy-policy.component.html @@ -74,7 +74,7 @@

7. {{ 'PRIVACY_POLICY.SECTIONS.HEADER_7' | translate }}

8. {{ 'PRIVACY_POLICY.SECTIONS.HEADER_8' | translate }}

diff --git a/frontend/src/app/shared/privacy-policy/privacy-policy.component.scss b/frontend/src/app/shared/privacy-policy/privacy-policy.component.scss index 9c9b4f03..6d16ca14 100644 --- a/frontend/src/app/shared/privacy-policy/privacy-policy.component.scss +++ b/frontend/src/app/shared/privacy-policy/privacy-policy.component.scss @@ -1,12 +1,7 @@ .privacy-policy-content { - max-width: calc(100% - 40px); - margin: 0 auto; text-align: left; - max-height: 400px; - overflow-y: auto; - word-wrap: break-word; - background-color: #fff; - z-index: 700; + padding: 50px; + padding-bottom: 150px; h1, h2 { color: #1d724b; @@ -22,6 +17,7 @@ } ul { + list-style-type: none; margin-bottom: 20px; } } diff --git a/frontend/src/app/shared/terms-of-service/terms-of-service.component.html b/frontend/src/app/shared/terms-of-service/terms-of-service.component.html new file mode 100644 index 00000000..6cb9afad --- /dev/null +++ b/frontend/src/app/shared/terms-of-service/terms-of-service.component.html @@ -0,0 +1,41 @@ +
+

Map of Pi {{ 'TERMS_OF_SERVICE.TITLE' | translate }}

+

{{ 'TERMS_OF_SERVICE.LAST_UPDATED' | translate }}: {{ lastUpdated }}

+

{{ 'TERMS_OF_SERVICE.EMAIL_ADDRESS' | translate }}: {{ emailAddress }}

+
+

1. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_1' | translate }}

+ + +

2. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_2' | translate }}

+ + +

3. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_3' | translate }}

+ + +

4. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_4' | translate }}

+ + +

5. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_5' | translate }}

+ + +

6. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_6' | translate }}

+ + +

7. {{ 'TERMS_OF_SERVICE.SECTIONS.HEADER_7' | translate }}

+ +
diff --git a/frontend/src/app/shared/terms-of-service/terms-of-service.component.scss b/frontend/src/app/shared/terms-of-service/terms-of-service.component.scss new file mode 100644 index 00000000..ad70b62b --- /dev/null +++ b/frontend/src/app/shared/terms-of-service/terms-of-service.component.scss @@ -0,0 +1,27 @@ +.terms-of-service-content { + text-align: left; + padding: 50px; + padding-bottom: 150px; + + h1, h2 { + color: #1d724b; + } + + h2 { + border-bottom: 1px solid #ccc; + padding-bottom: 5px; + } + + p { + margin-bottom: 20px; + } + + ul { + list-style-type: none; + margin-bottom: 20px; + } + + a { + font-weight: bold; + } +} diff --git a/frontend/src/app/shared/terms-of-service/terms-of-service.component.spec.ts b/frontend/src/app/shared/terms-of-service/terms-of-service.component.spec.ts new file mode 100644 index 00000000..d93f66d1 --- /dev/null +++ b/frontend/src/app/shared/terms-of-service/terms-of-service.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { TranslateModule } from '@ngx-translate/core'; +import { TermsOfServiceComponent } from './terms-of-service.component'; + +describe('TermsOfServiceComponent', () => { + let component: TermsOfServiceComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [TermsOfServiceComponent, TranslateModule.forRoot()] + }) + .compileComponents(); + + fixture = TestBed.createComponent(TermsOfServiceComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/frontend/src/app/shared/terms-of-service/terms-of-service.component.ts b/frontend/src/app/shared/terms-of-service/terms-of-service.component.ts new file mode 100644 index 00000000..ebbbcdc5 --- /dev/null +++ b/frontend/src/app/shared/terms-of-service/terms-of-service.component.ts @@ -0,0 +1,19 @@ +import { Component } from '@angular/core'; +import { TranslateModule } from '@ngx-translate/core'; + +@Component({ + selector: 'app-terms-of-service', + standalone: true, + imports: [TranslateModule], + templateUrl: './terms-of-service.component.html', + styleUrl: './terms-of-service.component.scss' +}) +export class TermsOfServiceComponent { + lastUpdated!: string; + emailAddress!: string; + + constructor() { + this.lastUpdated = "3/10/2024"; + this.emailAddress = "info@mapofpi.com"; + } +} diff --git a/frontend/src/assets/i18n/de.json b/frontend/src/assets/i18n/archive/de.json similarity index 69% rename from frontend/src/assets/i18n/de.json rename to frontend/src/assets/i18n/archive/de.json index ffa3d5bb..54b02946 100644 --- a/frontend/src/assets/i18n/de.json +++ b/frontend/src/assets/i18n/archive/de.json @@ -90,5 +90,33 @@ "HEADER_8": "Kontaktieren Sie uns", "CONTENT_8_1": "Wenn Sie Fragen oder Bedenken zu dieser Datenschutzrichtlinie haben, kontaktieren Sie uns bitte " } + }, + "TERMS_OF_SERVICE": { + "TITLE": "Nutzungsbedingungen", + "LAST_UPDATED": "Zuletzt Aktualisiert", + "EMAIL_ADDRESS": "E-Mail-Adresse", + "SECTIONS": { + "HEADER_1": "Akzeptanz der Bedingungen", + "CONTENT_1_1": "Willkommen bei der Map of Pi-App, entwickelt vom Map of Pi-Team in Zusammenarbeit mit der Pi-Community. Durch die Nutzung dieser App erklären Sie sich damit einverstanden, sich an diese Nutzungsbedingungen sowie unsere Datenschutzrichtlinie zu halten.", + + "HEADER_2": "Nutzung der App", + "CONTENT_2_1": "Sie erklären sich damit einverstanden, die Map of Pi-App in Übereinstimmung mit allen anwendbaren Gesetzen und Vorschriften zu verwenden.", + "CONTENT_2_2": "Sie dürfen die App nicht für rechtswidrige oder verbotene Zwecke verwenden oder auf eine Weise, die die App beschädigen, deaktivieren, überlasten oder beeinträchtigen könnte.", + + "HEADER_3": "Geistiges Eigentum", + "CONTENT_3_1": "Die Map of Pi-App sowie alle Inhalte, Funktionen und Funktionalitäten sind im Besitz von Map of Pi und durch Urheberrecht, Markenrecht und andere Gesetze zum geistigen Eigentum geschützt.", + + "HEADER_4": "Haftungsbeschränkung", + "CONTENT_4_1": "Map of Pi haftet nicht für direkte, indirekte, zufällige, besondere oder Folgeschäden, die sich aus oder in Verbindung mit der Nutzung der Map of Pi-App ergeben.", + + "HEADER_5": "Freistellung", + "CONTENT_5_1": "Sie erklären sich damit einverstanden, Map of Pi und seine verbundenen Unternehmen, leitenden Angestellten, Direktoren, Mitarbeiter und Beauftragte von allen Ansprüchen, Haftungen, Schäden, Verlusten oder Ausgaben (einschließlich Anwaltskosten) freizustellen und schadlos zu halten, die sich aus oder in irgendeiner Weise auf Ihre Nutzung der Map of Pi-App beziehen.", + + "HEADER_6": "Anwendbares Recht", + "CONTENT_6_1": "Diese Nutzungsbedingungen unterliegen dem Recht unserer definierten Gerichtsbarkeit und sind ohne Rücksicht auf deren Kollisionsnormen auszulegen.", + + "HEADER_7": "Änderungen dieser Bedingungen", + "CONTENT_7_1": "Wir behalten uns das Recht vor, diese Nutzungsbedingungen jederzeit ohne vorherige Ankündigung zu aktualisieren oder zu ändern. Die aktuellste Version wird auf unserer Website oder innerhalb der App veröffentlicht." + } } } diff --git a/frontend/src/assets/i18n/hu.json b/frontend/src/assets/i18n/archive/hu.json similarity index 100% rename from frontend/src/assets/i18n/hu.json rename to frontend/src/assets/i18n/archive/hu.json diff --git a/frontend/src/assets/i18n/en.json b/frontend/src/assets/i18n/en.json index 20899d90..dbcfdc04 100644 --- a/frontend/src/assets/i18n/en.json +++ b/frontend/src/assets/i18n/en.json @@ -6,6 +6,14 @@ "ADD_MY_BUSINESS": "Add my business", "SEARCH_BAR_PLACEHOLDER": "Search Business..." }, + "FOOTER": { + "PRIVACY_POLICY": "Privacy Policy", + "TERMS_OF_SERVICE": "Terms of Service" + }, + "INFORMATION_DIALOG": { + "LATEST_UPDATES": "Latest Updates", + "REPORTING_MESSAGE": "Please report defects to" + }, "BUSINESS": { "REGISTRATION": { "LABELS": { @@ -120,5 +128,33 @@ "HEADER_8": "Contact Us", "CONTENT_8_1": "If you have any questions or concerns about this Privacy Policy, please contact us " } + }, + "TERMS_OF_SERVICE": { + "TITLE": "Terms of Service", + "LAST_UPDATED": "Last Updated", + "EMAIL_ADDRESS": "Email Address", + "SECTIONS": { + "HEADER_1": "Acceptance of Terms", + "CONTENT_1_1": "Welcome to the Map of Pi app, developed by the Map of Pi team in collaboration with the Pi Community. By using this app, you agree to abide by these Terms of Service, as well as our Privacy Policy.", + + "HEADER_2": "Use of the App", + "CONTENT_2_1": "You agree to use the Map of Pi app in compliance with all applicable laws and regulations.", + "CONTENT_2_2": "You shall not use the app for any unlawful or prohibited purpose, or in any way that could damage, disable, overburden, or impair the app.", + + "HEADER_3": "Intellectual Property", + "CONTENT_3_1": "The Map of Pi app and all content, features, and functionality are owned by Map of Pi and are protected by copyright, trademark, and other intellectual property laws.", + + "HEADER_4": "Limitation of Liability", + "CONTENT_4_1": "Map of Pi shall not be liable for any direct, indirect, incidental, special, or consequential damages arising out of or in any way connected with the use of the Map of Pi app.", + + "HEADER_5": "Indemnification", + "CONTENT_5_1": "You agree to indemnify and hold harmless Map of Pi and its affiliates, officers, directors, employees, and agents from any and all claims, liabilities, damages, losses, or expenses (including attorneys' fees) arising out of or in any way related to your use of the Map of Pi app.", + + "HEADER_6": "Governing Law", + "CONTENT_6_1": "These Terms of Service shall be governed by and construed in accordance with the laws of our defined jurisdiction, without regard to its conflict of law provisions.", + + "HEADER_7": "Changes to These Terms", + "CONTENT_7_1": "We reserve the right to update or modify these Terms of Service at any time without prior notice. The latest version will be posted on our website or within the app." + } } } diff --git a/frontend/src/assets/i18n/es.json b/frontend/src/assets/i18n/es.json index 5d93d182..71daf1c0 100644 --- a/frontend/src/assets/i18n/es.json +++ b/frontend/src/assets/i18n/es.json @@ -6,6 +6,14 @@ "ADD_MY_BUSINESS": "Agregar mi negocio", "SEARCH_BAR_PLACEHOLDER": "Buscar negocio..." }, + "FOOTER": { + "PRIVACY_POLICY": "Política de privacidad", + "TERMS_OF_SERVICE": "Condiciones de servicio" + }, + "INFORMATION_DIALOG": { + "LATEST_UPDATES": "Últimas actualizaciones", + "REPORTING_MESSAGE": "Por favor, reporte defectos a" + }, "BUSINESS": { "REGISTRATION": { "LABELS": { @@ -120,5 +128,33 @@ "HEADER_8": "Contáctenos", "CONTENT_8_1": "Si tiene alguna pregunta o inquietud sobre esta política de privacidad, contáctenos." } + }, + "TERMS_OF_SERVICE": { + "TITLE": "Condiciones de servicio", + "LAST_UPDATED": "Última actualización", + "EMAIL_ADDRESS": "Correo electrónico", + "SECTIONS": { + "HEADER_1": "Aceptación de los términos", + "CONTENT_1_1": "Bienvenido a la aplicación Mapa de Pi, desarrollada por el equipo de Mapa de Pi en colaboración con la Comunidad Pi. Al utilizar esta aplicación, usted acepta cumplir con estos Términos de Servicio, así como con nuestra Política de Privacidad.", + + "HEADER_2": "Uso de la aplicación", + "CONTENT_2_1": "Usted acepta utilizar la aplicación Mapa de Pi de conformidad con todas las leyes y regulaciones aplicables.", + "CONTENT_2_2": "No deberá utilizar la aplicación para ningún propósito ilícito o prohibido, ni de ninguna manera que pudiera dañar, deshabilitar, sobrecargar o perjudicar la aplicación.", + + "HEADER_3": "Propiedad intelectual", + "CONTENT_3_1": "La aplicación Mapa de Pi y todo su contenido, características y funcionalidades son propiedad de Mapa de Pi y están protegidos por las leyes de derechos de autor, marcas comerciales y otras leyes de propiedad intelectual.", + + "HEADER_4": "Limitación de responsabilidad", + "CONTENT_4_1": "Mapa de Pi no será responsable de ningún daño directo, indirecto, incidental, especial o consecuente que surja de alguna manera relacionada con el uso de la aplicación Mapa de Pi.", + + "HEADER_5": "Indemnización", + "CONTENT_5_1": "Usted acepta indemnizar y eximir de responsabilidad a Mapa de Pi y sus afiliados, funcionarios, directores, empleados y agentes de cualquier reclamo, responsabilidad, daño, pérdida o gasto (incluidos honorarios de abogados) que surja de alguna manera relacionado con su uso de la aplicación Mapa de Pi.", + + "HEADER_6": "Ley aplicable", + "CONTENT_6_1": "Estos Términos de Servicio estarán regidos por y se interpretarán de acuerdo con las leyes de nuestra jurisdicción definida, sin tener en cuenta sus disposiciones sobre conflicto de leyes.", + + "HEADER_7": "Cambios en estos términos", + "CONTENT_7_1": "Nos reservamos el derecho de actualizar o modificar estos Términos de Servicio en cualquier momento sin previo aviso. La versión más reciente se publicará en nuestro sitio web o dentro de la aplicación." + } } -} \ No newline at end of file +} diff --git a/frontend/src/assets/i18n/ko.json b/frontend/src/assets/i18n/ko.json index 43dbeb03..d87f1467 100644 --- a/frontend/src/assets/i18n/ko.json +++ b/frontend/src/assets/i18n/ko.json @@ -6,6 +6,14 @@ "ADD_MY_BUSINESS": "내 비즈니스 추가", "SEARCH_BAR_PLACEHOLDER": "비즈니스 검색..." }, + "FOOTER": { + "PRIVACY_POLICY": "개인정보 처리방침", + "TERMS_OF_SERVICE": "서비스 이용 약관" + }, + "INFORMATION_DIALOG": { + "LATEST_UPDATES": "최신 업데이트", + "REPORTING_MESSAGE": "결함을 보고해주세요" + }, "BUSINESS": { "REGISTRATION": { "LABELS": { @@ -86,12 +94,14 @@ "SECTIONS": { "HEADER_1": "소개", "CONTENT_1": "파이 지도 앱에 오신 것을 환영합니다. 파이 지도 팀이 Pi 커뮤니티와 협력하여 개발한 이 개인정보 처리방침은 모바일 애플리케이션 사용 시 개인 정보를 수집, 사용, 공개 및 보호하는 방법을 설명합니다.", + "HEADER_2": "수집하는 정보", "SUBHEADER_2_1": "사용자 정보", "CONTENT_2_1_1": "사용자로 등록할 때 이름, 이메일 주소, 사용자 이름 및 기타 관련 세부 정보를 수집할 수 있습니다.", "CONTENT_2_1_2": "기기 유형, 운영 체제 및 고유 기기 식별자를 포함한 기기 정보를 수집할 수 있습니다.", "SUBHEADER_2_2": "공급업체 정보", "CONTENT_2_2_1": "플랫폼에 등록하는 공급업체는 비즈니스 이름, 위치 및 연락처 정보를 제공해야 할 수 있습니다.", + "HEADER_3": "정보 사용 방법", "SUBHEADER_3_1": "서비스 제공", "CONTENT_3_1_1": "사용자 및 공급업체 기능을 포함한 파이 지도 앱 서비스를 제공하고 개선하기 위해 귀하의 정보를 사용합니다.", @@ -99,19 +109,52 @@ "CONTENT_3_2_1": "파이 지도 앱과 관련된 업데이트, 알림 및 프로모션 메시지를 전송하기 위해 귀하의 연락처 정보를 사용할 수 있습니다.", "SUBHEADER_3_3": "분석", "CONTENT_3_3_1": "앱의 성능, 기능 및 기능을 개선하기 위해 데이터를 수집하고 분석합니다.", + "HEADER_4": "정보 공유", "SUBHEADER_4_1": "공급업체와", "CONTENT_4_1_1": "주문 처리 및 커뮤니케이션 목적으로 사용자 정보를 공유할 수 있습니다.", "SUBHEADER_4_2": "제 3자와", "CONTENT_4_2_1": "앱 기능, 분석 및 결제 처리를 위해 제 3자 서비스 제공업체와 정보를 공유할 수 있습니다.", + "HEADER_5": "보안 조치", "CONTENT_5_1": "귀하의 정보를 보호하기 위해 산업 표준 보안 조치를 채택하고 있습니다. 그러나 인터넷을 통한 전송 또는 전자 저장 방법은 완전히 안전하지 않을 수 있습니다.", + "HEADER_6": "귀하의 선택", "CONTENT_6_1": "앱 설정을 통해 계정 정보를 업데이트하거나 삭제할 수 있습니다. 또한 프로모션 통신을 거부할 수 있습니다.", + "HEADER_7": "개인정보 처리방침 변경", "CONTENT_7_1": "필요에 따라 개인정보 처리방침을 업데이트할 수 있습니다. 최신 버전은 웹사이트나 앱 내에서 공개될 것입니다.", + "HEADER_8": "문의하기", "CONTENT_8_1": "이 개인정보 처리방침에 관한 질문이나 걱정이 있으시면 저희에게 문의하세요." } + }, + "TERMS_OF_SERVICE": { + "TITLE": "서비스 이용 약관", + "LAST_UPDATED": "최근 업데이트", + "EMAIL_ADDRESS": "이메일 주소", + "SECTIONS": { + "HEADER_1": "약관 수락", + "CONTENT_1_1": "파이 지도 앱에 오신 것을 환영합니다. 파이 지도 팀이 Pi 커뮤니티와 협력하여 개발한 이 앱을 사용함으로써 귀하는 이 서비스 이용 약관 및 개인정보 처리방침을 준수할 것에 동의합니다.", + + "HEADER_2": "앱 사용", + "CONTENT_2_1": "귀하는 모든 관련 법률 및 규정을 준수하여 파이 지도 앱을 사용하는 데 동의합니다.", + "CONTENT_2_2": "귀하는 앱을 불법적이거나 금지된 목적으로 사용하거나, 앱을 손상시키거나 비활성화하거나 과부하를 줄 수 있는 방식으로 사용하지 않을 것에 동의합니다.", + + "HEADER_3": "지적 재산권", + "CONTENT_3_1": "파이 지도 앱과 모든 콘텐츠, 기능 및 기능은 파이 지도에 속하며 저작권, 상표 및 기타 지적 재산권 법으로 보호됩니다.", + + "HEADER_4": "책임 제한", + "CONTENT_4_1": "파이 지도는 파이 지도 앱 사용과 관련하여 직접적인, 간접적인, 부수적인, 특별한 또는 결과적인 피해에 대해 책임을 지지 않습니다.", + + "HEADER_5": "면책 및 보상", + "CONTENT_5_1": "귀하는 파이 지도 및 그 계열사, 임원, 이사, 직원 및 대리인을 모든 종류의 청구, 책임, 손해, 손실 또는 비용 (변호사 비용 포함)으로부터 면책시키고 보호할 것에 동의합니다. 그러한 청구, 책임, 손해, 손실 또는 비용은 파이 지도 앱 사용과 관련이 있습니다.", + + "HEADER_6": "준거법", + "CONTENT_6_1": "본 서비스 이용 약관은 우리가 정의한 관할 구역의 법률에 따라 규정되고 해석됩니다. 법률 충돌 규정을 고려하지 않습니다.", + + "HEADER_7": "약관 변경", + "CONTENT_7_1": "우리는 사전 통보 없이 언제든지 이 서비스 이용 약관을 업데이트하거나 수정할 권리를 보유합니다. 최신 버전은 웹사이트나 앱 내에서 공개됩니다." + } } } \ No newline at end of file diff --git a/frontend/src/assets/styles/shared/footer/footer.scss b/frontend/src/assets/styles/shared/footer/footer.scss index 9fed5d34..0a447c1e 100644 --- a/frontend/src/assets/styles/shared/footer/footer.scss +++ b/frontend/src/assets/styles/shared/footer/footer.scss @@ -35,6 +35,7 @@ body { .footer__icon { padding: 2px; /* Increases the touchable area */ margin: 0 4px; /* Adjusts spacing around links */ + outline: none; } .footer__link {