diff --git a/.github/workflows/codeql.yml b/.github/workflows/codeql.yml index 850187791..645042ce5 100644 --- a/.github/workflows/codeql.yml +++ b/.github/workflows/codeql.yml @@ -34,7 +34,7 @@ jobs: uses: actions/checkout@v4 - name: Set up JDK - uses: actions/setup-java@v3.13.0 + uses: actions/setup-java@v4.0.0 with: distribution: 'adopt' java-version: '17' diff --git a/.github/workflows/run-tests.yaml b/.github/workflows/run-tests.yaml index bd64ba092..257ea3e4e 100644 --- a/.github/workflows/run-tests.yaml +++ b/.github/workflows/run-tests.yaml @@ -32,7 +32,7 @@ jobs: with: chromedriver-version: '115.0.5790.102' - name: Set up JDK - uses: actions/setup-java@v3.13.0 + uses: actions/setup-java@v4.0.0 with: distribution: 'adopt' java-version: '17' @@ -83,7 +83,7 @@ jobs: with: chromedriver-version: '115.0.5790.102' - name: Set up JDK - uses: actions/setup-java@v3.13.0 + uses: actions/setup-java@v4.0.0 with: distribution: 'adopt' java-version: '17' diff --git a/.gitignore b/.gitignore index 91ae11d60..054eca1b2 100644 --- a/.gitignore +++ b/.gitignore @@ -38,4 +38,6 @@ out/ .vscode/ ### Mac OS ### -.DS_Store \ No newline at end of file +.DS_Store + +*.log \ No newline at end of file diff --git a/build.gradle b/build.gradle index 3b9694d29..4e1819bb8 100644 --- a/build.gradle +++ b/build.gradle @@ -28,18 +28,21 @@ repositories { } def profile = props.getProperty('SPRING_PROFILES_ACTIVE') -def formFlowLibraryVersion = '0.0.15' +def formFlowLibraryVersion = '1.0.0' def useLocalLibrary = System.getenv('USE_LOCAL_LIBRARY') dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'com.jcraft:jsch:0.1.55' + implementation 'org.springframework.shell:spring-shell-starter:3.1.6' implementation 'org.springframework.boot:spring-boot-starter-actuator' implementation("com.mixpanel:mixpanel-java:1.5.2") - implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.4.11' + implementation group: 'ch.qos.logback', name: 'logback-classic', version: '1.4.14' implementation group: 'ch.qos.logback.contrib', name: 'logback-json-classic', version: '0.1.5' implementation group: 'ch.qos.logback.contrib', name: 'logback-jackson', version: '0.1.5' implementation group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.16.0' + implementation 'com.opencsv:opencsv:5.9' if (profile == 'dev' || useLocalLibrary == 'true') { implementation fileTree(dir: "$rootDir/../form-flow/build/libs", include: '*.jar') @@ -49,12 +52,19 @@ dependencies { println "📚Using form flow library ${formFlowLibraryVersion}" } - implementation 'com.amazonaws:aws-encryption-sdk-java:2.4.1' + implementation 'com.amazonaws:aws-encryption-sdk-java:3.0.0' + implementation 'org.bouncycastle:bcpg-jdk15on:1.70' + implementation 'org.bouncycastle:bcpkix-jdk15on:1.70' + implementation 'org.springframework.shell:spring-shell-starter:3.0.4' + + implementation 'commons-net:commons-net:3.10.0' testImplementation 'org.projectlombok:lombok:1.18.30' - implementation 'io.sentry:sentry-spring-boot-starter-jakarta:6.34.0' + implementation 'io.sentry:sentry-spring-boot-starter-jakarta:7.0.0' + implementation 'io.sentry:sentry-logback:7.0.0' + + testImplementation 'junit:junit:4.13.2' - implementation 'io.sentry:sentry-logback:6.34.0' compileOnly 'org.projectlombok:lombok' @@ -64,8 +74,8 @@ dependencies { testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' - testImplementation 'org.apache.httpcomponents.client5:httpclient5:5.2.1' - testImplementation 'org.seleniumhq.selenium:selenium-java:4.15.0' + testImplementation 'org.apache.httpcomponents.client5:httpclient5:5.3' + testImplementation 'org.seleniumhq.selenium:selenium-java:4.16.1' testImplementation 'io.percy:percy-java-selenium:2.0.2' testImplementation 'org.awaitility:awaitility' testImplementation 'io.github.bonigarcia:webdrivermanager:5.6.2' @@ -81,6 +91,12 @@ springBoot { buildInfo() } +dependencyManagement { + imports { + mavenBom "org.springframework.shell:spring-shell-dependencies:3.1.6" + } +} + test { useJUnitPlatform { JUnitPlatformOptions options -> diff --git a/scripts/generate_migration.sh b/scripts/generate_migration.sh new file mode 100644 index 000000000..e38d9da44 --- /dev/null +++ b/scripts/generate_migration.sh @@ -0,0 +1,22 @@ +#!/bin/bash +set -euo pipefail + +migrations_path="$(dirname $0)/../src/main/resources/db/migration" + +if [ ! -d "$migrations_path" ]; then + echo "Migration directory '$migrations_path' does not exist. Creating..." + mkdir -p "$migrations_path" +fi + +migrations_path=$(realpath "$migrations_path") + +printf "Generating migration file. \nEnter Description (e.g. 'Create admin users'): " +read description + +filename="V$(date +%Y.%m.%d.%H.%M.%S)__$(echo "$description" | sed -E 's/[^A-Z]+/_/ig').sql" +echo "Creating ${filename}." +touch "$migrations_path/$filename" + +echo "Hit enter to open." +read +open -a "IntelliJ IDEA.app" "$migrations_path/$filename" \ No newline at end of file diff --git a/src/main/java/org/ladocuploader/app/FileExportController.java b/src/main/java/org/ladocuploader/app/FileExportController.java new file mode 100644 index 000000000..53515abbf --- /dev/null +++ b/src/main/java/org/ladocuploader/app/FileExportController.java @@ -0,0 +1,157 @@ +package org.ladocuploader.app; + + + +import com.opencsv.exceptions.CsvDataTypeMismatchException; +import com.opencsv.exceptions.CsvRequiredFieldEmptyException; + + +import formflow.library.config.FlowConfiguration; +import formflow.library.data.Submission; +import formflow.library.data.SubmissionRepositoryService; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpSession; + + +import java.io.IOException; +import java.util.*; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.text.StringEscapeUtils; +import org.ladocuploader.app.csv.CsvDocument; +import org.ladocuploader.app.csv.CsvService; +import org.ladocuploader.app.csv.enums.CsvType; + +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; +import org.springframework.context.MessageSource; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.server.ResponseStatusException; + +import static formflow.library.FormFlowController.getSubmissionIdForFlow; + +@Controller +@EnableAutoConfiguration +@Slf4j +@RequestMapping("/download-csv") +public class FileExportController { + + private final MessageSource messageSource; + + private final SubmissionRepositoryService submissionRepositoryService; + + private final List flowConfigurations; + + private final CsvService csvService; + + public FileExportController(MessageSource messageSource, + SubmissionRepositoryService submissionRepositoryService, + List flowConfigurations, CsvService csvService) { + + this.submissionRepositoryService = submissionRepositoryService; + this.flowConfigurations = flowConfigurations; + this.messageSource = messageSource; + this.csvService = csvService; + } + + + @GetMapping("{flow}/pg/{submissionId}") + ResponseEntity downloadPGCsv( + @PathVariable String flow, + @PathVariable String submissionId, + HttpSession httpSession, + HttpServletRequest request, + Locale locale + ) throws IOException, CsvRequiredFieldEmptyException, CsvDataTypeMismatchException { + + String cleanedFlow = StringEscapeUtils.escapeHtml4(flow); + String cleanedSubmissionId = StringEscapeUtils.escapeHtml4(submissionId); + + log.info("GET downloadCSV ParentGuardian (url: {}): flow: {}, submissionId: {}", request.getRequestURI().toLowerCase(), + cleanedFlow, cleanedSubmissionId); + + return handleCsvGeneration(cleanedFlow, cleanedSubmissionId, httpSession, locale, CsvType.PARENT_GUARDIAN); + } + + @GetMapping("{flow}/student/{submissionId}") + ResponseEntity downloadStudentCsv( + @PathVariable String flow, + @PathVariable String submissionId, + HttpSession httpSession, + HttpServletRequest request, + Locale locale + ) throws IOException, CsvRequiredFieldEmptyException, CsvDataTypeMismatchException { + + String cleanedFlow = StringEscapeUtils.escapeHtml4(flow); + String cleanedSubmissionId = StringEscapeUtils.escapeHtml4(submissionId); + + log.info("GET downloadCSV Student (url: {}): flow: {}, submissionId: {}", request.getRequestURI().toLowerCase(), + cleanedFlow, cleanedSubmissionId); + + return handleCsvGeneration(cleanedFlow, cleanedSubmissionId, httpSession, locale, CsvType.STUDENT); + } + + @GetMapping("{flow}/rel/{submissionId}") + ResponseEntity downloadRelCsv( + @PathVariable String flow, + @PathVariable String submissionId, + HttpSession httpSession, + HttpServletRequest request, + Locale locale + ) throws IOException, CsvRequiredFieldEmptyException, CsvDataTypeMismatchException { + + String cleanedFlow = StringEscapeUtils.escapeHtml4(flow); + String cleanedSubmissionId = StringEscapeUtils.escapeHtml4(submissionId); + + log.info("GET downloadCSV Relationship (url: {}): flow: {}, submissionId: {}", request.getRequestURI().toLowerCase(), + cleanedFlow, cleanedSubmissionId); + + return handleCsvGeneration(cleanedFlow, cleanedSubmissionId, httpSession, locale, CsvType.RELATIONSHIP); + } + + protected static void throwNotFoundError(String flow, String message) { + throw new ResponseStatusException(HttpStatus.NOT_FOUND, + String.format("There was a problem with the request during CSV Generation (flow: %s): %s", + flow, message)); + + } + + protected Boolean doesFlowExist(String flow) { + return flowConfigurations.stream().anyMatch( + flowConfiguration -> flowConfiguration.getName().equals(flow) + ); + } + + private ResponseEntity handleCsvGeneration(String flow, String submissionId, HttpSession httpSession, + Locale locale, CsvType csvType) throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + + if (!doesFlowExist(flow)) { + throwNotFoundError(flow, String.format("Could not find flow %s in your application's flow configuration.", flow)); + } + // TODO: get list of submissions based on another column - like transmission? + Optional maybeSubmission = submissionRepositoryService.findById(UUID.fromString(submissionId)); + if (getSubmissionIdForFlow(httpSession, flow).toString().equals(submissionId) && maybeSubmission.isPresent()) { + log.info("Generating CSV with submission_id: " + submissionId); + Submission submission = maybeSubmission.get(); + CsvDocument csvDoc = csvService.generateCsvFormattedData(List.of(submission), csvType); + HttpHeaders headers = new HttpHeaders(); + headers.add(HttpHeaders.CONTENT_DISPOSITION, + "attachment; filename=%s".formatted(csvService.generateCsvName(submission.getFlow(), csvType))); + return ResponseEntity + .ok() + .contentType(MediaType.APPLICATION_OCTET_STREAM) + .headers(headers) + .body(csvDoc.getCsvData()); + } else { + log.error("Attempted to download PDF with submission_id: " + submissionId + " but session_id was: " + + httpSession.getAttribute("id")); + return ResponseEntity.status(HttpStatus.FORBIDDEN).body(messageSource.getMessage("error.forbidden", null, locale)); + } + } +} diff --git a/src/main/java/org/ladocuploader/app/LaDocUploader.java b/src/main/java/org/ladocuploader/app/LaDocUploader.java index 9ff532ec0..5f480dee7 100644 --- a/src/main/java/org/ladocuploader/app/LaDocUploader.java +++ b/src/main/java/org/ladocuploader/app/LaDocUploader.java @@ -2,9 +2,11 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.boot.autoconfigure.domain.EntityScan; import org.springframework.boot.context.properties.EnableConfigurationProperties; @SpringBootApplication(scanBasePackages = {"org.ladocuploader.app", "formflow.library"}) +@EntityScan(basePackages = {"org.ladocuploader.app", "formflow.library"}) @EnableConfigurationProperties public class LaDocUploader { diff --git a/src/main/java/org/ladocuploader/app/cli/FtpsClient.java b/src/main/java/org/ladocuploader/app/cli/FtpsClient.java new file mode 100644 index 000000000..a1cdd0282 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/FtpsClient.java @@ -0,0 +1,8 @@ +package org.ladocuploader.app.cli; + +import java.io.IOException; + +public interface FtpsClient { + + void uploadFile(String zipFilename, byte[] data) throws IOException; +} diff --git a/src/main/java/org/ladocuploader/app/cli/FtpsClientImpl.java b/src/main/java/org/ladocuploader/app/cli/FtpsClientImpl.java new file mode 100644 index 000000000..d1824da7d --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/FtpsClientImpl.java @@ -0,0 +1,62 @@ +package org.ladocuploader.app.cli; + +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.net.PrintCommandListener; +import org.apache.commons.net.ftp.FTPReply; +import org.apache.commons.net.ftp.FTPSClient; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; +import java.io.PrintWriter; + +@Slf4j +@Component +@Profile("production") +public class FtpsClientImpl implements FtpsClient { + + private final String username; + private final String password; + private final String uploadUrl; + private final String uploadDir; + + public FtpsClientImpl(@Value("${ftps.username:}") String username, @Value("${ftps.password:}") String password, @Value("${ftps.upload-url:}") String uploadUrl, @Value("${ftps.upload-dir:}") String uploadDir) { + this.username = username; + this.password = password; + this.uploadUrl = uploadUrl; + this.uploadDir = uploadDir; + } + + @Override + public void uploadFile(String zipFilename, byte[] data) throws IOException { + FTPSClient ftp = new FTPSClient(); + + ftp.addProtocolCommandListener(new PrintCommandListener(new PrintWriter(System.out))); + + ftp.connect(uploadUrl); + int reply = ftp.getReplyCode(); + if (!FTPReply.isPositiveCompletion(reply)) { + ftp.disconnect(); + throw new IOException("Exception in connecting to FTP Server"); + } + + ftp.login(username, password); + + ftp.changeWorkingDirectory(uploadDir); + + ftp.execPBSZ(0); + ftp.execPROT("P"); + ftp.enterLocalPassiveMode(); + ftp.pasv(); + InputStream local = new ByteArrayInputStream(data); + ftp.storeFile(zipFilename, local); + local.close(); + ftp.completePendingCommand(); + + ftp.logout(); + ftp.disconnect(); + } +} diff --git a/src/main/java/org/ladocuploader/app/cli/MockFtpsClientImpl.java b/src/main/java/org/ladocuploader/app/cli/MockFtpsClientImpl.java new file mode 100644 index 000000000..ab7c193d8 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/MockFtpsClientImpl.java @@ -0,0 +1,17 @@ +package org.ladocuploader.app.cli; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@Profile("!production") +public class MockFtpsClientImpl implements FtpsClient { + + @Override + public void uploadFile(String zipFilename, byte[] data) { + // Do nothing + log.info("Mock uploading file " + zipFilename); + } +} diff --git a/src/main/java/org/ladocuploader/app/cli/MockSftpClientImpl.java b/src/main/java/org/ladocuploader/app/cli/MockSftpClientImpl.java new file mode 100644 index 000000000..4b44d639f --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/MockSftpClientImpl.java @@ -0,0 +1,17 @@ +package org.ladocuploader.app.cli; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +@Profile("!production") +public class MockSftpClientImpl implements SftpClient { + + @Override + public void uploadFile(String zipFilename, String filePath) { + // Do nothing + log.info("Mock uploading file " + zipFilename); + } +} diff --git a/src/main/java/org/ladocuploader/app/cli/PGPEncryptor.java b/src/main/java/org/ladocuploader/app/cli/PGPEncryptor.java new file mode 100644 index 000000000..7cb3acee4 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/PGPEncryptor.java @@ -0,0 +1,154 @@ +package org.ladocuploader.app.cli; + +import lombok.extern.slf4j.Slf4j; +import org.bouncycastle.bcpg.CompressionAlgorithmTags; +import org.bouncycastle.bcpg.SymmetricKeyAlgorithmTags; +import org.bouncycastle.openpgp.*; +import org.bouncycastle.openpgp.jcajce.JcaPGPPublicKeyRingCollection; +import org.bouncycastle.openpgp.operator.KeyFingerPrintCalculator; +import org.bouncycastle.openpgp.operator.jcajce.*; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.*; +import java.security.SecureRandom; +import java.util.Date; +import java.util.Iterator; + +@Slf4j +@Component +public class PGPEncryptor { + + private final String pubkeyFilename; + private final String sigkeyFilename; + private final String sigkeyPassword; + + public PGPEncryptor(@Value("${pgp.pubkey_filename:}") String pubkeyFilename, @Value("${pgp.sigkey_filename:}") String sigkeyFilename, @Value("${pgp.sigkey_password:}") String sigkeyPassword) { + this.pubkeyFilename = pubkeyFilename; + this.sigkeyFilename = sigkeyFilename; + this.sigkeyPassword = sigkeyPassword; + } + + public byte[] signAndEncryptPayload(String filename) throws IOException { + FileInputStream instream = new FileInputStream(filename); + + log.info("Retrieving keys for signing and encryption"); + PGPSecretKey signingKey = getSecretKey(); + PGPPublicKey pubKey = getPublicKey(); + + ByteArrayOutputStream outstream = new ByteArrayOutputStream(); + try { + log.info("Signing and encrypting payload"); + return signAndEncryptPayload(instream, signingKey, pubKey, outstream); + } catch (PGPException e) { + throw new IllegalStateException("There was an issue signing and encrypting the file", e); + } finally { + instream.close(); + outstream.close(); + log.info("Completed signing and encrypting payload"); + } + } + + private PGPPublicKey getPublicKey() throws IOException { + PGPPublicKey pubKey = null; + InputStream inputStream = new FileInputStream(pubkeyFilename); + inputStream = PGPUtil.getDecoderStream(inputStream); + try { + JcaPGPPublicKeyRingCollection ringCollection = new JcaPGPPublicKeyRingCollection(inputStream); + Iterator keyRingsIterator = ringCollection.getKeyRings(); + while (keyRingsIterator.hasNext()) { + PGPPublicKeyRing pgpPublicKeyRing = keyRingsIterator.next(); + Iterator pubKeysIterator = pgpPublicKeyRing.getPublicKeys(); + while (pubKeysIterator.hasNext()) { + pubKey = pubKeysIterator.next(); + } + } + } catch (PGPException e) { + throw new IllegalArgumentException("Invalid public key"); + } finally { + inputStream.close(); + } + return pubKey; + } + + private PGPSecretKey getSecretKey() throws IOException { + try (InputStream fileInputStream = new FileInputStream(sigkeyFilename);) { + InputStream inputStream = PGPUtil.getDecoderStream(fileInputStream); + KeyFingerPrintCalculator fpCalculator = new JcaKeyFingerprintCalculator(); + PGPSecretKeyRingCollection pgpSec = new PGPSecretKeyRingCollection(inputStream, fpCalculator); + + Iterator keyRingIter = pgpSec.getKeyRings(); + while (keyRingIter.hasNext()) { + PGPSecretKeyRing keyRing = keyRingIter.next(); + + Iterator keyIter = keyRing.getSecretKeys(); + while (keyIter.hasNext()) { + PGPSecretKey key = keyIter.next(); + + if (key.isSigningKey()) { + return key; + } + } + } + } catch (PGPException e) { + throw new IllegalArgumentException("Invalid signing key", e); + } + + throw new IllegalArgumentException("Invalid signing key"); + } + + private PGPPrivateKey getPrivateKey(PGPSecretKey secretKey) throws PGPException { + return secretKey.extractPrivateKey( + new JcePBESecretKeyDecryptorBuilder().build(sigkeyPassword.toCharArray())); + } + + private byte[] signAndEncryptPayload(InputStream inputStream, PGPSecretKey secKey, PGPPublicKey pubKey, + ByteArrayOutputStream outputStream) throws PGPException, IOException { + int BUFFER_SIZE = 1 << 16; + + // Encryption + PGPEncryptedDataGenerator encGen = new PGPEncryptedDataGenerator( + new JcePGPDataEncryptorBuilder(SymmetricKeyAlgorithmTags.AES_256) + .setWithIntegrityPacket(true) + .setSecureRandom(new SecureRandom())); + encGen.addMethod(new JcePublicKeyKeyEncryptionMethodGenerator(pubKey)); + OutputStream encOut = encGen.open(outputStream, new byte[BUFFER_SIZE]); + + // Compression + PGPCompressedDataGenerator cGen = new PGPCompressedDataGenerator(CompressionAlgorithmTags.ZIP); + OutputStream cOut = cGen.open(encOut); + + // Signing + PGPSignatureGenerator sGen = new PGPSignatureGenerator(new JcaPGPContentSignerBuilder(secKey.getPublicKey().getAlgorithm(), PGPUtil.SHA1)); + sGen.init(PGPSignature.BINARY_DOCUMENT, getPrivateKey(secKey)); + + Iterator it = secKey.getPublicKey().getUserIDs(); + if (it.hasNext()) { + PGPSignatureSubpacketGenerator spGen = new PGPSignatureSubpacketGenerator(); + spGen.addSignerUserID(false, it.next()); + sGen.setHashedSubpackets(spGen.generate()); + } + + sGen.generateOnePassVersion(false).encode(cOut); + + // Literal Data generator and output stream + byte[] data = inputStream.readAllBytes(); + PGPLiteralDataGenerator lGen = new PGPLiteralDataGenerator(); + OutputStream lOut = lGen.open(cOut, PGPLiteralData.BINARY, PGPLiteralData.CONSOLE, data.length, new Date()); + + lOut.write(data); + sGen.update(data); + + lOut.close(); + lGen.close(); + + sGen.generate().encode(cOut); + cOut.close(); + cGen.close(); + encGen.close(); + + return outputStream.toByteArray(); + } + +} + diff --git a/src/main/java/org/ladocuploader/app/cli/SftpClient.java b/src/main/java/org/ladocuploader/app/cli/SftpClient.java new file mode 100644 index 000000000..5d8ec9646 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/SftpClient.java @@ -0,0 +1,10 @@ +package org.ladocuploader.app.cli; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.SftpException; + +public interface SftpClient { + + + void uploadFile(String zipFilename, String filePath) throws JSchException, SftpException; + +} diff --git a/src/main/java/org/ladocuploader/app/cli/SftpClientImpl.java b/src/main/java/org/ladocuploader/app/cli/SftpClientImpl.java new file mode 100644 index 000000000..69cbf6d00 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/SftpClientImpl.java @@ -0,0 +1,56 @@ +package org.ladocuploader.app.cli; + +import com.jcraft.jsch.Channel; +import com.jcraft.jsch.ChannelSftp; +import com.jcraft.jsch.JSch; +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.Session; +import com.jcraft.jsch.SftpException; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Profile; +import org.springframework.stereotype.Component; + +import java.util.List; + +@Component +@Slf4j +@Profile("production") +public class SftpClientImpl implements SftpClient { + + String username; + String password; + String uploadUrl; + + String environmentPath; + + public SftpClientImpl(@Value("${sftp.username:}") String username, @Value("${sftp.password:}") String password, @Value("${sftp.upload-url:}") String uploadUrl, + @Value("${sftp.environment-path:}") String environmentPath) { + this.username = username; + this.password = password; + this.uploadUrl = uploadUrl; + this.environmentPath = environmentPath; + } + + @Override + public void uploadFile(String zipFilename, String filePath) throws JSchException, SftpException { + JSch jsch = new JSch(); + jsch.setKnownHosts("src/main/resources/known_hosts"); + Session jschSession = jsch.getSession(username, uploadUrl); + jschSession.setPassword(password); + jschSession.connect(10000); + + Channel sftp = jschSession.openChannel("sftp"); + sftp.connect(5000); + + ChannelSftp channelSftp = (ChannelSftp) sftp; + String destinationFilePath = String.join("/", List.of(filePath + "-" + this.environmentPath, zipFilename)); + log.info(destinationFilePath); + + channelSftp.put(zipFilename, destinationFilePath ); + + channelSftp.exit(); + } +} + diff --git a/src/main/java/org/ladocuploader/app/cli/SubmissionTransfer.java b/src/main/java/org/ladocuploader/app/cli/SubmissionTransfer.java new file mode 100644 index 000000000..43f36821f --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/SubmissionTransfer.java @@ -0,0 +1,134 @@ +package org.ladocuploader.app.cli; + +import formflow.library.data.Submission; +import formflow.library.data.SubmissionRepository; +import formflow.library.data.UserFile; +import formflow.library.data.UserFileRepositoryService; +import formflow.library.file.CloudFile; +import formflow.library.file.CloudFileRepository; +import formflow.library.pdf.PdfService; +import lombok.extern.slf4j.Slf4j; +import org.ladocuploader.app.submission.StringEncryptor; +import org.springframework.shell.standard.ShellComponent; + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +@Slf4j +@ShellComponent +public class SubmissionTransfer { + private final SubmissionRepository submissionRepository; + private final UserFileRepositoryService fileRepositoryService; + private final CloudFileRepository fileRepository; + private final PdfService pdfService; + private final PGPEncryptor pgpEncryptor; + + private final StringEncryptor encryptor; + private final FtpsClient ftpsClient; + + public SubmissionTransfer(SubmissionRepository submissionRepository, UserFileRepositoryService fileRepositoryService, CloudFileRepository fileRepository, PdfService pdfService, PGPEncryptor pgpEncryptor, StringEncryptor encryptor, FtpsClient ftpsClient) { + this.submissionRepository = submissionRepository; + this.fileRepositoryService = fileRepositoryService; + this.fileRepository = fileRepository; + this.pdfService = pdfService; + this.pgpEncryptor = pgpEncryptor; + this.encryptor = encryptor; + this.ftpsClient = ftpsClient; + } + + public void transferSubmissions() { + // TODO get submissions to transfer + + String batchIndex = "5000"; // TODO Prob needs a counter + String zipFileName = batchIndex + ".zip"; + + log.info(String.format("Beginning transfer of batch %s", batchIndex)); + + // for each, add to zipfile + List submissionsBatch = new ArrayList<>(); // TODO Get from transmission table + try (FileOutputStream baos = new FileOutputStream(zipFileName); + ZipOutputStream zos = new ZipOutputStream(baos)) { + StringBuilder docMeta = new StringBuilder(); + for (Submission submission : submissionsBatch) { + String subfolder = "1"; // TODO Something unique + try { + if ("laDigitalAssister".equals(submission.getFlow())) { + log.info("Generate applicant summary"); + byte[] file = pdfService.getFilledOutPDF(submission); // TODO Handle generate-pdf crashes + String fileName = String.format("%s_application.pdf", subfolder); + zos.putNextEntry(new ZipEntry(subfolder)); + ZipEntry entry = new ZipEntry(subfolder + fileName); + entry.setSize(file.length); + zos.putNextEntry(entry); + zos.write(file); + zos.closeEntry(); + String metaEntry = generateMetaDataEntry(batchIndex, subfolder, fileName, "APP-OFS 4APP", submission); + docMeta.append(metaEntry); + + log.info("Adding uploaded docs"); + List userFiles = fileRepositoryService.findAllBySubmission(submission); + for (UserFile userFile : userFiles) { + String docUploadFilename = "somethingunique"; // TODO this can be anything + ZipEntry docEntry = new ZipEntry(subfolder + docUploadFilename); + docEntry.setSize(userFile.getFilesize().longValue()); + zos.putNextEntry(docEntry); + + CloudFile docFile = fileRepository.get(userFile.getRepositoryPath()); + zos.write(docFile.getFileBytes()); + zos.closeEntry(); + + // write doc metadata - TODO add docType + metaEntry = generateMetaDataEntry(batchIndex, userFile.getOriginalName(), "", "", submission); + docMeta.append(metaEntry); + } + } + } catch (Exception e) { + log.error("Error generating file collection for submission ID {}", submission.getId(), e); + } + } // end for loop + + // Add metadata entry to zip + ZipEntry docEntry = new ZipEntry(batchIndex + ".txt"); + byte[] docMetaData = docMeta.toString().getBytes(); + docEntry.setSize(docMetaData.length); + zos.putNextEntry(docEntry); + zos.write(docMetaData); + + // Encrypt and transfer + byte[] data = pgpEncryptor.signAndEncryptPayload(zipFileName); + ftpsClient.uploadFile(zipFileName, data); + } catch (IOException ex) { + throw new IllegalStateException(ex); + } finally { + // Cleanup + if (new File(zipFileName).delete()) { + log.info("Deleting zip file"); + } + } + + // TODO - include some stats, how many transfered, failed, successful + log.info(String.format("Completed transfer of batch %s", batchIndex)); + } + + private String generateMetaDataEntry(String batchIndex, String subfolder, String filename, String documentType, Submission submission) { + Map inputData = submission.getInputData(); + return "\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\",\"%s\"\n" + .formatted( + batchIndex, + filename, // TODO remove file extension + documentType, + inputData.getOrDefault("firstName", ""), + inputData.getOrDefault("lastName", ""), + inputData.getOrDefault("ssns", ""), // TODO decrypt + inputData.getOrDefault("birthdate", ""), // TODO format + submission.getSubmittedAt(), // TODO format + String.format("\"%s/%s/%s\",", batchIndex, subfolder, filename)); + } + +} diff --git a/src/main/java/org/ladocuploader/app/cli/TransmitterCommands.java b/src/main/java/org/ladocuploader/app/cli/TransmitterCommands.java new file mode 100644 index 000000000..cbd1310ba --- /dev/null +++ b/src/main/java/org/ladocuploader/app/cli/TransmitterCommands.java @@ -0,0 +1,171 @@ +package org.ladocuploader.app.cli; + +import com.jcraft.jsch.JSchException; +import com.jcraft.jsch.SftpException; +import com.opencsv.exceptions.CsvDataTypeMismatchException; +import com.opencsv.exceptions.CsvRequiredFieldEmptyException; +import formflow.library.data.Submission; +import lombok.extern.slf4j.Slf4j; +import org.jetbrains.annotations.NotNull; +import org.ladocuploader.app.csv.CsvPackage; +import org.ladocuploader.app.csv.CsvService; +import org.ladocuploader.app.csv.enums.CsvPackageType; +import org.ladocuploader.app.csv.enums.CsvType; +import org.ladocuploader.app.data.Transmission; +import org.ladocuploader.app.data.TransmissionRepository; +import org.ladocuploader.app.data.enums.TransmissionStatus; +import org.ladocuploader.app.data.enums.TransmissionType; +import org.springframework.data.domain.Sort; +import org.springframework.shell.standard.ShellComponent; +import org.springframework.shell.standard.ShellMethod; + + +import java.io.File; +import java.io.FileOutputStream; +import java.io.IOException; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.*; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +@Slf4j +@ShellComponent +public class TransmitterCommands { + + private final TransmissionRepository transmissionRepository; + + private final SftpClient sftpClient; + + private final CsvService csvService; + + public TransmitterCommands(TransmissionRepository transmissionRepository, + SftpClient sftpClient, CsvService csvService) { + this.transmissionRepository = transmissionRepository; + this.sftpClient = sftpClient; + this.csvService = csvService; + } + + @ShellMethod(key = "transmit") + public void transmit() throws IOException, JSchException, SftpException { + log.info("Finding submissions to transmit..."); + + var allSubmissions = this.transmissionRepository.submissionsToTransmit(Sort.unsorted(), TransmissionType.ECE); + log.info("Total submissions to transmit for ECE is {}", allSubmissions.size()); + if (allSubmissions.size() > 0) { + log.info("Transmitting submissions for ECE"); + transmitBatch(allSubmissions, TransmissionType.ECE); + } else { + log.info("Skipping transmission for ECE"); + } + } + + private void transmitBatch(List submissions, TransmissionType transmissionType) throws IOException, JSchException, SftpException{ + String zipFilename = createZipFilename(transmissionType); + // TODO: get errors for the packageType + Map zipResults = zipFiles(submissions, zipFilename); + + List successfullySubmittedIds = (List) zipResults.get("success"); + + Map> failedSubmissions = (Map>) zipResults.get("failed"); + + // send zip file + log.info("Uploading zip file"); + String uploadLocation = transmissionType.getPackageType().getUploadLocation(); + sftpClient.uploadFile(zipFilename, uploadLocation); + File zip = new File(zipFilename); + if (zip.delete()) { + log.info("Deleted the folder: " + zip.getName()); + } else { + log.info("Failed to delete the folder " + zip.getName()); + } + + UUID runId = UUID.randomUUID(); + + // Update transmission in DB for success + successfullySubmittedIds.forEach(id -> { + Submission submission = Submission.builder().id(id).build(); + Transmission transmission = transmissionRepository.findBySubmissionAndTransmissionType(submission, transmissionType); + transmission.setTimeSent(new Date()); + transmission.setStatus(TransmissionStatus.Complete); + transmission.setRunId(runId); + transmissionRepository.save(transmission); + }); + log.info("Finished transmission of a batch"); + + failedSubmissions.forEach((id, errorMessages) -> { + Submission submission = Submission.builder().id(id).build(); + Transmission transmission = transmissionRepository.findBySubmissionAndTransmissionType(submission, transmissionType); + transmission.setStatus(TransmissionStatus.Failed); + transmission.setRunId(runId); + transmission.setSubmissionErrors(errorMessages); + transmissionRepository.save(transmission); + } + ); + + + + } + + @NotNull + private static String createZipFilename(TransmissionType transmissionType) { + // Format: Apps____2023-07-05.zip + DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDateTime now = LocalDateTime.now(); + String date = dtf.format(now); + return "Apps__" + transmissionType.name() + "__" + date + ".zip"; + } + + private void addZipEntries(CsvPackage csvPackage, ZipOutputStream zipOutput){ + CsvPackageType packageType = csvPackage.getPackageType(); + List csvTypes = packageType.getCsvTypeList(); + csvTypes.forEach(csvType -> + { + try { + byte[] document = csvPackage.getCsvDocument(csvType).getCsvData(); + ZipEntry entry = new ZipEntry(csvType.getFileName()); + entry.setSize(document.length); + zipOutput.putNextEntry(entry); + zipOutput.write(document); + zipOutput.closeEntry(); + // TODO: set status to failed for entire run if something goes wrong with zip? + } catch (IOException e) { + throw new RuntimeException(e); + } + + } + ); + } + + private Map zipFiles(List submissions, String zipFileName) throws IOException { + Map results = new HashMap<>(); + List successfullySubmittedIds = new ArrayList<>(submissions.stream() + .map(Submission::getId) + .toList()); + + try (FileOutputStream baos = new FileOutputStream(zipFileName); + ZipOutputStream zos = new ZipOutputStream(baos)) { + CsvPackage ecePackage = csvService.generateCsvPackage(submissions, CsvPackageType.ECE_PACKAGE); + Map> submissionErrors = ecePackage.getErrorMessages(); + log.info(submissionErrors.toString()); + + submissionErrors.forEach((submissionId, submissionErrorMessages) -> { + successfullySubmittedIds.remove(submissionId); + } + ); + + // TODO: at what point do we not submit the package/ mark as failed? does marking as failed mean that we should retry for this submission? + + addZipEntries(ecePackage, zos); + results.put("failed", submissionErrors); + + } catch (CsvRequiredFieldEmptyException | CsvDataTypeMismatchException e) { + throw new RuntimeException(e); + } + + results.put("success", successfullySubmittedIds); + + return results; + } +} + diff --git a/src/main/java/org/ladocuploader/app/csv/CsvDocument.java b/src/main/java/org/ladocuploader/app/csv/CsvDocument.java new file mode 100644 index 000000000..d4130aed2 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/CsvDocument.java @@ -0,0 +1,35 @@ +package org.ladocuploader.app.csv; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import lombok.Getter; +import lombok.Setter; +import org.ladocuploader.app.csv.enums.CsvType; + +@Getter +public class CsvDocument { + + @Setter + private byte[] csvData; + + @Setter + private CsvType csvType; + + // TODO Map to ERROR ENUM + private final Map errorMessages; + + public CsvDocument(CsvType csvType) { + this(csvType, null); + } + + public CsvDocument(CsvType csvType, byte [] csvData) { + errorMessages = new HashMap<>(); + this.csvData = csvData; + this.csvType = csvType; + } + + public void addErrorMessage(UUID submissionId, String errorMsg) { + errorMessages.put(submissionId, errorMsg); + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/CsvGenerator.java b/src/main/java/org/ladocuploader/app/csv/CsvGenerator.java new file mode 100644 index 000000000..987df7f58 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/CsvGenerator.java @@ -0,0 +1,127 @@ +package org.ladocuploader.app.csv; + +import com.opencsv.CSVWriter; + +import com.opencsv.bean.StatefulBeanToCsv; +import com.opencsv.bean.StatefulBeanToCsvBuilder; +import com.opencsv.bean.exceptionhandler.CsvExceptionHandler; +import com.opencsv.exceptions.CsvDataTypeMismatchException; +import com.opencsv.exceptions.CsvException; +import com.opencsv.exceptions.CsvRequiredFieldEmptyException; +import formflow.library.data.Submission; +import java.util.ArrayList; +import java.util.List; +import lombok.extern.slf4j.Slf4j; +import org.ladocuploader.app.csv.enums.CsvType; +import org.ladocuploader.app.csv.model.BaseCsvModel; +import org.ladocuploader.app.csv.model.ECEApplicationCsvModel; +import org.ladocuploader.app.csv.model.ParentGuardianCsvModel; +import org.ladocuploader.app.csv.model.StudentCsvModel; +import org.ladocuploader.app.csv.model.RelationshipCsvModel; +import org.ladocuploader.app.csv.model.WICApplicationCsvModel; +import org.springframework.stereotype.Component; + + +import java.io.ByteArrayOutputStream; +import java.io.IOException; +import java.io.OutputStreamWriter; + +@Component +@Slf4j +public class CsvGenerator { + // TODO: keep in mind for subflow unpacking etc. +// https://stackoverflow.com/questions/77230117/custom-converter-for-opencsv + + public CsvDocument generateRelationshipCsvData(List submissionList) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + + List relationships = new ArrayList<>(); + + for(Submission submission : submissionList) { + relationships.addAll(RelationshipCsvModel.generateModel(submission)); + } + + return generateCsv(CsvType.RELATIONSHIP, RelationshipCsvModel.class, relationships); + } + + + public CsvDocument generateParentGuardianCsvData(List submissionList) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + + List pgList = new ArrayList<>(); + + for (Submission submission : submissionList) { + BaseCsvModel pg = ParentGuardianCsvModel.generateModel(submission); + pgList.add(pg); + } + + return generateCsv(CsvType.PARENT_GUARDIAN,ParentGuardianCsvModel.class, pgList); + } + + public CsvDocument generateStudentCsvData(List submissionList) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + + List studentList = new ArrayList<>(); + + for (Submission submission : submissionList) { + List students = StudentCsvModel.generateModel(submission); + studentList.addAll(students); + } + return generateCsv(CsvType.STUDENT, StudentCsvModel.class, studentList); + } + + public CsvDocument generateECEApplicationCsvData(List submissionList) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + + List applicationList = new ArrayList<>(); + + for (Submission submission : submissionList) { + BaseCsvModel application = ECEApplicationCsvModel.generateModel(submission); + applicationList.add(application); + } + return generateCsv(CsvType.ECE_APPLICATION, ECEApplicationCsvModel.class, applicationList); + } + + public CsvDocument generateWICApplicationCsvData(List submissionList) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + + List applicationList = new ArrayList<>(); + + for (Submission submission : submissionList) { + BaseCsvModel application = WICApplicationCsvModel.generateModel(submission); + applicationList.add(application); + } + return generateCsv(CsvType.WIC_APPLICATION, WICApplicationCsvModel.class, applicationList); + } + + private CsvDocument generateCsv(CsvType csvType, Class classType, List objects) throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + CsvDocument csv = new CsvDocument(csvType); + HeaderColumnMappingStrategy strategy = new HeaderColumnMappingStrategy<>(); + strategy.setType(classType); + ByteArrayOutputStream stream = new ByteArrayOutputStream(); + OutputStreamWriter streamWriter = new OutputStreamWriter(stream); + CSVWriter writer = new CSVWriter(streamWriter); + StatefulBeanToCsv beanToCsv = new StatefulBeanToCsvBuilder(writer) + .withSeparator(',') + .withMappingStrategy(strategy) + .withQuotechar(CSVWriter.NO_QUOTE_CHARACTER) + .build(); + // write one line at a time to gather exceptions. Otherwise, we just have access to CsvExceptions and + // that's not particularly useful. + for (BaseCsvModel item : objects) { + try { + beanToCsv.write(item); + } catch (Exception e) { + log.warn("Exception caught while processing CSV (submission id: '{}', type: '{}'): '{}'", + item.getSubmissionId(), csvType, e.getMessage()); + if (e instanceof CsvException) { + // NOTE: this only captures one error per type per submission. + csv.addErrorMessage(item.getSubmissionId(), e.getMessage()); + } + } + } + streamWriter.flush(); + csv.setCsvData(stream.toByteArray()); + return csv; + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/CsvPackage.java b/src/main/java/org/ladocuploader/app/csv/CsvPackage.java new file mode 100644 index 000000000..b7738495e --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/CsvPackage.java @@ -0,0 +1,67 @@ +package org.ladocuploader.app.csv; + +import java.util.HashMap; +import java.util.Map; +import java.util.UUID; +import lombok.Getter; +import lombok.Setter; +import org.ladocuploader.app.csv.enums.CsvType; +import org.ladocuploader.app.csv.enums.CsvPackageType; + +@Getter +public class CsvPackage { + + @Setter + private CsvPackageType packageType; + + private Map csvDocumentMap; + + private int totalSubmissionsProcessed; + + public CsvPackage(CsvPackageType packageType) { + csvDocumentMap = new HashMap<>(); + this.packageType = packageType; + } + + public Map getErrorMessages(CsvType csvType) { + if (csvDocumentMap.containsKey(csvType)) { + return csvDocumentMap.get(csvType).getErrorMessages(); + } + return null; + } + + public Map> getErrorMessages() { + Map> errorMap = new HashMap<>(); + + csvDocumentMap.forEach((csvType, csv) -> { + Map docErrors = csv.getErrorMessages(); + docErrors.entrySet() + .forEach(entry -> { + errorMap.put(entry.getKey(), Map.of(csvType, entry.getValue())); + }); + }); + + return errorMap; + +/* + Map> errorMap = new HashMap<>(); + csvDocumentMap.forEach((csvType, csv) -> { + errorMap.put(csvType, csv.getErrorMessages()); + }); + return errorMap; + + */ + } + + public void addCsvDocument(CsvDocument csv) { + if (csv == null) { + return; + } + csvDocumentMap.put(csv.getCsvType(), csv); + } + + public CsvDocument getCsvDocument(CsvType csvType) { + return csvDocumentMap.get(csvType); + } +} + diff --git a/src/main/java/org/ladocuploader/app/csv/CsvService.java b/src/main/java/org/ladocuploader/app/csv/CsvService.java new file mode 100644 index 000000000..c45664cc3 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/CsvService.java @@ -0,0 +1,88 @@ +package org.ladocuploader.app.csv; + + +import static org.ladocuploader.app.csv.enums.CsvType.PARENT_GUARDIAN; +import static org.ladocuploader.app.csv.enums.CsvType.RELATIONSHIP; +import static org.ladocuploader.app.csv.enums.CsvType.STUDENT; + +import com.opencsv.exceptions.CsvDataTypeMismatchException; +import com.opencsv.exceptions.CsvRequiredFieldEmptyException; +import formflow.library.data.Submission; + +import java.time.Instant; +import java.util.List; +import lombok.extern.slf4j.Slf4j; +import org.ladocuploader.app.csv.enums.CsvPackageType; +import org.ladocuploader.app.csv.enums.CsvType; +import org.springframework.stereotype.Service; +import java.io.IOException; + +@Slf4j +@Service +public class CsvService { + + private final CsvGenerator csvGenerator; + + /** + * Enum type representing the different CSV files that can be generated. + */ + public CsvService(CsvGenerator csvGenerator) { + this.csvGenerator = csvGenerator; + } + + + /** + * A method that generates the specific CsvType CSV data for the passed in list of Submissions. + * + * @param submissionList List of submission to include in the CSV data + * @param csvType The type of CSV to generate the data for + * @return a byte array of CSV formatted data + * @throws CsvRequiredFieldEmptyException + * @throws CsvDataTypeMismatchException + * @throws IOException + */ + public CsvDocument generateCsvFormattedData(List submissionList, CsvType csvType) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + return switch (csvType) { + case STUDENT -> csvGenerator.generateStudentCsvData(submissionList); + case RELATIONSHIP -> csvGenerator.generateRelationshipCsvData(submissionList); + case PARENT_GUARDIAN -> csvGenerator.generateParentGuardianCsvData(submissionList); + case ECE_APPLICATION -> csvGenerator.generateECEApplicationCsvData(submissionList); + case WIC_APPLICATION -> csvGenerator.generateWICApplicationCsvData(submissionList); + default -> { + log.warn("Unknown CSV Type requested: {}", csvType.name()); + yield null; + } + }; + } + + /** + * Returns a + * @param submissionList + * @param packageType + * @return + */ + public CsvPackage generateCsvPackage(List submissionList, CsvPackageType packageType) + throws CsvRequiredFieldEmptyException, CsvDataTypeMismatchException, IOException { + CsvPackage csvPackage = new CsvPackage(packageType); + + List csvTypes = packageType.getCsvTypeList(); + + for (CsvType csvType : csvTypes) { + csvPackage.addCsvDocument(generateCsvFormattedData(submissionList, csvType)); + } + + return csvPackage; + } + + /** + * Generates a generic pdf file name from the flow name and CSV Type, along with a timestamp of milliseconds since Epoch. + * + * @param flowName - name of the flow + * @param csvType - the type of the CVS we are generating + * @return A filename to use for the CSV + */ + public String generateCsvName(String flowName, CsvType csvType) { + return String.format("%s_%s_%s.csv", flowName, csvType.name(), Instant.now().toEpochMilli()); + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/HeaderColumnMappingStrategy.java b/src/main/java/org/ladocuploader/app/csv/HeaderColumnMappingStrategy.java new file mode 100644 index 000000000..06e57471d --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/HeaderColumnMappingStrategy.java @@ -0,0 +1,20 @@ +package org.ladocuploader.app.csv; + +import com.opencsv.bean.HeaderColumnNameMappingStrategy; +import com.opencsv.exceptions.CsvRequiredFieldEmptyException; +import java.util.Arrays; + + +/** + * A class that helps generate the header in lower case characters + * versus upper case (default). + * @param + */ +public class HeaderColumnMappingStrategy extends HeaderColumnNameMappingStrategy { + + @Override + public String[] generateHeader(T bean) throws CsvRequiredFieldEmptyException { + return Arrays.stream(super.generateHeader(bean)) + .map(String::toLowerCase).toArray(String[]::new); + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/converters/AddressStreetConverter.java b/src/main/java/org/ladocuploader/app/csv/converters/AddressStreetConverter.java new file mode 100644 index 000000000..12f0577e1 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/converters/AddressStreetConverter.java @@ -0,0 +1,28 @@ +package org.ladocuploader.app.csv.converters; + +import com.opencsv.bean.AbstractBeanField; +import com.opencsv.exceptions.CsvConstraintViolationException; +import com.opencsv.exceptions.CsvDataTypeMismatchException; +import java.util.Map; +import lombok.NoArgsConstructor; +import lombok.extern.slf4j.Slf4j; + +/** + * This converter will take a two line address and concatenate it into one. + */ +@NoArgsConstructor +@Slf4j +public class AddressStreetConverter extends AbstractBeanField { + + @Override + protected Object convert(String value) throws CsvDataTypeMismatchException, CsvConstraintViolationException { + return value + "CONVERTED"; + } + + @Override + protected String convertToWrite(Object value) { + Map address = (Map) value; + return String.format("%s %s", address.get("address1"), address.get("address2")); + } +} + diff --git a/src/main/java/org/ladocuploader/app/csv/converters/HouseholdBirthDateConverter.java b/src/main/java/org/ladocuploader/app/csv/converters/HouseholdBirthDateConverter.java new file mode 100644 index 000000000..d78eced7d --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/converters/HouseholdBirthDateConverter.java @@ -0,0 +1,24 @@ +package org.ladocuploader.app.csv.converters; + +import com.opencsv.bean.AbstractBeanField; +import java.util.Map; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +public class HouseholdBirthDateConverter extends AbstractBeanField { + + @Override + protected Object convert(String value) { + return value; + } + + @Override + protected String convertToWrite(Object value) { + Map dateMap = (Map) value; + return String.format("%04d-%02d-%02d", + dateMap.get("year"), + dateMap.get("month"), + dateMap.get("day") + ); + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/converters/PhoneNumberConverter.java b/src/main/java/org/ladocuploader/app/csv/converters/PhoneNumberConverter.java new file mode 100644 index 000000000..7d83979cb --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/converters/PhoneNumberConverter.java @@ -0,0 +1,30 @@ +package org.ladocuploader.app.csv.converters; + +import com.opencsv.bean.AbstractBeanField; +import lombok.NoArgsConstructor; + +/** + * This converter will convert a phone number field from this format + * (123) 456-7890 to this +1234567890 format. + * + */ +@NoArgsConstructor +public class PhoneNumberConverter extends AbstractBeanField { + + @Override + protected Object convert(String value) { + return value; + } + + @Override + protected String convertToWrite(Object value) { + String phoneNumber = (String)value; + + phoneNumber = phoneNumber.replaceAll("\\(", "") + .replaceAll("\\)", "") + .replaceAll("\\W", ""); + phoneNumber = "+1" + phoneNumber; + return phoneNumber; + } + +} diff --git a/src/main/java/org/ladocuploader/app/csv/enums/CsvPackageType.java b/src/main/java/org/ladocuploader/app/csv/enums/CsvPackageType.java new file mode 100644 index 000000000..266bdde21 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/enums/CsvPackageType.java @@ -0,0 +1,33 @@ +package org.ladocuploader.app.csv.enums; + +import static org.ladocuploader.app.csv.enums.CsvType.ECE_APPLICATION; +import static org.ladocuploader.app.csv.enums.CsvType.PARENT_GUARDIAN; +import static org.ladocuploader.app.csv.enums.CsvType.RELATIONSHIP; +import static org.ladocuploader.app.csv.enums.CsvType.STUDENT; +import static org.ladocuploader.app.csv.enums.CsvType.WIC_APPLICATION; + +import java.util.List; +import org.ladocuploader.app.csv.CsvService; + +public enum CsvPackageType { + + // TODO: abstract environment + ECE_PACKAGE (List.of(PARENT_GUARDIAN, STUDENT, RELATIONSHIP, ECE_APPLICATION), "/la-du-moveit-transfer/nola-ps"), + WIC_PACKAGE (List.of(WIC_APPLICATION), "/la-du-moveit-transfer/wic"); + + private final List csvTypeList; + + private final String uploadLocation; + CsvPackageType(List csvTypeList, String uploadLocation) { + this.csvTypeList = csvTypeList; + this.uploadLocation = uploadLocation; + } + + public List getCsvTypeList() { + return this.csvTypeList; + } + + public String getUploadLocation() { + return this.uploadLocation; + } +} \ No newline at end of file diff --git a/src/main/java/org/ladocuploader/app/csv/enums/CsvType.java b/src/main/java/org/ladocuploader/app/csv/enums/CsvType.java new file mode 100644 index 000000000..bd5f402ef --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/enums/CsvType.java @@ -0,0 +1,20 @@ +package org.ladocuploader.app.csv.enums; + +import lombok.Getter; + +@Getter +public enum CsvType { + PARENT_GUARDIAN("ParentGuardian", "parent_guardian.csv"), + STUDENT("Student", "student.csv"), + RELATIONSHIP("Relationship", "relationship.csv"), + ECE_APPLICATION("ECE Application", "application.csv"), + WIC_APPLICATION("WIC Application", "application.csv"); + + private final String name; + private final String fileName; + CsvType(String name, String fileName) { + this.name = name; + this.fileName = fileName; + } +} + diff --git a/src/main/java/org/ladocuploader/app/csv/model/Application.java b/src/main/java/org/ladocuploader/app/csv/model/Application.java new file mode 100644 index 000000000..0da811e8c --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/Application.java @@ -0,0 +1,66 @@ +package org.ladocuploader.app.csv.model; + +import com.opencsv.bean.CsvBindByName; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class Application { + @CsvBindByName(column="Student Id", required=true) + public String studentId; + + @CsvBindByName(column="Application Status", required=true) + public String applicationStatus; + + @CsvBindByName(column="Hide Application From Parent", required=true) + public String hideApplicationFromParent; + + @CsvBindByName(column="School Id") + public String schoolId; + + @CsvBindByName(column="School Rank") + public String schoolRank; + + @CsvBindByName(column="Admin Notes") + public String adminNotes; + + @CsvBindByName(column="Admin Last Reviewed Date") + public String adminLastReviewedDate; + + @CsvBindByName(column="Admin Reviewer Name") + public String adminReviewerName; + + @CsvBindByName(column="Current phone number") + public String phoneNumber; + + @CsvBindByName(column="Do you want to receive text communication from NOLA Public Schools?") + public String NolaTextComms; + + @CsvBindByName(column="Current email address") + public String emailAddress; + + + // TODO: how does this look like for an application with multiple children? + @CsvBindByName(column="When was your child born?") + public String childBirthDate; + + @CsvBindByName(column="Select the option that best describes where you live.") + public String livingOption; + + @CsvBindByName(column="This questionnaire is intended to address the McKinney-Vento Act. Your child may be eligible for additional educational services. Did the student receive McKinney Vento (Homeless) Services in a previous school district?") + public String receiveServices; + + @CsvBindByName(column="Is the student’s address a temporary living arrangement?") + public String temporaryLivingArrangement; + + @CsvBindByName(column="Is the temporary living arrangement due to loss of housing or economic hardship?") + public String economicHardship; + + @CsvBindByName(column="Does the student have a disability or receive any special education-related services?") + public String disabilityServices; + + @CsvBindByName(column="Where is the student currently living?") + public String livingWhere; + +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/BaseCsvModel.java b/src/main/java/org/ladocuploader/app/csv/model/BaseCsvModel.java new file mode 100644 index 000000000..785c292aa --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/BaseCsvModel.java @@ -0,0 +1,21 @@ +package org.ladocuploader.app.csv.model; + +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.opencsv.bean.CsvIgnore; +import java.util.UUID; +import lombok.Getter; +import lombok.Setter; + +public class BaseCsvModel { + + @Setter + @Getter + protected UUID submissionId; + @CsvIgnore + final static ObjectMapper mapper = new ObjectMapper(); // jackson's objectmapper + + static { + mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/ECEApplicationCsvModel.java b/src/main/java/org/ladocuploader/app/csv/model/ECEApplicationCsvModel.java new file mode 100644 index 000000000..b1be16a81 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/ECEApplicationCsvModel.java @@ -0,0 +1,841 @@ +package org.ladocuploader.app.csv.model; + +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.opencsv.bean.CsvBindByName; +import com.opencsv.bean.CsvCustomBindByName; +import formflow.library.data.Submission; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import lombok.Getter; +import lombok.Setter; +import lombok.extern.slf4j.Slf4j; +import org.ladocuploader.app.csv.converters.AddressStreetConverter; +import org.ladocuploader.app.csv.converters.PhoneNumberConverter; +import org.ladocuploader.app.utils.HouseholdUtilities; + +@Getter +@Setter +@Slf4j +public class ECEApplicationCsvModel extends BaseCsvModel { + + @CsvBindByName(column="cfa_reference_id") + private String id; + + // they will populate this field, we put it in for convenience + @CsvBindByName(column="Student Id {{student-id}}", required=true) + private String studentId; + + // ********** BEGIN Avela required fields ************* // + @CsvBindByName(column="Status (InProgress/Submitted) {{status}}", required=true) + private String status = "InProgress"; // requested default + + @CsvBindByName(column="Hide Application from Parent (Yes/No) {{hide}}", required=true) + private String hideApplication = "No"; // required field, requested default + + // ********** END Avela required fields ************* // + + // *** no questions for this one *** // + @CsvBindByName(column="School Id {{school-id}}") + private String schoolId; + + // *** no questions for this one *** // + @CsvBindByName(column="School Rank {{school-rank}}") + private String schoolRank; + + // *** no questions for this one *** // + @CsvBindByName(column="Admin Notes {{9ddb4548-18ec-41e0-a872-1cb9036052b8}}") + private String adminNotes; + + // *** no questions for this one *** // + @CsvBindByName(column="Admin Last Reviewed Date {{7367c557-48b9-4bbc-af98-3dad61b6c80e}}") + private String adminLastReviewedDate; + + // *** no questions for this one *** // + @CsvBindByName(column="Admin Reviewer Name {{e6ad498b-dc32-4b07-a85b-51d53698531f}}") + private String adminReviewerName; + + @CsvBindByName(column="Current phone number: {{96caa531-7196-4067-bbad-67a028b8a18c}}", required=true) + private String phoneNumber; + + @CsvBindByName(column="Do you want to receive text communication from NOLA Public Schools? {{b7a45036-80cd-46d5-950b-890d553a99a6}}") + private String allowTextCommunicationFromNolaPS; + + @CsvBindByName(column="Current email address: {{e89a5696-5c8a-497c-ae97-54c236c35225}}") + private String emailAddress; + + // TODO format? + @CsvBindByName(column="When was your child born? {{60dacb29-5950-4231-8150-5d24c3f1c76a}}") + private String childBirthDate; + + // *** no questions for this one *** // + @CsvBindByName(column="Select the option that best describes where you live. {{cbbe71ea-8564-4980-8550-09be1be6775a}}") + private String descriptionOfLivingEnv; + + // *** no questions for this one *** // + @CsvBindByName(column="This questionnaire is intended to address the McKinney-Vento Act. Your child may be eligible for additional educational services. Did the student receive McKinney Vento (Homeless) Services in a previous school district? {{2137fc3b-97a6-495c-983e-b7ffd706d5cb}}", required=true) + private String hadHomelessServicesInPreviousSchool; + + @CsvBindByName(column="Is the student’s address a temporary living arrangement? {{d38f1b8e-0243-48aa-945b-16028a0ef711}}") + private String isStudentAddressTemporaryLiving; + + // *** no questions for this one *** // + @CsvBindByName(column="Is the temporary living arrangement due to loss of housing or economic hardship? {{e48d3080-50af-40b3-9f56-bfa07ba0b4d5}}") + private String isTempLivingDueToLossOfHousingOrEconomicHardship; + + @CsvBindByName(column="Does the student have a disability or receive any special education-related services? {{a9a378c6-3a9c-4d02-8175-e08b53b5a6b6}}") + private String doesStudentHaveDisabilityOrSpecEdServices; + + // TODO - what format? Address or description? + @CsvBindByName(column="Where is the student currently living? {{89471b56-80c6-42f1-9306-52558993613a}}") + private String whereDoesStudentCurrentlyLive; + + // *** no questions for this one *** // + @CsvBindByName(column="Other specific information about where the student is currently living: {{1611f4e9-51c5-4b98-b341-5b6c7d7fd2da}}") + private String specificsAboutWhereStudentCurrentlyLiving; + + // *** no questions for this one *** // + @CsvBindByName(column="Does the student exhibit any behaviors that may interfere with his or her academic performance? {{553eb30e-9b7a-4d70-b57f-67a57b2b3124}}") + private String doesStudentHaveBehaviorsThatAffectAcademics; + + // *** no questions for this one *** // + @CsvBindByName(column="Would you like assistance with uniforms, student records, school supplies, transportation, other? (Describe): {{2f4ec55e-b38a-41c3-b5df-b4f4c1f7397f}}") + private String needAssistanceWithSchoolRelatedThings; + + // *** no questions for this one *** // + @CsvBindByName(column="Migrant – Have you moved at any time during the past three (3) years to seek temporary or seasonal work in agriculture (including Poultry processing, dairy, nursery, and timber) or fishing? {{f15cc4fa-f374-4e11-915e-bf8080bdabe9}}") + private String hasFamilyMovedForAgriWork; + + @CsvBindByName(column="How many people, including children, are in your household? Only include all children, parents, guardians, and/or additional adults who provide financial support to the family. {{2c9aa7c8-4d13-42ad-971d-c67b12b11f3c}}") + private String howManyPeopleInHousehold; + + // *** no questions for this one *** // + @CsvBindByName(column="Upload a current Foster Care Placement Agreement from DCFS. {{ec3173bd-76e0-4612-a619-1837bf38d8b0}}") + private String placementAgreementDCFS; + + @CsvBindByName(column="Select the gender that best matches your child's SNAP application choice: {{ba83974f-bef9-41b0-9f6a-5616ffdbbd92}}") + private String childGender; + + @CsvBindByName(column="Select the ethnicity that best matches your child's SNAP application choice: {{621a6556-63dd-48a2-9f84-38669389d683}}") + private String childEthnicity; + + // TODO: what does this mean + @CsvBindByName(column="Select the race that best matches your child's SNAP application choice: {{9e26600f-fe56-4b9d-9b50-2a9a2ee879a8}}") + private String snapApplicationChoice; + + // TODO: probably don't need this field + @CsvBindByName(column="Upload proof of SNAP benefits, upload must include: Child’s name, Parent’s name, and certification thru date. {{2b0fb1d7-960c-4539-bcc9-a937b57512cb}}") + private String snapDocumentationProof; + + @CsvBindByName(column="(2 people) What is your monthly household income? {{0f5a6893-9984-43f5-bc2b-7d42961d82e8}}") + private String monthlyHouseholdIncomeTwoPeople; + + @CsvBindByName(column="(3 people) What is your monthly household income? {{e6ed2d15-8a27-48d7-ae04-a6ea6a9cc69a}}") + private String monthlyHouseholdIncomeThreePeople; + + @CsvBindByName(column="(4 people) What is your monthly household income? {{117f3de3-1965-40f9-95d6-e5f7ea26985d}}") + private String monthlyHouseholdIncomeFourPeople; + + @CsvBindByName(column="(5 people) What is your monthly household income? {{62545824-4f48-4b2b-b27a-38ed11b1904e}}") + private String monthlyHouseholdIncomeFivePeople; + + @CsvBindByName(column="(6 people) What is your monthly household income? {{cb48064f-34eb-43cb-9fb6-d0c9d642bb8f}}") + private String monthlyHouseholdIncomeSixPeople; + + @CsvBindByName(column="(7 people) What is your monthly household income? {{f741dbf8-f125-45bd-8617-93a723a96abd}}") + private String monthlyHouseholdIncomeSevenPeople; + + @CsvBindByName(column="(8 people) What is your monthly household income? {{414ba9f8-4820-4780-8ba9-5e4b5aaa7fd2}}") + private String monthlyHouseholdIncomeEightPeople; + + @CsvBindByName(column="(9 people) What is your monthly household income? {{8d65d784-dd8a-46e9-9699-f5a52906417e}}") + private String monthlyHouseholdIncomeNinePeople; + + // *** no questions for this one *** // + @CsvBindByName(column="Upload your child's current Individualized Education Program (IEP) {{cad80fcd-51d3-4c59-b720-2d6a79a89ea6}}") + private String uploadedChildsIEP; + + // *** no questions for this one *** // + @CsvBindByName(column="Verified income entered matches the monthly income range chosen on application. (Update range to match verified income). FRC Verified Income: {{d945ebd8-b8f8-4b8d-bcd3-42629c737971}}") + private String verifiedIncomeRange; + + // *** no questions for this one *** // + @CsvBindByName(column="EHS/HS Verified Income: {{80265075-ee90-4f63-aa92-fe6639c14c05}}") + private String verifiedIncomeEHSHS; + + // *** no questions for this one *** // + @CsvBindByName(column="Foster care agreement notes {{b0761781-8c9f-4ecc-b012-970c5a802c24}}") + private String fosterCareAgreementNotes; + + // *** no questions for this one *** // + @CsvBindByName(column="SNAP verified date {{e5807d51-0c40-423b-b7fe-f1752818affd}}") + private String snapVerifiedDate; + + // *** no questions for this one *** // + @CsvBindByName(column="ECS Only: IEP verification notes {{be56686a-d1d8-4f90-8bff-fab1b1c66d33}}") + private String verificationNotesIEP; + + @CsvBindByName(column="Select the option below that best describes your household: {{cecc3450-685a-4e5f-9530-61653eaac98d}}", required=true) + private String householdDescription; + + @CsvBindByName(column="Provide 1 of 4 forms of verification documents listed below: {{bb6e7a83-f22e-48f0-8135-8b12594970b5}}", required=true) + private String verificationDocumentOneType; + + @CsvBindByName(column="Verification document upload: {{5aa666e9-b955-4936-a2c3-d260b9278d10}}") + private String verificationDocumentOne; + + @CsvBindByName(column="Provide 1 of 4 forms of verification documents listed below: {{81f31312-ec04-4612-93e2-971be134cd0f}}") + private String verificationDocumentTwoType; + + @CsvBindByName(column="Verification document upload: {{50a35817-c6ad-4235-b7fb-afafc56a3aa9}}") + private String verificationDocumentTwo; + + @CsvBindByName(column="[NO LONGER ON APPLICATION] Are ALL adults in the household working, in school, in a training program, or seeking work? (Household composition does not include: aunts, uncles, adult children, grandparents, etc. Only count adults who are legal guardians.) {{d28a4562-e878-4c60-bc67-8f3786a4c40e}}") + private String areAllAdultsInHouseholdWorking; + + @CsvBindByName(column="[NO LONGER ON APPLICATION] Verification of disability allows adults in a household to be exempt from work or actively seeking employment requirements. Do any adults in your household have a disability? {{1416efe4-4f3e-4fbe-af1e-bbc31ee77d82}}") + private String anyAdultsInHouseholdHaveDisability; + + // *** no questions for this one *** // + @CsvBindByName(column="Admin notes on application {{8df5f004-4e22-4fad-9dc0-3028ff30fdac}}") + private String adminNotesOnApplication; + + // *** no questions for this one *** // + @CsvBindByName(column="[DOES NOT APPEAR ON APPLICATION] Are you interested in taking a seat now (2022-23 school year)? The list of available programs is linked below. We’ll make offers as seats become available. There is limited availability. {{ced46aa6-2de0-42de-ba17-01bf356b2437}}") + private String takeASeatCurrentSchoolYear; + + // *** no questions for this one *** // + @CsvBindByName(column="Upload your child's birth certificate. (If your child is not yet born, you will need to provide this before enrollment). {{dbecb765-3f4c-4763-82f7-0862c59308fa}}") + private String studentsBirthCertificateDocument; + + @CsvBindByName(column="Child's birthdate (format: MM-DD-YYYY). Birthdate on birth certificate should match DOB entered on application. (If not, edit student record to match) {{4d057d18-dcd3-4905-aa1e-298d92509101}}") + private String studentsBirthDate; + + @CsvBindByName(column="Is your name on the birth certificate? {{04b3a5f1-ff0d-43a8-8a6a-e8627bf61cd2}}") + private String isParentNameOnBirthCertificate; + + // *** no questions for this one *** // + @CsvBindByName(column="If your name is not on the birth certificate, then you will also need to provide proof of custody. If you are unable to provide one of these documents right now, you will need to provide proof of custody before enrollment. Select the document you are uploading. {{89a8a5e5-b60c-4e83-896c-318c64d5d475}}") + private String custodyProofDocumentType; + + // *** no questions for this one *** // + @CsvBindByName(column="Upload documentation of proof of custody. {{23baee5b-8f8e-4dc4-87f3-9a017f855859}}") + private String custodyProofDocument; + + // *** no questions for this one *** // + @CsvBindByName(column="Does the adult on this application have the authority to complete this application for this child? Describe relationship to student (optional) {{ebafed1e-b16b-46ab-80f3-ee56b1516a64}}") + private String applicantsRelationshipToStudent; + + // *** no questions for this one *** // + @CsvBindByName(column="Upload the government-issued ID or Passport for adult(s) in the household, including the parent/guardian completing the application. {{473eea87-56c9-4e66-8a55-cbe979f77fb5}}") + private String governmentIssuedIDDocument; + + // *** no questions for this one *** // + @CsvBindByName(column="Is your name or your spouse's name listed on the residency documents that you will be providing? {{30603d5d-3dee-45fa-b897-893cb5f1829f}}") + private String isYourNameOrSpouseNameOnResidencyDocuments; + + // *** no questions for this one *** // + @CsvBindByName(column="Proof of residency #1. {{3e0e2b61-d9bb-48b7-bf3a-9420e0d0ac75}}") + private String proofOfResidencyDocumentOne; + + // *** no questions for this one *** // + @CsvBindByName(column="Verified residency document #1 type: {{154963c2-8a53-4cf3-add2-330a84a0eaad}}") + private String proofOfResidencyDocumentOneType; + + // *** no questions for this one *** // + @CsvBindByName(column="Proof of residency #2. {{640e2fc0-552f-486e-b24e-ce715e551c2a}}") + private String proofOfResidencyDocumentTwo; + + // *** no questions for this one *** // + @CsvBindByName(column="Verified residency document #2 type: {{952bf770-a7a7-4060-9e85-0731f8ba553c}}") + private String proofOfResidencyDocumentTwoType; + + + + + + // *** START VALIDATING HERE + @CsvBindByName(column="Either the parent/guardian name must be on the residency documents or if the parent/guardian lives with another adult who is named on the residency documents, the parent/guardian must upload two proofs of residency in the resident's name and a photo ID from the person named on the documents. {{79aae8cf-13f0-4787-8c23-4f0a87e319e0}}") + String residencyNotice; + + @CsvBindByName(column="What is the name of the person on the residency documents? (ID matching that name must be uploaded) {{bce6f956-52b7-40a2-b042-886051e9f5cd}}") + String residencyDocumentPersonName; + + @CsvBindByName(column="What is the phone number of the person named on the residency documents uploaded? {{b6a5c1ce-5eb0-45ca-af5e-66dd440fe1e6}}") + String residencyDocumentPersonPhoneNumber; + + @CsvBindByName(column="Does the named resident provide financial support to the child’s family? {{9b6bbda0-04f6-49b5-949c-ee75977d47e7}}") + String doesResidencyDocumentPersonProvideFinancialSupport; + + @CsvBindByName(column="Date on Residency Docs (Expires 2 months after app submission date if family is not verified): {{9140ae3c-c6dc-4f67-8bde-ee87b8ef202b}}") + String residencyDocumentDate; + + @CsvBindByName(column="Upload your applicant child's current immunization records. {{34c5e5ee-c4ca-43de-8b89-00e672f6f8c4}}") + String childsImmunizationRecordDocument; + + @CsvBindByName(column="Notes on immunization records, if needed {{59f6d133-3da5-4c3e-bbf8-e7383bea4913}}") + String childImmunizationRecordNotes; + + @CsvBindByName(column="How many adults are in the household? {{6c7586e5-b989-402a-b1bd-7f7474e4a7fc}}") + String numberOfAdultsInHousehold; + + + // *** START Adult One *** UNUSED FIELDS, Use other Adult one section fields below *** + @CsvBindByName(column="[NO LONGER ON APPLICATION] For each adult in the household (18+ years old, up to 3 adults), provide the following information. Is Adult 1 (yourself) working, in school, or in a training program? {{316a6e00-a7bd-49f1-9432-f58d3d401ae4}}") + String isAdultOneSchoolWorkTraining; + @CsvBindByName(column="Pay statement upload #1 and #2. Two consecutive pay statements if paid twice a month or 4 consecutive pay statements if paid every week {{3d81cb01-ab00-4588-abad-3a5197f2f88f}}") + String UNUSED_adultOnePayStatementsOneAndTwo; + @CsvBindByName(column="Pay statement upload #3 and #4 {{a0d5e1e8-f2b4-4f2c-9069-74a1ed36d9d8}}") + String UNUSED_adultOnePayStatementsThreeAndFour; + @CsvBindByName(column="Employer letter {{9cf66ea0-094e-4808-ad80-2cb5b01bcefe}}") + String UNUSED_adultOneEmployerLetter; + @CsvBindByName(column="I state that my income or support comes from: {{92230880-e90b-4c7a-a26c-d7d1bd907baf}}") + String UNUSED_adultOneIncomeSupportComesFrom; + @CsvBindByName(column="If choosing 'Self-Employment', upload your most recent IRS Form 1099. {{8153e62d-e053-45f0-95dc-f94b395f4443}}") + String UNUSED_adultOneSelfEmployment1099; + @CsvBindByName(column="If choosing 'Parents/family', attach a statement from person providing support. {{55da4cd1-dd49-40dc-98da-d6fac94bb5f7}}") + String UNUSED_adultOneSupportFromParentFamilyStatementDocument; + @CsvBindByName(column="If choosing 'Other', describe your source of income. {{b6e220c0-f3f4-47e8-a372-89f4ced37e1e}}") + String UNUSED_adultOneOtherDescription; + @CsvBindByName(column="Gross Income January: {{f62b5e19-f768-415f-8b23-735108c0eaa8}}") + String UNUSED_adultOneGrossIncomeJanuary; + @CsvBindByName(column="Gross Income February: {{40da6d7a-2d29-4a21-b843-7555699da6bb}}") + String UNUSED_adultOneGrossIncomeFebruary; + @CsvBindByName(column="Gross Income March: {{63677019-2e4d-4fbf-8299-8a90b30f50fb}}") + String UNUSED_adultOneGrossIncomeMarch; + @CsvBindByName(column="Gross Income April: {{f9debaf7-fde6-45e2-bb35-6190527626c6}}") + String UNUSED_adultOneGrossIncomeApril; + @CsvBindByName(column="Gross Income May: {{4bee9be8-f049-4b51-8d2b-fdecacfceabe}}") + String UNUSED_adultOneGrossIncomeMay; + @CsvBindByName(column="Gross Income June: {{3ec3dc81-dbd8-4686-86cf-e5fb635e2aac}}") + String UNUSED_adultOneGrossIncomeJune; + @CsvBindByName(column="Gross Income July: {{9db3568e-1f3a-4e71-90d0-5f82cd79f8d1}}") + String UNUSED_adultOneGrossIncomeJuly; + @CsvBindByName(column="Gross Income August: {{5903772c-8aa5-467e-95ac-058004e08a0b}}") + String UNUSED_adultOneGrossIncomeAugust; + @CsvBindByName(column="Gross Income September: {{7b4b2a1d-0818-4762-8014-c46dfea1d569}}") + String UNUSED_adultOneGrossIncomeSeptember; + @CsvBindByName(column="Gross Income October: {{1b2301b3-ac72-4b0f-b869-f90072462816}}") + String UNUSED_adultOneGrossIncomeOctober; + @CsvBindByName(column="Gross Income November: {{a4a63253-0566-46c1-8c7b-27aa9571df48}}") + String UNUSED_adultOneGrossIncomeNovember; + @CsvBindByName(column="Gross Income December: {{8a974b5e-c05e-44d5-99dd-29937fbdee63}}") + String UNUSED_adultOneGrossIncomeDecember; + @CsvBindByName(column="(Irregular Income) My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{4c39f2a0-b342-4be7-8c3d-226c81ba4d0b}}") + String UNUSED_adultOneHouseholdThingsPaidForByIrregularIncome; + @CsvBindByName(column="Upload proof of HIRE account registration with date of registration {{263c0713-2c95-4108-a934-a053885e0823}}") + String UNUSED_adultOneHIRERegistrationProof; + @CsvBindByName(column="Proof of enrollment in school {{cd112c23-0c61-4545-820d-c30d606e5c6e}}") + String UNUSED_adultOneProofOfSchoolEnrollment; + @CsvBindByName(column="Provide hours attending and training courses on organization’s letterhead {{bb48b12b-9b98-4608-ab95-5a01bfd1d0a6}}") + String UNUSED_adultOneHoursAttendingTrainingCoursesDocument; + @CsvBindByName(column="Upload documentation of your Unemployment Benefits: a Monetary Determination letter from the Workforce Commission {{764309ac-35c9-4174-a7e8-348aec0478c0}}") + String UNUSED_adultOneUnemploymentBenefitsDocumentation; + @CsvBindByName(column="Enter the number of months you have been without income: {{7318d2d4-3540-4003-9693-39fae21789f3}}") + String UNUSED_adultOneNumberMonthsWithoutIncome; + @CsvBindByName(column="I am (check all that apply) {{70d8c66e-1b33-43d2-8986-8e91d9aebb81}}") + String UNUSED_adultOneIAmOptions; + @CsvBindByName(column="If 'Other', describe your employment status {{5dfe978d-d70d-4660-a307-cdb02e09c0ff}}") + String UNUSED_adultOneIAmOtherNotes; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{c37ef8be-0053-43ed-92b6-375bfa09d2b1}}") + String UNUSED_adultOneHouseholdThingsPaidForByRegularIncome; + // *** END Adult One *** + + // *** START Adult Two *** UNUSED FIELDS use other section of Adult two fields below + @CsvBindByName(column="[NO LONGER ON APPLICATION] Is Adult 2 (if applicable) working, in school, or in a training program? {{07f6f02c-214b-47e8-9475-3a4ece6ff4c3}}") + String isAdultTwoSchoolWorkTraining; + @CsvBindByName(column="Pay statement upload #1 and #2 (Adult 2) Two consecutive pay statements if paid twice a month or 4 consecutive pay statements if paid every week) {{610ce4e6-6a77-4e4c-a15e-adf2ffc080b1}}") + String UNUSED_adultTwoPayStatementOneAndTwo; + @CsvBindByName(column="Pay statement upload #3 and #4 (Adult 2) {{c0b7c33d-a6ae-4e8f-a221-79c388682e2c}}") + String UNUSED_adultTwoPayStatementThreeAndFour; + @CsvBindByName(column="I state that my income or support comes from (Adult 2): {{efd9993b-5e84-476f-af3f-d3d9dfa795fb}}") + String UNUSED_adultTwoIncomeSupportComesFrom; + @CsvBindByName(column="If choosing 'Self-Employment', upload your most recent IRS Form 1099. (Adult 2) {{a16298bd-4328-47f1-8853-29ff5155304d}}") + String UNUSED_adultTwoSelfEmployment1099; + @CsvBindByName(column="If choosing 'Parents/family', attach a statement from person providing support. (Adult 2) {{b1aa21d8-3dcd-4a7a-83c1-8c5a49b5f0a7}}") + String UNUSED_adultTwoSupportFromParentFamilyStatementDocument; + @CsvBindByName(column="If choosing 'Other', describe your source of income. (Adult 2) {{737800bc-65df-4e4f-93ce-7681ce0182f9}}") + String UNUSED_adultTwoOtherDescription; + @CsvBindByName(column="Gross Income January (Adult 2): {{69f13f77-2223-4b9e-96a8-61d5bab01529}}") + String UNUSED_adultTwoGrossIncomeJanuary; + @CsvBindByName(column="Gross Income February (Adult 2): {{69c416de-58eb-4443-893b-f679e1b4f138}}") + String UNUSED_adultTwoGrossIncomeFebruary; + @CsvBindByName(column="Gross Income March (Adult 2): {{e7b6e9d2-2a79-457b-a60a-513c7ab67e81}}") + String UNUSED_adultTwoGrossIncomeMarch; + @CsvBindByName(column="Gross Income April (Adult 2): {{b9d0afad-4ca1-46b1-a162-3484bab03b26}}") + String UNUSED_adultTwoGrossIncomeApril; + @CsvBindByName(column="Gross Income May (Adult 2): {{359cb6dc-e6c2-4983-9c3e-f6231e8fadb0}}") + String UNUSED_adultTwoGrossIncomeMay; + @CsvBindByName(column="Gross Income June (Adult 2): {{5027f057-4f9b-476a-8cf3-1f54b1e686f5}}") + String UNUSED_adultTwoGrossIncomeJune; + @CsvBindByName(column="Gross Income July (Adult 2): {{ce4b82a2-f016-4e32-b5ca-f6266754827e}}") + String UNUSED_adultTwoGrossIncomeJuly; + @CsvBindByName(column="Gross Income August (Adult 2): {{7a859023-348c-40dd-93d5-b0e5b0f359ad}}") + String UNUSED_adultTwoGrossIncomeAugust; + @CsvBindByName(column="Gross Income September (Adult 2): {{b025340a-8d7e-4c09-9327-6db1274676ff}}") + String UNUSED_adultTwoGrossIncomeSeptember; + @CsvBindByName(column="Gross Income October (Adult 2): {{ce94d5ab-7039-444a-812c-564fe1faebe7}}") + String UNUSED_adultTwoGrossIncomeOctober; + @CsvBindByName(column="Gross Income November (Adult 2): {{f4bccfa9-e185-457b-85a3-8d0fe9f20ffb}}") + String UNUSED_adultTwoGrossIncomeNovember; + @CsvBindByName(column="Gross Income December (Adult 2): {{28d6bb2b-bb4f-4a2b-b762-fbfea7391f80}}") + String UNUSED_adultTwoGrossIncomeDecember; + @CsvBindByName(column="(Irregular Income, Adult 2) My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{bf647581-7ee2-4e76-abf8-c7c0b101d2c0}}") + String UNUSED_adultTwoHouseholdThingsPaidForByIrregularIncome; + @CsvBindByName(column="Upload proof of HIRE account registration with date of registration (Adult 2) {{891df962-c957-4ffb-b7e6-e628563ff87a}}") + String UNUSED_adultTwoHIRERegistrationProof; + @CsvBindByName(column="Proof of enrollment in school (Adult 2) {{bf8f98d3-6c4a-4dd9-9170-b9fe5b5a3088}}") + String UNUSED_adultTwoProofOfSchoolEnrollment; + @CsvBindByName(column="Provide hours attending and training courses on organization’s letterhead (Adult 2) {{494a6953-4b97-4749-84c0-d0a1aa031660}}") + String UNUSED_adultTwoHoursAttendingTrainingCoursesDocument; + @CsvBindByName(column="Upload documentation of your Unemployment Benefits: a Monetary Determination letter from the Workforce Commission (Adult 2) {{7894fdd2-51e1-45f6-bd70-73cc4ed19662}}") + String UNUSED_adultTwoUnemploymentBenefitsDocumentation; + @CsvBindByName(column="Enter the number of months you have been without income (Adult 2): {{30b42ec0-59a4-454a-95cb-c87fd3c9e710}}") + String UNUSED_adultTwoNumberMonthsWithoutIncome; + @CsvBindByName(column="I am (check all that apply, Adult 2) {{a22abf87-4808-4d2b-b2d7-3f85a95d1a1a}}") + String UNUSED_adultTwoIAmOptions; + @CsvBindByName(column="If 'Other', describe your employment status (Adult 2) {{590669f1-02df-47c5-a8a7-f47cfbd1ad09}}") + String UNUSED_adultTwoIAmOtherNotes; + @CsvBindByName(column="(Adult 2) My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{7fd9ec84-b503-45c0-a085-4e187228db7f}}") + String UNUSED_adultTwoHouseholdThingsPaidForByRegularIncome; + + // *** START Adult Three *** UNUSED FIELDS use other section of Adult two fields below + @CsvBindByName(column="[NO LONGER ON APPLICATION] Is Adult 3 (if applicable) working, in school, or in a training program? {{ec07d3d6-397b-401e-9f48-571b9073afe3}}") + String isAdultThreeSchoolWorkTraining; + @CsvBindByName(column="Pay statement upload #1 and #2 (Adult 3) Two consecutive pay statements if paid twice a month or 4 consecutive pay statements if paid every week) {{9f00c9f7-d15f-411e-90fd-3d977bfbd1d9}}") + String UNUSED_adultThreePayStatementOneAndTwo; + @CsvBindByName(column="Pay statement upload #3 and #4 {{b4d44aa0-d9a1-46a7-a452-e8ee7e0412fa}}") + String UNUSED_adultThreePayStatementThreeAndFour; + @CsvBindByName(column="I state that my income or support comes from: {{3f134540-a1a3-43cd-bdae-345151aa5377}}") + String UNUSED_adultThreeIncomeSupportComesFrom; + @CsvBindByName(column="If choosing 'Self-Employment', upload your most recent IRS Form 1099. {{5bd0cf83-3e8b-417d-8db8-1b61d43a44ca}}") + String UNUSED_adultThreeSelfEmployment1099; + @CsvBindByName(column="If choosing 'Parents/family', attach a statement from person providing support. {{0f180ed7-983a-44fc-80d3-1950cae9e678}}") + String UNUSED_adultThreeSupportFromParentFamilyStatementDocument; + @CsvBindByName(column="If choosing 'Other', describe your source of income. {{62e0bbd2-c5b1-43b1-bf09-3c8054f7131e}}") + String UNUSED_adultThreeOtherDescription; + @CsvBindByName(column="Gross Income January: {{5267cde3-6c69-4171-9d6d-20f7865530f6}}") + String UNUSED_adultThreeGrossIncomeJanuary; + @CsvBindByName(column="Gross Income February: {{d4faa19a-4c4c-4019-87d6-ce4c083abe0a}}") + String UNUSED_adultThreeGrossIncomeFebruary; + @CsvBindByName(column="Gross Income March: {{1d80a97e-46d0-49ca-ba3a-c420087dc99f}}") + String UNUSED_adultThreeGrossIncomeMarch; + @CsvBindByName(column="Gross Income April: {{9eecd840-577b-4092-b6a1-a1abb48754f6}}") + String UNUSED_adultThreeGrossIncomeApril; + @CsvBindByName(column="Gross Income May: {{4bf5d125-9265-45f5-965b-0e52744e2233}}") + String UNUSED_adultThreeGrossIncomeMay; + @CsvBindByName(column="Gross Income June: {{994b737d-1a4d-43d7-b0ba-a3be8c61abae}}") + String UNUSED_adultThreeGrossIncomeJune; + @CsvBindByName(column="Gross Income July: {{039ecd28-8284-4080-9c7c-1f0d5447d8db}}") + String UNUSED_adultThreeGrossIncomeJuly; + @CsvBindByName(column="Gross Income August: {{c1464761-8176-455b-afc1-0bbd60e08b73}}") + String UNUSED_adultThreeGrossIncomeAugust; + @CsvBindByName(column="Gross Income September: {{7badb7f3-8ef6-4b48-af22-86f1e2f0efe8}}") + String UNUSED_adultThreeGrossIncomeSeptember; + @CsvBindByName(column="Gross Income October: {{e3a72121-51c2-42da-baae-b3e850b259f7}}") + String UNUSED_adultThreeGrossIncomeOctober; + @CsvBindByName(column="Gross Income November: {{b8d018da-0a9a-4943-b110-11a0d80e8442}}") + String UNUSED_adultThreeGrossIncomeNovember; + @CsvBindByName(column="Gross Income December: {{b829b0b6-0269-41de-af71-03c61b4d2b28}}") + String UNUSED_adultThreeGrossIncomeDecember; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{f80bebe0-3490-4dd3-8d42-d0954d93a9cc}}") + String UNUSED_adultThreeHouseholdThingsPaidForByIrregularIncome; + @CsvBindByName(column="Upload proof of HIRE account registration with date of registration {{c26a87e7-7c0c-4677-b5b1-885e242e6344}}") + String UNUSED_adultThreeHIRERegistrationProof; + @CsvBindByName(column="Proof of enrollment in school {{cd07ee12-4a11-43c9-a9e1-4d20c3876b95}}") + String UNUSED_adultThreeProofOfSchoolEnrollment; + @CsvBindByName(column="Provide hours attending and training courses on organization’s letterhead {{e3fdaa05-8288-455b-84e4-9d2670245aba}}") + String UNUSED_adultThreeHoursAttendingTrainingCoursesDocument; + @CsvBindByName(column="Upload documentation of your Unemployment Benefits: a Monetary Determination letter from the Workforce Commission {{2828e44b-0a1f-4587-a683-20635f9d6623}}") + String UNUSED_adultThreeUnemploymentBenefitsDocumentation; + @CsvBindByName(column="Enter the number of months you have been without income: {{ec6887a7-6d67-4516-b9df-18bb4de9f9d0}}") + String UNUSED_adultThreeNumberMonthsWithoutIncome; + @CsvBindByName(column="I am (check all that apply) {{17847aaa-ac9f-4b1e-ba58-3ee4c8e974b4}}") + String UNUSED_adultThreeIAmOptions; + @CsvBindByName(column="If 'Other', describe your employment status {{287d10c9-b75f-4ae0-ba67-180287ab06b2}}") + String UNUSED_adultThreeIAmOtherNotes; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{6c9ae174-b11e-42a3-88e9-58e986c8f03a}}") + String UNUSED_adultThreeHouseholdThingsPaidForByRegularIncome; + + // *** START Adult One Fields -- these are the fields that are actually used. + @CsvBindByName(column="For each adult in the household (18+ years old, up to 3 adults), provide the following information. Is Adult 1 (yourself) working? {{aa31382c-6c30-4111-8272-43a58b3deb79}}") + String isAdultOneWorking; + @CsvBindByName(column="Pay statement upload #1 and #2 (dated within 45-60 days of filling out this application) {{8cd83ffa-b61a-4056-ac58-bdc24e725b91}}") + String adultOnePayStatementOneAndTwo; + @CsvBindByName(column="Pay statement upload #3 and #4, if needed (dated within 45-60 days of filling out this application) {{51a394be-1aa8-4b3f-9310-444f31c0bc8e}}") + String adultOnePayStatementThreeAndFour; + @CsvBindByName(column="Employer letter (stating where adult is employed, work hours, rate of pay, start date and signature of employer with date signed) {{af09a137-ad2c-417e-84e2-84a324583073}}") + String adultOneEmployerLetter; + @CsvBindByName(column="I state that my income or support comes from: {{edfaabe6-e830-41cb-811d-effb73095203}}") + String adultOneIncomeSupportComesFrom; + @CsvBindByName(column="Upload your most recent IRS Form 1099 {{211ed2d3-ccc8-472d-a916-5940c685c83a}}") + String adultOneSelfEmployment1099; + @CsvBindByName(column="If choosing 'Parents/family', attach a statement from person providing support {{d696c985-182a-4681-9ef8-9e6ae2674fde}}") + String adultOneSupportFromParentFamilyStatementDocument; + @CsvBindByName(column="Describe your source of income {{444443f9-db05-47f6-a312-5b77c4ddcb27}}") + String adultOneDescribeSourceOfIncome; + @CsvBindByName(column="Gross Income January: {{a54ffabb-4a61-4bf7-a4a7-0402d1fdfc9a}}") + String adultOneGrossIncomeJanuary; + @CsvBindByName(column="Gross Income February: {{2ba00291-6b93-44e5-9aa5-f2fb18e116b0}}") + String adultOneGrossIncomeFebruary; + @CsvBindByName(column="Gross Income March: {{8552f63d-422e-403c-b2da-94094f886f4e}}") + String adultOneGrossIncomeMarch; + @CsvBindByName(column="Gross Income April: {{3e352744-e7ab-41ea-8435-b52d5a33b216}}") + String adultOneGrossIncomeApril; + @CsvBindByName(column="Gross Income May: {{67c042b0-1ba8-44c9-87bc-486b8147e3c1}}") + String adultOneGrossIncomeMay; + @CsvBindByName(column="Gross Income June: {{82ebed26-af78-4f9c-8dc0-53dee9d36675}}") + String adultOneGrossIncomeJune; + @CsvBindByName(column="Gross Income July: {{af1a39dd-16ba-49f1-bb1f-b8ec4f8a90d8}}") + String adultOneGrossIncomeJuly; + @CsvBindByName(column="Gross Income August: {{2b2d310d-901d-459a-9571-51daf5769da4}}") + String adultOneGrossIncomeAugust; + @CsvBindByName(column="Gross Income September: {{652e0162-1b50-4b67-bf40-51c7353743aa}}") + String adultOneGrossIncomeSeptember; + @CsvBindByName(column="Gross Income October: {{9f603f2f-7ecd-42bb-ba8e-3060837651bf}}") + String adultOneGrossIncomeOctober; + @CsvBindByName(column="Gross Income November: {{bbe1289d-4066-4fc0-9fd6-166220106dde}}") + String adultOneGrossIncomeNovember; + @CsvBindByName(column="Gross Income December: {{81abe417-2e3e-48ac-9ba1-81aceb6abb79}}") + String adultOneGrossIncomeDecember; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{dc46611b-3bd1-4be8-8da1-3f3e29f3d279}}") + String adultOneHouseholdThingsPaidForByIrregularIncome; // TODO assumption it means irregular, not sure + @CsvBindByName(column="Upload documentation of your Unemployment Benefits: a Monetary Determination letter from the Workforce Commission {{9d1e4a12-5361-40a6-99fc-13d652e93f57}}") + String adultOneUnemploymentBenefitsDocumentation; + @CsvBindByName(column="Enter the number of months you have been without income: {{84145ec0-aaf5-4f6d-b938-173e86541dcd}}") + String adultOneNumberMonthsWithoutIncome; + @CsvBindByName(column="I am (check all that apply) {{d599b70b-0342-46a3-aa3d-99dac369becd}}") + String adultOneIAmOptions; + @CsvBindByName(column="If 'Other', describe your employment status {{1f58cdcc-186b-4b4b-bc6b-4291aa8e1be7}}") + String adultOneIAmOtherEmploymentStatusDescription; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{1fa3e7e4-6787-414d-8db3-eca31220888a}}") + String adultOneHouseholdThingsPaidForByRegularIncome; + @CsvBindByName(column="Is Adult 1 (yourself) in school, in a training program, or seeking work? {{90dc1348-6db3-436f-937f-306aa812ded1}}") + String isAdultOneSchoolTrainingSeekingWork; + @CsvBindByName(column="Upload proof of HIRE account registration with date of registration OR proof of unemployment pay statement {{ccd82836-4b21-4463-91a9-414c034cff40}}") + String adultOneHIRERegistrationProof; + @CsvBindByName(column="Provide a school transcript, detailed school schedule, or letter from the registrar {{5a8a72f5-cec8-47db-941a-fe953cd2652e}}") + String adultOneProofOfSchoolEnrollment; + @CsvBindByName(column="Provide hours attending and training courses on organization’s letterhead {{86148dbc-21c1-4f42-b775-e729cd90366d}}") + String adultOneHoursAttendingTrainingCoursesDocument; + @CsvBindByName(column="Provide a school transcript, detailed school schedule, or letter from the registrar {{da1a75fa-fffc-4c0e-8e44-6f7cc8589153}}") + String adultOneProofOfSchoolEnrollment2; + @CsvBindByName(column="Provide hours attending and training courses (or hours worked) on organization’s letterhead {{6be5d690-5b1b-419b-999b-5efe6949d636}}") + String adultOneHoursAttendingTrainingCoursesDocument2; + @CsvBindByName(column="(Adult 1) Verified hours in school, training, or work {{18ccb11c-15a2-4346-ada3-4788adea4a60}}") + String adultOneVerifiedHoursInSchoolTrainingWork; + // *** END Adult One *** + + // *** START Adult Two *** + @CsvBindByName(column="Is Adult 2 working? {{c9f80dca-6623-4435-8b8e-3fb237a295db}}") + String isAdultTwoWorking; + @CsvBindByName(column="Pay statement upload #1 and #2 (Adult 2) (dated within 45-60 days of filling out this application) {{41bed2d6-af77-4e53-b894-253bfd1440bd}}") + String adultTwoPayStatementOneAndTwo; + @CsvBindByName(column="Pay statement upload #3 and #4 (dated within 45-60 days of filling out this application) {{5ae83513-a34a-4a0f-9b17-ee4c306912bc}}") + String adultTwoPayStatementThreeAndFour; + @CsvBindByName(column="Employer letter (stating where adult is employed, work hours, rate of pay, start date and signature of employer with date signed) {{09c63241-d537-41e0-b8b8-34699c785366}}") + String adultTwoEmployerLetter; + @CsvBindByName(column="I state that Adult 2's income or support comes from: {{838d43dc-79b0-4401-adc0-941d320a63d7}}") + String adultTwoIncomeSupportComesFrom; + @CsvBindByName(column="Upload your most recent IRS Form 1099 {{9f8f1ff0-df9b-458f-8d87-51fed6f58aad}}") + String adultTwoSelfEmployment1099; + @CsvBindByName(column="If choosing 'Parents/family', attach a statement from person providing support {{fcc69085-0f0f-44d8-805d-f5ebd3ab2437}}") + String adultTwoSupportFromParentFamilyStatementDocument; + @CsvBindByName(column="Describe the source of income {{42034c33-a5a1-4851-975b-09c58341906c}}") + String adultTwoDescribeSourceOfIncome; + @CsvBindByName(column="Gross Income January: {{79bc70ec-0213-4d06-8ada-b198d933683e}}") + String adultTwoGrossIncomeJanuary; + @CsvBindByName(column="Gross Income February: {{d0ce4a12-7320-436a-a6b0-46a7dc4a0ad9}}") + String adultTwoGrossIncomeFebruary; + @CsvBindByName(column="Gross Income March: {{5e1aa8ee-6494-4b25-81c0-ab7d31b7cfba}}") + String adultTwoGrossIncomeMarch; + @CsvBindByName(column="Gross Income April: {{05afd738-659a-4827-a4ec-64d896234a4f}}") + String adultTwoGrossIncomeApril; + @CsvBindByName(column="Gross Income May: {{3eeb9667-4aa2-4a84-866c-b948baa152c3}}") + String adultTwoGrossIncomeMay; + @CsvBindByName(column="Gross Income June: {{af489912-626c-4263-967f-e7f101893708}}") + String adultTwoGrossIncomeJune; + @CsvBindByName(column="Gross Income July: {{1afc22c0-b8ac-4265-bb32-2082063141b1}}") + String adultTwoGrossIncomeJuly; + @CsvBindByName(column="Gross Income August: {{c9992775-6d62-481b-bddb-6bfafbd85dd9}}") + String adultTwoGrossIncomeAugust; + @CsvBindByName(column="Gross Income September: {{7d9de7e9-827a-4d1b-8a19-c6ae375ecffe}}") + String adultTwoGrossIncomeSeptember; + @CsvBindByName(column="Gross Income October: {{7a0b0328-d9c4-4b23-86c3-fb6553cf3422}}") + String adultTwoGrossIncomeOctober; + @CsvBindByName(column="Gross Income November: {{5a700f3d-c2b4-43b8-80db-3731014f0b57}}") + String adultTwoGrossIncomeNovember; + @CsvBindByName(column="Gross Income December: {{80886262-a90a-4205-9b37-cfe6a7422d81}}") + String adultTwoGrossIncomeDecember; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{10ac360a-b4d2-4172-ae28-d0f30d9c52ed}}") + String adultTwoHouseholdThingsPaidForByIrregularIncome; // TODO assumption it means irregular, not sure + @CsvBindByName(column="Upload documentation of Unemployment Benefits: a Monetary Determination letter from the Workforce Commission {{9780155c-c1c5-4363-b5e0-66c694beb173}}") + String adultTwoUnemploymentBenefitsDocumentation; + @CsvBindByName(column="Enter the number of months without income {{9c1327e6-6574-4ea9-8d7b-14b48b07f47d}}") + String adultTwoNumberMonthsWithoutIncome; + @CsvBindByName(column="Adult 2 is (check all that apply) {{2e780838-1ef2-4fc9-bf07-b68a628b84ce}}") + String adultTwoIAmOptions; + @CsvBindByName(column="If “Other” please describe the employment status {{1eb95835-4a01-4101-87df-882fd4a5f2d3}}") + String adultTwoIAmOtherEmploymentStatusDescription; + @CsvBindByName(column="Adult 2's rent/house payments, utilities, food, and transportation expenses are being paid for by: {{d819295a-f0be-49f3-853e-a4f6b378308b}}") + String adultTwoHouseholdThingsPaidForByRegularIncome; + @CsvBindByName(column="Is Adult 2 in school, in a training program, or seeking work? {{85befbbc-d3f6-43d9-a2ca-a12b20f5e933}}") + String isAdultTwoSchoolTrainingSeekingWork; + @CsvBindByName(column="Upload proof of HIRE account registration with date of registration OR proof of unemployment pay statement {{d2c636e7-205c-45f3-8974-af09a66010c9}}") + String adultTwoHIRERegistrationProof; + @CsvBindByName(column="Provide a school transcript, detailed school schedule, or letter from the registrar {{b617abd4-eab8-4cde-a0c2-ef97f080c09c}}") + String adultTwoProofOfSchoolEnrollment; + @CsvBindByName(column="Provide hours attending and training courses (or hours worked) on organization’s letterhead {{14798ca8-c9b5-4488-a9e6-2efd30152e85}}") + String adultTwoHoursAttendingTrainingCoursesDocument; + @CsvBindByName(column="Provide a school transcript, detailed school schedule, or letter from the registrar {{80ebe9d6-bd51-432b-863e-599b7a24a453}}") + String adultTwoProofOfSchoolEnrollment2; + @CsvBindByName(column="Provide hours attending and training courses (or hours worked) on organization’s letterhead {{e3d391fc-11d9-4e02-aeab-9104139acb21}}") + String adultTwoHoursAttendingTrainingCoursesDocument2; + @CsvBindByName(column="(Adult 2) Verified hours in school, training, or work {{c5329d96-e0d5-4b96-a367-ad85bb7342fb}}") + String adultTwoVerifiedHoursInSchoolTrainingWork; + // *** END Adult Two *** + + // *** START Adult Three *** + @CsvBindByName(column="Is Adult 3 working? {{8d1b43ff-3291-496d-ad1f-53cf57361f44}}") + String isAdultThreeWorking; + @CsvBindByName(column="Pay statement upload #1 and #2 (Adult 3) (dated within 45-60 days of filling out this application) {{430530c8-6c23-4ca4-aa8d-8ce2186abd7c}}") + String adultThreePayStatementOneAndTwo; + @CsvBindByName(column="Pay statement upload #3 and #4 (dated within 45-60 days of filling out this application) {{abad5402-b4b5-4f35-92f4-6513763d483c}}") + String adultThreePayStatementThreeAndFour; + @CsvBindByName(column="Employer letter (stating where adult is employed, work hours, rate of pay, start date and signature of employer with date signed) {{07bea291-422b-41fd-b645-e6c8d2a4b0ed}}") + String adultThreeEmployerLetter; + @CsvBindByName(column="I state that Adult 3's income or support comes from: {{83de622a-0cff-460b-a10c-d814d019d46a}}") + String adultThreeIncomeSupportComesFrom; + @CsvBindByName(column="Upload your most recent IRS Form 1099 {{fa615f5d-5389-46d3-b275-f0199519278b}}") + String adultThreeSelfEmployment1099; + @CsvBindByName(column="If choosing 'Parents/family', attach a statement from person providing support {{b239f740-6d21-4f7e-adcc-9a9ffa19ee39}}") + String adultThreeSupportFromParentFamilyStatementDocument; + @CsvBindByName(column="Describe the source of income {{0bd9b7f0-406c-472b-971c-11a20c6bd202}}") + String adultThreeDescribeSourceOfIncome; + @CsvBindByName(column="Gross Income January: {{5280e420-a6f8-4e93-8cb6-b7b3795b7f7f}}") + String adultThreeGrossIncomeJanuary; + @CsvBindByName(column="Gross Income February: {{4a5b5898-a8fb-476d-a789-e748baa8c35e}}") + String adultThreeGrossIncomeFebruary; + @CsvBindByName(column="Gross Income March: {{405f3e19-dacb-4982-991b-b60542c0b2a1}}") + String adultThreeGrossIncomeMarch; + @CsvBindByName(column="Gross Income April: {{fbc13dd5-b63a-4e26-804e-4de01c0c49ef}}") + String adultThreeGrossIncomeApril; + @CsvBindByName(column="Gross Income May: {{dd8a5293-43fe-4a34-9e58-df9a6db4d67d}}") + String adultThreeGrossIncomeMay; + @CsvBindByName(column="Gross Income June: {{72e22bab-1d40-4b17-8390-7f4ebe0a72c1}}") + String adultThreeGrossIncomeJune; + @CsvBindByName(column="Gross Income July: {{2763b0b9-8b31-42fe-9b96-4e2e797680d2}}") + String adultThreeGrossIncomeJuly; + @CsvBindByName(column="Gross Income August: {{1cf5e233-313f-4311-8c30-b60e9d59c938}}") + String adultThreeGrossIncomeAugust; + @CsvBindByName(column="Gross Income September: {{94d27987-80eb-433b-b79e-fc5916ff2bd3}}") + String adultThreeGrossIncomeSeptember; + @CsvBindByName(column="Gross Income October: {{9fb62419-f6f7-4988-9853-e2a7b0f1a81d}}") + String adultThreeGrossIncomeOctober; + @CsvBindByName(column="Gross Income November: {{3e898622-62d7-4756-87c5-aefed38ef73f}}") + String adultThreeGrossIncomeNovember; + @CsvBindByName(column="Gross Income December: {{5b93dd60-97d9-47bb-b7e5-66360313ecc4}}") + String adultThreeGrossIncomeDecember; + @CsvBindByName(column="My rent/house payments, utilities, food, and transportation expenses are being paid for by: {{31ef8a1b-71d4-42ca-91b4-dd9dd7a720b0}}") + String adultThreeHouseholdThingsPaidForByIrregularIncome; // TODO assumption it means irregular, not sure + @CsvBindByName(column="Upload documentation of Unemployment Benefits: a Monetary Determination letter from the Workforce Commission {{a8c60a99-740e-4ca6-a83a-5a1d76107468}}") + String adultThreeUnemploymentBenefitsDocumentation; + @CsvBindByName(column="Enter the number of months without income {{d14b0311-b208-4d5f-899f-54d58ac4c4e4}}") + String adultThreeNumberMonthsWithoutIncome; + @CsvBindByName(column="Adult 3 is (check all that apply) {{d08972bb-87f3-487e-bc3c-40f6d6b6df16}}") + String adultThreeIAmOptions; + @CsvBindByName(column="If “Other” please describe the employment status {{55b20c20-7a41-489a-8014-aaf370191f1b}}") + String adultThreeIAmOtherEmploymentStatusDescription; + @CsvBindByName(column="Adult 3's rent/house payments, utilities, food, and transportation expenses are being paid for by: {{9002f394-486c-4d88-b2a4-4fcd3ca9e723}}") + String adultThreeHouseholdThingsPaidForByRegularIncome; + @CsvBindByName(column="Is Adult 3 in school, in a training program, or seeking work? {{0a568f4c-8fad-48f3-9ebb-719ba50c0f07}}") + String isAdultThreeSchoolTrainingSeekingWork; + @CsvBindByName(column="Upload proof of HIRE account registration with date of registration OR proof of unemployment pay statement {{2521146e-fa00-4c7d-b0bd-cf01ba62c6ad}}") + String adultThreeHIRERegistrationProof; + @CsvBindByName(column="Provide a school transcript, detailed school schedule, or letter from the registrar {{88789dbc-2e0f-4247-a771-daba641cf9be}}") + String adultThreeProofOfSchoolEnrollment; + @CsvBindByName(column="Provide hours attending and training courses on organization’s letterhead {{656e8683-1f04-4230-acbb-319c7a69b040}}") + String adultThreeHoursAttendingTrainingCoursesDocument; + @CsvBindByName(column="Provide a school transcript, detailed school schedule, or letter from the registrar {{93e3a15c-e125-416c-9e87-e8847f54e57a}}") + String adultThreeProofOfSchoolEnrollment2; + @CsvBindByName(column="Provide hours attending and training courses (or hours worked) on organization’s letterhead {{99912d95-4c04-4dc3-8129-60f4693b3916}}") + String adultThreeHoursAttendingTrainingCoursesDocument2; + @CsvBindByName(column="(Adult 3) Verified hours in school, training, or work {{2b3b6ecc-16e2-40e9-9324-c8f5a7ceb495}}") + String adultThreeVerifiedHoursInSchoolTrainingWork; + // *** END Adult Three *** + + @CsvBindByName(column="If there are additional adults in the household, upload their relevant documents for income, school, and/or training below. {{36545c0d-831c-4cf4-99d8-45e0be141374}}") + String additionalAdultsDocumentation; + @CsvBindByName(column="Date on Income Docs (Expires 2 months after app submission date if family is not verified): {{27397087-7332-4736-9080-cac145ca65a2}}") + String dateOnIncomeDocuments; + @CsvBindByName(column="Do any of the above adults receive child support, alimony, disability benefits, retirement benefits, and/or any other form of unearned income? {{a6220f72-8d89-45ad-aa5c-8435ae0d7c65}}") + String doesAnyAdultGetUnearnedIncome; + @CsvBindByName(column="Upload Unearned Income Documentation (child support, alimony, disability benefits, retirement benefits, etc.) {{014968a8-dd24-466d-aa0a-2d8c863702e4}}") + String unearnedIncomeDocuments; + // next one probably needs a converter? not even sure we collect this so maybe not. + @CsvBindByName(column="List below each adult living in the household who provides financial support to the family, their age, and their relationship to the child applicant. (Example: Mother - 35 YEARS, Father - 35 YEARS, Aunt - 24 YEARS, Grandmother - 68 YEARS) {{fc409a35-8dbc-4c63-a0cf-e766d7b01070}}") + List adultsProvidingFinancialSupport; + @CsvBindByName(column="What is the number of minors (below 18 years old) living in the household, INCLUDING THE CHILD APPLICANT? {{19143fe1-fb50-438e-ad1e-bcc468cd3d29}}") + String numberOfMinorsInHousehold; + @CsvBindByName(column="List below each minor living in the household, their age, and their relationship to the child applicant. (Example: Child Applicant - 3 YEARS, Brother - 10 YEARS, Sister - 7 YEARS, Cousin - 7 YEARS) {{8c0269c4-eaa8-4b06-9feb-2b11a6ff0044}}") + List minorsInHousehold; + @CsvBindByName(column="Upload the birth certificate (state issued or foreign) or passport or visa or hospital record or state-issued ID for each minor listed as a sibling of the applicant child. Upload one of these required documents for ALL dependent children listed in the household. {{8376a3aa-2eee-4107-85ed-9873da18bc28}}") + String siblingProofData; + @CsvBindByName(column="Upload additional sibling birth certificates, if needed. {{7c600e76-583f-4436-b8c8-89a7ca1705be}}") + String siblingAdditionalProofData; + @CsvBindByName(column="Are any adults included in your household count caring for any children with disabilities in the household? {{baca161c-a8da-4408-bb02-6c028c7d203c}}") + String areAnyAdultsInHouseholdCaregiversForChildWithDisabilitiesInHousehold; + @CsvBindByName(column="If Yes, adult only needs to be working 15 hours. Notes on caring for SWD: {{eb230bf2-67dc-4781-b6bd-6c6af80c2323}}") + String adultCaregiversForChildWithDisabilitiesNotes; + @CsvBindByName(column="Do you work at one of the centers/schools you ranked? {{1b346f97-ad79-4250-a08a-4a24a945253e}}") + String doesApplicantWorksAtSchoolCenterTheyRanked; + @CsvBindByName(column="Which center/school do you work at? {{e4bed81e-4db9-4966-9732-22198e91ed5b}}") + String applicantWorksAt; + @CsvBindByName(column="Does your child have a sibling attending any of the centers/schools you ranked? {{f8b7d2ef-565d-4998-939b-e61cc89a166a}}") + String siblingAtSchoolCenterRanked; + @CsvBindByName(column="You can list up to 3 siblings. Sibling name #1: {{e6160d12-6624-4fec-ab57-391d50df2534}}") + String siblingOneName; + @CsvBindByName(column="Which center/school does sibling #1 attend? {{62a15dcb-906e-4acd-8b58-7fe87a1f26e5}}") + String siblingOneSchoolCenter; + @CsvBindByName(column="Sibling name #2: {{ccb95c5c-bb89-4f84-b070-bd24797f32cd}}") + String siblingTwoName; + @CsvBindByName(column="Which center/school does sibling #2 attend? {{f7d308b3-6fd1-458d-826c-9d6e7f7581d8}}") + String siblingTwoSchoolCenter; + @CsvBindByName(column="Sibling name #3: {{b29398d3-b800-43f2-a1ee-87a5cd746507}}") + String siblingThreeName; + @CsvBindByName(column="Which center/school does sibling #3 attend? {{a21bb34f-796d-45a2-9c4d-4c71d83b5d3c}}") + String siblingThreeSchoolCenter; + @CsvBindByName(column="Is the parent applicant an unmarried minor (under age 18)? {{972f39f4-f3aa-45c5-b7a8-d298f7e7a232}}") + String isParentApplicantUnmarriedMinor; + @CsvBindByName(column="Does your child receive SSI Benefits? {{f2c6684f-cb3d-4416-9fc0-dd86fc55ae53}}") + String doesChildReceiveSSI; + @CsvBindByName(column="Upload a statement from the Social Security Administration verifying that the child listed on the application is a recipient of SSI benefits. {{dc216f53-fe2a-48cb-856b-67c357f9f2c7}}") + String ssiVerificationDocument; + @CsvBindByName(column="Does your child currently receive Child Care Assistance Program (CCAP) benefits? {{d70fc952-2934-4c0e-b746-ba8d9d1ec107}}") + String doesChildReceiveCCAP; + @CsvBindByName(column="Does your child currently have an Individualized Family Service Plans (IFSP) or are they being evaluated for special education services? {{71f7253f-7a8e-48b6-bce4-fc28d5420838}}") + String doesChildHaveIFSPOrBeingEvaluated; + @CsvBindByName(column="Does your child receive Family Independence Temporary Assistance (FITAP) or Temporary Assistance to Needy Families (TANF) benefits? {{34400559-5f00-4445-ac61-c5d1d04e1b58}}") + String doesChildReceiveFITAPorTANF; + @CsvBindByName(column="Upload proof of benefits. {{0cc44aac-4638-4f6f-9026-a94b31efbb3b}}") + String benefitsDocumentation; + @CsvBindByName(column="Does the parent/guardian receive Social Security Administration disability benefits, supplemental security income, or Veterans Administration disability benefits for a disability of at least 70 percent? {{f54e47cd-838e-4387-a06b-2aaf5873db9f}}") + String doesParentGuardianReceiveSSDorSupplementalSecurityIncomeOrVADisability; + @CsvBindByName(column="Upload proof of benefits or doctor’s statement of disability with date of letter. All disability verification must include the name of the person, the dates of validity of those benefits, and the dollar value of those benefits, if applicable. {{47cd324f-a446-4947-a864-9672bed7532b}}") + String disbilityVerification; + @CsvBindByName(column="Is the applicant a child of a parent or guardian in active military service? {{e61b8c1c-bef4-417c-80ee-b49cc27cc03a}}") + String isChildsParentGuardianInMilitaryService; + @CsvBindByName(column="Which language did your child learn first? {{6f9222c0-b4de-4427-a9c4-5699add06239}}") + String childsFirstLanguage; + @CsvBindByName(column="Which language does your child use most often at home? {{96ca9027-2d10-4560-ba0a-ebed20c987d4}} In what language do you most often speak to your child? {{efa0e6ce-d581-4bc1-a4fd-93d8b58bc9bc}}") + String childsPreferredLangAtHome; + @CsvBindByName(column="A Gifted IEP is required for your child to attend Hynes Lakeview. Do you have a Gifted and Talented evaluation or Gifted and Talented IEP approved by OPSB's Office of Child Search? {{e6a2cf80-e34d-4185-91e5-d70539f9463e}}") + String hasGiftedIEP; + @CsvBindByName(column="[DOES NOT APPEAR ON APPLICATION] Please upload the Gifted and Talented IEP. {{0bd79982-e4b6-484b-bca1-4d2a47e3bc0e}}") + String giftedIEPDocumentation; + @CsvBindByName(column="If yes, click the link below to request an administrative review {{5e5b5538-dedf-4a34-bf29-6abfd20ed95a}}") + String requestingAdministrativeReview; + @CsvBindByName(column="If no, click the link below to schedule an evaluation. {{6934e6dd-5699-45ff-b7cf-e8368eee21c0}}") + String requestingScheduleOfEvaluation; + @CsvBindByName(column="Please rate your application experience on a scale of 1-5. {{e2785498-1a6f-4515-923e-dbed74717a48}}") + String applicationFeedbackExperienceRating; + @CsvBindByName(column="Provide any additional feedback on your application experience below. {{52a34525-ca2b-4cb3-ac8d-e284c6fac043}}") + String applicationFeedbackAdditionalInfo; + @CsvBindByName(column="Do you want to be contacted about jobs in early childhood? (either for yourself or someone you know) {{034af9c4-ae93-48c8-bf53-d3c39521345b}}") + String okayToContactAboutJobsInEarlyChildhood; + @CsvBindByName(column="Describe the parental status of the applicant's primary guardian. {{550ce129-9a8b-476c-b9b2-5b60e0a45bd2}}") + String parentalStatusOfPrimaryGuardian; + @CsvBindByName(column="Does the applicant have a disability? {{17b00594-b2c2-4491-b19b-46125b1979d5}}") + String doesApplicantHaveDisability; + @CsvBindByName(column="Is the primary caregiver working, in training, not working, or in school? {{a1102a95-ddae-485e-9706-9dbbc302c9a7}}") + String isPrimaryCaregiverWorkingTrainingNotWorkingSchool; + @CsvBindByName(column="Does the child have social service needs? {{213a8c83-e218-42ed-a5bc-740a325358e5}}") + String doesChildHaveSocialServiceNeeds; + @CsvBindByName(column="Homeless Status {{885fc44f-3b98-452f-8c6a-3258e630efbb}}") + String homelessStatus; + @CsvBindByName(column="Is the child applicant an English language learner? {{25bb9f7e-9146-4b49-8fac-101aa0d8781d}}") + String isChildELL; + @CsvBindByName(column="Does the child have serious health problems? {{bc4d2eef-bdbb-4e75-b19b-48a780f9a195}}") + String doesChildHaveSeriousHealthIssues; + @CsvBindByName(column="Have headstart services been provided to this family in the past? {{9f2a0b47-4f21-48ed-af6c-7c0e62ca5173}}") + String hasFamilyHadHeadStartServicesPreviously; + @CsvBindByName(column="Has this child been previously selected by a selection committee? {{aa75dc4c-3362-4ada-9271-ce4841a3216b}}") + String wasChildPrevSelectedBySelectionCommittee; + @CsvBindByName(column="Is sibling currently enrolled in EHS or HS center? {{d6b43f76-a441-44c2-be11-f6cf6467468d}}") + String isSiblingCurrentlyEnrolledInEHSofHSCenter; + @CsvBindByName(column="If yes, list center name {{f5b660ae-c39f-4957-9dbc-fed8dea82f0a}}") + String centerName; + @CsvBindByName(column="Does the parent participate in Parents As Educators Kingsley House program? {{102d4312-b812-477c-a703-c7bc928e95c5}}") + String doesParentParticipateKingslyHouseProgram; + @CsvBindByName(column="Is a parent/guardian active military? {{66af33a9-a309-4a4a-a916-5bcbe6504a3d}}") + String isParentGuardianActiveMilitary; + @CsvBindByName(column="Is the applicant parent pregnant? {{e9d593bd-e5fe-431b-a133-fb7333114719}}") + String isApplicantParentPregnant; + @CsvBindByName(column="Does the applicant parent participate in an EHS pregnant woman program? {{47ae17c7-41ab-4bb2-9361-4b0a2d96bb8e}}") + String doesApplicantParentParticipateEHSPregnantWomenProgram; + @CsvBindByName(column="What is the child applicant's CCAP status? {{eccba5aa-9292-475c-9c1a-12d28bb4af0e}}") + String childApplicantsCCAPStatus; + @CsvBindByName(column="COVID Effects {{cda1fab7-527e-4965-84fa-1119a126f781}}") + String covidEffects; + @CsvBindByName(column="Is applicant a resident of Columbia Park in Gentilly? {{259c65fa-7177-4eaa-9a8a-b0f5eecfda65}}") + String isApplicantResidentOfColumbiaParkGentilly; + @CsvBindByName(column="Is applicant's parent enrolled in Healthy Start? {{78ec6ef4-ce1b-4b97-a8dd-658cfe951790}}") + String isApplicantsParentEnrolledHealthyStart; + @CsvBindByName(column="Has applicant's parent accepted a referral to Healthy Start? {{df5f7b13-82df-49f4-b2c0-1bdd048b51ad}}") + String hasApplicantParentAcceptedReferralHealthyStart; + @CsvBindByName(column="Has applicant's parent declined Healthy Start services? {{e25217fb-2fe2-4aae-a0f7-c12b203b706c}}") + String hasApplicantParentDeclinedHealthyStartServices; + @CsvBindByName(column="Zip code {{0e6c71db-01ef-445b-b066-abacfa8adcc3}}") + String zipCode; + @CsvBindByName(column="Please select if any of the following intra-agency transfer requests apply {{3ea3da10-cdc3-4743-9c50-271975cd24b5}}") + String interAgencyTransferRequests; + @CsvBindByName(column="Transfer center: {{907d0f3b-fd25-42b5-a117-97a691be9bd8}}") + String transferCenter; + + public static BaseCsvModel generateModel(Submission submission) throws JsonProcessingException { + Map inputData = submission.getInputData(); + inputData.put("id", submission.getId()); + List> householdList = (List)inputData.get("household"); + + // this is the data that jackson will map into the EceModel, not inputData + Map eceDataMap = new HashMap<>(); + + int numberOfAdultsInHousehold = 0; + + for (Map member : householdList) { + int birthDay = 0; + int birthMonth = 0; + int birthYear = 0; + boolean is18orOlder = false; + + try { + birthDay = Integer.parseInt((String)member.get("householdMemberBirthDay")); + birthMonth = Integer.parseInt((String)member.get("householdMemberBirthMonth")); + birthYear = Integer.parseInt((String)member.get("householdMemberBirthYear")); + + is18orOlder = HouseholdUtilities.isMember18orOlder(birthDay, birthMonth, birthYear); + } catch (NumberFormatException e) { + // TODO what to do if this does fail?? ignore and keep going? probably + log.error("Unable to work with household member {}'s birthday ({}/{}/{}): {}", + member.get("householdMemberFirstName"), + (String)member.get("householdMemberBirthDay"), + (String)member.get("householdMemberBirthMonth"), + (String)member.get("householdMemberBirthYear"), + e.getMessage() + ); + } + + if (is18orOlder) { + numberOfAdultsInHousehold++; + } + } + eceDataMap.put("numberOfAdultsInHousehold", numberOfAdultsInHousehold); + + + + ECEApplicationCsvModel eceApp = mapper.convertValue(eceDataMap, ECEApplicationCsvModel.class); + eceApp.setSubmissionId(submission.getId()); + return eceApp; + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/ParentGuardian.java b/src/main/java/org/ladocuploader/app/csv/model/ParentGuardian.java new file mode 100644 index 000000000..a6fba04c8 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/ParentGuardian.java @@ -0,0 +1,33 @@ +package org.ladocuploader.app.csv.model; + +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; +import org.springframework.stereotype.Component; +import com.opencsv.bean.CsvBindByName; + + +@Getter +@Setter +@NoArgsConstructor +public class ParentGuardian { + + @CsvBindByName(column = "first_name", required = true) + private String firstName; + @CsvBindByName(column = "last_name", required = true) + private String lastName; + + @CsvBindByName(column = "email_address", required = true) + private String emailAddress; + + @CsvBindByName(column = "phone_number", required = true) + private String phoneNumber; + +// private Map columnMappings = Map.of( +// "first_name", "firstName", +// "last_name", "lastName", +// "email_address", "emailAddress", +// "phone_number", "phoneNumber" +// ); + +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/ParentGuardianCsvModel.java b/src/main/java/org/ladocuploader/app/csv/model/ParentGuardianCsvModel.java new file mode 100644 index 000000000..6523dca81 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/ParentGuardianCsvModel.java @@ -0,0 +1,73 @@ +package org.ladocuploader.app.csv.model; + +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.opencsv.bean.*; +import formflow.library.data.Submission; +import java.util.HashMap; +import org.ladocuploader.app.csv.converters.AddressStreetConverter; +import java.util.ArrayList; +import java.util.List; +import lombok.Getter; +import lombok.Setter; + +import java.util.Map; +import org.ladocuploader.app.csv.converters.PhoneNumberConverter; + +@Getter +@Setter +public class ParentGuardianCsvModel extends BaseCsvModel { + + @CsvBindByName(column = "active", required=true) + private Boolean active = true; + + @CsvBindByName(column="reference_id") + private String id; + + @CsvBindByName(column="first_name", required=true) + private String firstName; + + @CsvBindByName(column="last_name", required=true) + private String lastName; + + @CsvBindByName(column="email_address", required=true) + private String emailAddress; + + @CsvCustomBindByName(column="phone_number", required=true, converter= PhoneNumberConverter.class) + private String phoneNumber; + + @CsvCustomBindByName(column="street_address", required=true, converter=AddressStreetConverter.class) + private Map homeAddressStreet = new HashMap<>(); + + @CsvBindByName(column="city", required=true) + private String homeAddressCity; + + @CsvBindByName(column="state", required=true) + private String homeAddressState; + + @CsvBindByName(column="zip_code", required=true) + private String homeAddressZipCode; + + @JsonSetter(value="homeAddressStreetAddress1") + private void setHomeAddress1(final String address) { + if (address != null) { + homeAddressStreet.put("address1", address); + } + } + + @JsonSetter(value="homeAddressStreetAddress2") + private void setHomeAddress2(final String address) { + if (address != null) { + homeAddressStreet.put("address2", address); + } + } + + public static BaseCsvModel generateModel(Submission submission) throws JsonProcessingException { + Map inputData = submission.getInputData(); + inputData.put("id", submission.getId()); + + ParentGuardianCsvModel pgpModel = mapper.convertValue(inputData, ParentGuardianCsvModel.class); + pgpModel.setSubmissionId(submission.getId()); + return pgpModel; + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/RelationshipCsvModel.java b/src/main/java/org/ladocuploader/app/csv/model/RelationshipCsvModel.java new file mode 100644 index 000000000..5f9bbafc8 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/RelationshipCsvModel.java @@ -0,0 +1,45 @@ +package org.ladocuploader.app.csv.model; + +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.opencsv.bean.CsvBindByName; +import formflow.library.data.Submission; +import java.util.HashMap; +import lombok.Getter; +import lombok.Setter; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +@Getter +@Setter +@JsonTypeName("relationship") +public class RelationshipCsvModel extends BaseCsvModel { + + @CsvBindByName(column = "first_person", required=true) + private String first_person_id; // use id of applicant + + @CsvBindByName(column="second_person", required=true) + private String uuid; // id of subflow member + + public static List generateModel(Submission submission){ + Map inputData = submission.getInputData(); + UUID first_person_id = submission.getId(); + List relationships = new ArrayList<>(); + List> households = (List>) inputData.get("household"); + + if (households != null && !households.isEmpty()) { + for (Map household : households) { + Map person = new HashMap<>(); + person.put("first_person_id", first_person_id); + person.put("uuid", household.get("uuid")); + RelationshipCsvModel relModel = mapper.convertValue(person, RelationshipCsvModel.class); + relModel.setSubmissionId(submission.getId()); + relationships.add(relModel); + } + } + + return relationships; + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/StudentCsvModel.java b/src/main/java/org/ladocuploader/app/csv/model/StudentCsvModel.java new file mode 100644 index 000000000..975501da8 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/StudentCsvModel.java @@ -0,0 +1,129 @@ +package org.ladocuploader.app.csv.model; + +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.annotation.JsonTypeName; +import com.opencsv.bean.CsvBindByName; +import com.opencsv.bean.CsvCustomBindByName; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import lombok.Getter; +import lombok.Setter; +import formflow.library.data.Submission; +import java.util.Map; +import lombok.extern.slf4j.Slf4j; +import org.ladocuploader.app.csv.converters.AddressStreetConverter; +import org.ladocuploader.app.csv.converters.HouseholdBirthDateConverter; + +@Getter +@Setter +@JsonTypeName("student") +@Slf4j +public class StudentCsvModel extends BaseCsvModel { + + @CsvBindByName(column="active", required=true) + private Boolean active = true; + + @CsvBindByName(column="reference_id") + private String id; // uuid of student + + @CsvBindByName(column="first_name", required=true) + private String firstName; // student's first name + + @CsvBindByName(column="last_name", required=true) + private String lastName; // student's last name + + @CsvCustomBindByName(column="street_address", required=true, converter=AddressStreetConverter.class) + private Map homeAddressStreet = new HashMap<>(); + + @CsvBindByName(column="city", required=true) + private String homeAddressCity; + + @CsvBindByName(column="state", required=true) + private String homeAddressState; + + @CsvBindByName(column="zip_code", required=true) + private String homeAddressZipCode; + + @CsvCustomBindByName(column="birth_date", required=true, converter= HouseholdBirthDateConverter.class) + private Map birthDate = new HashMap<>(); + + @JsonSetter(value="memberBirthDay") + private void setMemberBirthDay(final String day) { + try { + if (day != null) { + birthDate.put("day", Integer.valueOf(day)); + } + } catch (NumberFormatException e) { + log.error("JSON Mapping: Unable to set member birth day, as value '{}' is bad.", day); + } + } + + @JsonSetter(value="memberBirthMonth") + private void setMemberBirthMonth(final String month) { + try { + if (month != null) { + birthDate.put("month", Integer.valueOf(month)); + } + } catch (NumberFormatException e) { + log.error("JSON Mapping: Unable to set member birth month, as value '{}' is bad.", month); + } + } + + @JsonSetter(value="memberBirthYear") + private void setMemberBirthYear(final String year) { + try { + if (year != null) { + birthDate.put("year", Integer.valueOf(year)); + } + } catch (NumberFormatException e) { + log.error("JSON Mapping: Unable to set member birth year, as value '{}' is bad.", year); + } + } + + @JsonSetter(value="homeAddressStreetAddress1") + private void setHomeAddress1(final String address) { + if (address != null) { + homeAddressStreet.put("address1", address); + } + } + + @JsonSetter(value="homeAddressStreetAddress2") + private void setHomeAddress2(final String address) { + if (address != null) { + homeAddressStreet.put("address2", address); + } + } + + public static List generateModel(Submission submission){ + Map inputData = submission.getInputData(); + List students = new ArrayList<>(); + List> household = (List)inputData.get("household"); + + if (household != null && !household.isEmpty()) { + for (Map member : household) { + String relationship = (String) member.get("householdMemberRelationship"); + if (relationship == null || !relationship.equalsIgnoreCase("child")) { + continue; + } + + Map studentData = new HashMap<>(); + studentData.put("id", submission.getId()); + studentData.put("firstName", member.get("householdMemberFirstName")); + studentData.put("lastName", member.get("householdMemberLastName")); + studentData.put("memberBirthDay", member.get("householdMemberBirthDay")); + studentData.put("memberBirthMonth", member.get("householdMemberBirthMonth")); + studentData.put("memberBirthYear", member.get("householdMemberBirthYear")); + studentData.put("homeAddressStreetAddress1", inputData.get("homeAddressStreetAddress1")); + studentData.put("homeAddressStreetAddress2", inputData.get("homeAddressStreetAddress2")); + studentData.put("homeAddressCity", inputData.get("homeAddressCity")); + studentData.put("homeAddressState", inputData.get("homeAddressState")); + studentData.put("homeAddressZipCode", inputData.get("homeAddressZipCode")); + StudentCsvModel studentModel = mapper.convertValue(studentData, StudentCsvModel.class); + studentModel.setSubmissionId(submission.getId()); + students.add(studentModel); + } + } + return students; + } +} diff --git a/src/main/java/org/ladocuploader/app/csv/model/WICApplicationCsvModel.java b/src/main/java/org/ladocuploader/app/csv/model/WICApplicationCsvModel.java new file mode 100644 index 000000000..e4ca85157 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/csv/model/WICApplicationCsvModel.java @@ -0,0 +1,31 @@ +package org.ladocuploader.app.csv.model; + +import com.fasterxml.jackson.annotation.JsonSetter; +import com.fasterxml.jackson.core.JsonProcessingException; +import com.opencsv.bean.CsvBindByName; +import com.opencsv.bean.CsvCustomBindByName; +import formflow.library.data.Submission; +import java.util.HashMap; +import java.util.Map; +import lombok.Getter; +import lombok.Setter; +import org.ladocuploader.app.csv.converters.AddressStreetConverter; +import org.ladocuploader.app.csv.converters.PhoneNumberConverter; + +@Getter +@Setter +public class WICApplicationCsvModel extends BaseCsvModel { + + + @CsvBindByName(column="reference_id") + private String id; + + public static BaseCsvModel generateModel(Submission submission) throws JsonProcessingException { + Map inputData = submission.getInputData(); + inputData.put("id", submission.getId()); + + WICApplicationCsvModel wicModel = mapper.convertValue(inputData, WICApplicationCsvModel.class); + wicModel.setSubmissionId(submission.getId()); + return wicModel; + } +} diff --git a/src/main/java/org/ladocuploader/app/data/Transmission.java b/src/main/java/org/ladocuploader/app/data/Transmission.java new file mode 100644 index 000000000..f01deeefd --- /dev/null +++ b/src/main/java/org/ladocuploader/app/data/Transmission.java @@ -0,0 +1,59 @@ +package org.ladocuploader.app.data; + +import formflow.library.data.Submission; +import io.hypersistence.utils.hibernate.type.json.JsonType; +import lombok.Data; +import org.hibernate.annotations.Type; +import org.ladocuploader.app.csv.enums.CsvType; +import org.ladocuploader.app.data.enums.TransmissionStatus; +import org.ladocuploader.app.data.enums.TransmissionType; +import org.springframework.stereotype.Component; + +import jakarta.persistence.*; +import java.util.Date; +import java.util.Map; +import java.util.UUID; + +import static jakarta.persistence.TemporalType.TIMESTAMP; + +@Entity +@Data +@Table(name="transmissions") +@Component +public class Transmission { + + @Id + @GeneratedValue + @Column(name="transmission_id") + private UUID transmission_id; + + @Column(name="run_id") + private UUID runId; + + @ManyToOne + @JoinColumn(name = "submission_id") + private Submission submission; + + @Temporal(TIMESTAMP) + @Column(name="time_sent") + private Date timeSent; + + @Column(name="status") + @Enumerated(EnumType.STRING) + private TransmissionStatus status; + + @Column(name="transmission_type") + @Enumerated(EnumType.STRING) + private TransmissionType transmissionType; + + @Type(JsonType.class) + @Column(name="submission_errors", columnDefinition = "jsonb") + private Map submissionErrors; + + public static Transmission fromSubmission(Submission submission) { + var transmission = new Transmission(); + transmission.setSubmission(submission); + return transmission; + } + +} diff --git a/src/main/java/org/ladocuploader/app/data/TransmissionRepository.java b/src/main/java/org/ladocuploader/app/data/TransmissionRepository.java new file mode 100644 index 000000000..57f30fe87 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/data/TransmissionRepository.java @@ -0,0 +1,24 @@ +package org.ladocuploader.app.data; + +import formflow.library.data.Submission; +import org.ladocuploader.app.data.enums.TransmissionType; +import org.springframework.data.domain.Sort; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.stereotype.Repository; + +import java.util.List; +import java.util.UUID; + +@Repository +public interface TransmissionRepository extends JpaRepository { + @Query(value = "SELECT s FROM Submission s " + + "JOIN Transmission t ON t.submission = s " + + "WHERE s.submittedAt IS NOT NULL " + + "AND t.transmissionType = :transmissionType " + + "AND (t.status = 'Queued') OR (t.status = 'Failed') " + + "ORDER BY s.updatedAt ASC ") + List submissionsToTransmit(Sort sort, TransmissionType transmissionType); + + Transmission findBySubmissionAndTransmissionType(Submission submission, TransmissionType transmissionType); +} diff --git a/src/main/java/org/ladocuploader/app/data/TransmissionRepositoryService.java b/src/main/java/org/ladocuploader/app/data/TransmissionRepositoryService.java new file mode 100644 index 000000000..681786719 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/data/TransmissionRepositoryService.java @@ -0,0 +1,49 @@ +package org.ladocuploader.app.data; + +import formflow.library.data.Submission; +import formflow.library.data.SubmissionRepository; +import jakarta.transaction.Transactional; +import org.ladocuploader.app.data.enums.TransmissionStatus; +import org.ladocuploader.app.data.enums.TransmissionType; +import org.springframework.stereotype.Service; + +import java.util.UUID; + +@Service +@Transactional +public class TransmissionRepositoryService { + + final SubmissionRepository submissionRepository; + + final TransmissionRepository transmissionRepository; + + public TransmissionRepositoryService(SubmissionRepository submissionRepository, TransmissionRepository transmissionRepository) { + this.submissionRepository = submissionRepository; + this.transmissionRepository = transmissionRepository; + } + + + public boolean transmissionExists(Submission submission, TransmissionType transmissionType) { + return transmissionRepository.findBySubmissionAndTransmissionType(submission, transmissionType) != null; + } + + public Transmission createTransmissionRecord(Submission submission, TransmissionType transmissionType) { + if (!submission.getFlow().equals("laDigitalAssister")) { + throw new RuntimeException("Non-laDigitalAssister object passed to createTransmissionRecord"); + } + + var transmission = Transmission.fromSubmission(submission); + transmission.setTransmissionType(transmissionType); + transmission.setStatus(TransmissionStatus.Queued); + + + this.submissionRepository.save(submission); + this.transmissionRepository.save(transmission); + + return transmission; + } + + public Transmission save(Transmission transmission){ + return transmissionRepository.save(transmission); + } +} diff --git a/src/main/java/org/ladocuploader/app/data/enums/TransmissionStatus.java b/src/main/java/org/ladocuploader/app/data/enums/TransmissionStatus.java new file mode 100644 index 000000000..94975e279 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/data/enums/TransmissionStatus.java @@ -0,0 +1,9 @@ +package org.ladocuploader.app.data.enums; + +public enum TransmissionStatus { + + Queued, + Failed, + Complete + +} diff --git a/src/main/java/org/ladocuploader/app/data/enums/TransmissionType.java b/src/main/java/org/ladocuploader/app/data/enums/TransmissionType.java new file mode 100644 index 000000000..b5fcd5786 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/data/enums/TransmissionType.java @@ -0,0 +1,18 @@ +package org.ladocuploader.app.data.enums; + +import org.ladocuploader.app.csv.enums.CsvPackageType; + +public enum TransmissionType { + ECE(CsvPackageType.ECE_PACKAGE), + WIC(CsvPackageType.WIC_PACKAGE); + + private final CsvPackageType packageType; + + TransmissionType(CsvPackageType packageType){ + this.packageType = packageType; + } + + public CsvPackageType getPackageType() { + return this.packageType; + } +} diff --git a/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java b/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java index 9df6f7df8..519a3ca1e 100644 --- a/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java +++ b/src/main/java/org/ladocuploader/app/inputs/LaDigitalAssister.java @@ -1,14 +1,15 @@ package org.ladocuploader.app.inputs; import formflow.library.data.FlowInputs; +import formflow.library.data.annotations.DynamicField; import formflow.library.data.annotations.Money; -import jakarta.validation.constraints.Digits; -import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotEmpty; +import jakarta.validation.constraints.Pattern; +import jakarta.validation.constraints.Size; import lombok.Data; import lombok.EqualsAndHashCode; import org.hibernate.validator.constraints.Range; -import org.springframework.format.annotation.NumberFormat; import java.util.List; @@ -22,85 +23,103 @@ public class LaDigitalAssister extends FlowInputs { private String needInterpreter; // Choose programs + @NotEmpty(message="{error.missing-general}") private List programs; - @NotBlank + + // Who is Applying + @NotBlank(message="{error.missing-general}") private String whosApplying; - @NotBlank + // Personal Information + @NotBlank(message="{error.missing-firstname}") private String firstName; - @NotBlank + @NotBlank(message="{error.missing-lastname}") private String lastName; - private String highestEducation; - - private String maritalStatus; - - private String sex; - private String otherNames; private String birthDay; private String birthMonth; private String birthYear; - private String phoneNumber; + @NotBlank(message="{error.missing-general}") + private String sex; - private String identifiesAsDeaf; + private String maritalStatus; - private String preferredCommsMethod; + private String highestEducation; - private String remindersMethod; + // home address + private String noHomeAddress; - private String emailAddress; + private String homeAddressStreetAddress1; - private String multiplePersonHousehold; + private String homeAddressStreetAddress2; - private String householdMemberFirstName; + private String homeAddressCity; - private String householdMemberLastName; + private String homeAddressState; - private String householdBirthDay; + private String homeAddressZipCode; - private String householdBirthMonth; + //Mailing Address + private String sameAsHomeAddress; - private String householdBirthYear; + private String mailingAddressStreetAddress1; - private String householdOtherNames; + private String mailingAddressStreetAddress2; - private String householdRelationship; + private String mailingAddressCity; - private String householdSex; + private String mailingAddressState; - private String householdMaritalStatus; + private String mailingAddressZipCode; - private String householdHighestEducation; + //Contact Info + private String phoneNumber; - private String ssns; + private String identifiesAsDeaf; - private String homeAddressZipCode; + private String preferredCommsMethod; - private String homeAddressState; + private String emailAddress; - private String homeAddressCity; + private List remindersMethod; - private String noHomeAddress; + // Household + private String multiplePersonHousehold; - private String homeAddressStreetAddress2; + @NotBlank(message="{error.missing-firstname}") + private String householdMemberFirstName; - private String homeAddressStreetAddress1; + @NotBlank(message="{error.missing-lastname}") + private String householdMemberLastName; - private String sameAsHomeAddress; + private String householdMemberOtherNames; - private String mailingAddressZipCode; + private String householdMemberBirthDay; - private String mailingAddressState; + private String householdMemberBirthMonth; - private String mailingAddressCity; + private String householdMemberBirthYear; - private String mailingAddressStreetAddress2; + @NotBlank(message="{error.missing-general}") + private String householdMemberRelationship; - private String mailingAddressStreetAddress1; + @NotBlank(message="{error.missing-general}") + private String householdMemberSex; + + private String householdMemberMaritalStatus; + + private String householdMemberHighestEducation; + + @Size(min=9, max=9, message="{error.invalid-ssn}") + private String ssn; + + @Size(min=9, max=9, message="{error.invalid-ssn}") + @DynamicField + private String householdMemberSsn; private String schoolInd; @@ -125,18 +144,6 @@ public class LaDigitalAssister extends FlowInputs { private String citizenshipInd; - private String selfEmploymentIncome; - - @NotBlank - private String householdMemberJobAdd; - - @NotBlank - private String employerName; - - private String selfEmployed; - - private String jobPaidByHour; - private String nonCitizens; private String citizenshipNumber; @@ -165,12 +172,6 @@ public class LaDigitalAssister extends FlowInputs { private String meals; - // Income - private String householdSearchingForJob; - - private String jobSearch; - - private String workDisqualificationInd; // Sensitive Questions private String householdHasPersonalSituations; @@ -193,69 +194,159 @@ public class LaDigitalAssister extends FlowInputs { private String personalSituationDisability; + // Income + private String householdSearchingForJob; + + @NotEmpty(message="{error.missing-general}") + private List jobSearch; + + private String workDisqualificationInd; + + private String selfEmploymentIncome; + + @NotBlank(message="{error.missing-general}") + private String householdMemberJobAdd; - @Money - @NotBlank + @NotBlank(message="{error.missing-general}") + private String employerName; + + private String selfEmployed; + + private String jobPaidByHour; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String hourlyWage; - @Range(min=1, max=100) - @NotBlank + @Range(message="{error.invalid-range}", min=1, max=100) + @NotBlank(message="{error.missing-general}") private String hoursPerWeek; - @NotBlank + @NotBlank(message="{error.missing-pay-period}") private String payPeriod; - @Money - @NotBlank + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String payPeriodAmount; - private String additionalIncome; + @NotEmpty(message="{error.missing-general}") + private List additionalIncome; - @Money + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String moneyOnHand; - + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String monthlyHouseholdIncome; private String switchToIncomeByJob; + @NotEmpty(message="{error.missing-general}") private List householdHomeExpenses; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesRent; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesMortgage; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesHomeownerInsurance; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesPropertyTax; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesCondoFees; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesLotRental; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesFloodInsurance; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesOther; + @NotEmpty(message="{error.missing-general}") private List householdUtilitiesExpenses; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesHeating; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesCooling; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesElectricity; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesWater; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesPhone; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesGarbage; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesSewer; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesCookingFuel; + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") private String expensesUtilitiesOther; + private String hasDependentCareExpenses; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") + private String expensesDependentCare; + + @NotEmpty(message="{error.missing-general}") + private List householdInsuranceExpenses; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") + private String expensesMedicalInsurance; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") + private String expensesDentalInsurance; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") + private String expensesVisionInsurance; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") + private String expensesMedicalBills; + + private String hasElderlyCareExpenses; + + @Money(message="{error.invalid-money}") + @NotBlank(message="{error.missing-dollar-amount}") + private String expensesElderlyCare; + // Final Screen private String authorizedRepresentative; @@ -265,66 +356,57 @@ public class LaDigitalAssister extends FlowInputs { private String authorizedRepSpendingAuthorization; - @NotBlank + @NotBlank(message="{error.missing-firstname}") private String authorizedRepFirstName; - @NotBlank + @NotBlank(message="{error.missing-lastname}") private String authorizedRepLastName; private String authorizedRepOtherNames; + @NotBlank(message="{error.missing-general}") private String authorizedRepStreetAddress1; private String authorizedRepStreetAddress2; - private String authorizedRepZipCode; + @NotBlank(message="{error.missing-general}") + private String authorizedRepCity; + @NotBlank(message="{error.missing-general}") private String authorizedRepState; - private String authorizedRepCity; + @NotBlank(message="{error.missing-general}") + @Pattern(regexp = "\\d{5}", message = "{error.format-zip}") + private String authorizedRepZipCode; + @Pattern(regexp = "^\\(\\d{3}\\) \\d{3}-\\d{4}$", message="{error.invalid-phone}") private String authorizedRepPhoneNumber; private String needsMedicaid; + @NotBlank(message="{error.missing-general}") private String votingRegistrationRequested; + @NotBlank(message="{error.missing-general}") private String votingRegistrationHelpRequested; private String permissionToAskAboutRace; private String ethnicitySelected; - private String raceSelected; + private List raceSelected; - private String rightsAndResponsibilitiesAgree; + private List rightsAndResponsibilitiesAgree; - private String noIncorrectInformationAgree; + private List noIncorrectInformationAgree; - private String programsSharingDataAccessAgree; + private List programsSharingDataAccessAgree; - private String nonDiscriminationStatementAgree; + private List nonDiscriminationStatementAgree; + @NotBlank(message="{error.missing-general}") private String signature; - private String hasDependentCareExpenses; - - private String expensesDependentCare; - - private String householdInsuranceExpenses; - - private String expensesMedicalInsurance; - - private String expensesDentalInsurance; - - private String expensesVisionInsurance; - - private String expensesMedicalBills; - - private String hasElderlyCareExpenses; - - private String expensesElderlyCare; - @NotBlank(message = "{final-confirmation.answer-feedback-question}") private String digitalAssisterFeedback; diff --git a/src/main/java/org/ladocuploader/app/interceptors/DataRequiredInterceptor.java b/src/main/java/org/ladocuploader/app/interceptors/DataRequiredInterceptor.java index 791d05151..1bada1914 100644 --- a/src/main/java/org/ladocuploader/app/interceptors/DataRequiredInterceptor.java +++ b/src/main/java/org/ladocuploader/app/interceptors/DataRequiredInterceptor.java @@ -36,6 +36,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons var parsedUrl = new AntPathMatcher().extractUriTemplateVariables(PATH_FORMAT, request.getRequestURI()); var requiredData = REQUIRED_DATA.get(parsedUrl.get("screen")); String redirect_url = String.format("/flow/laDocUpload/clientInfo?intercepted=%s", parsedUrl.get("screen")); + if (requiredData == null) { return true; // There are no data requirements for this page } diff --git a/src/main/java/org/ladocuploader/app/preparers/ApplicantDetailsPreparer.java b/src/main/java/org/ladocuploader/app/preparers/ApplicantDetailsPreparer.java new file mode 100644 index 000000000..a83023f8b --- /dev/null +++ b/src/main/java/org/ladocuploader/app/preparers/ApplicantDetailsPreparer.java @@ -0,0 +1,49 @@ +package org.ladocuploader.app.preparers; + +import formflow.library.data.Submission; +import formflow.library.pdf.PdfMap; +import formflow.library.pdf.SingleField; +import formflow.library.pdf.SubmissionField; +import formflow.library.pdf.SubmissionFieldPreparer; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Stream; + +import static org.ladocuploader.app.utils.SubmissionUtilities.PDF_EDUCATION_MAP; + +@Component +public class ApplicantDetailsPreparer implements SubmissionFieldPreparer { + + @Override + public Map prepareSubmissionFields(Submission submission, PdfMap pdfMap) { + Map results = new HashMap<>(); + + Map inputData = submission.getInputData(); + + // Convert "who does this apply to" responses to a boolean indicator + Map.of("students[]", "applicantStudentInd", + "nonCitizens[]", "applicantNonCitizenInd", + "homeless[]", "applicantHomelessInd") + .forEach((key, value) -> { + var inputs = (List) inputData.getOrDefault(key, new ArrayList<>()); + var ind = inputs != null && inputs.contains("you") ? "Yes" : "No"; + results.put(value, new SingleField(value, ind, null)); + }); + + // Format birthday + var birthday = Stream.of("birthMonth", "birthDay", "birthYear") + .map(inputData::get) + .reduce((e, c) -> e + "/" + c) + .get(); + results.put("applicantBirthday", new SingleField("applicantBirthdayFormatted", (String) birthday, null)); + + var educationStatus = inputData.get("highestEducation"); + results.put("highestEducation", new SingleField("highestEducationFormatted", PDF_EDUCATION_MAP.get(educationStatus), null)); + + return results; + } +} diff --git a/src/main/java/org/ladocuploader/app/preparers/HouseholdDetailsPreparer.java b/src/main/java/org/ladocuploader/app/preparers/HouseholdDetailsPreparer.java new file mode 100644 index 000000000..7a660c36a --- /dev/null +++ b/src/main/java/org/ladocuploader/app/preparers/HouseholdDetailsPreparer.java @@ -0,0 +1,52 @@ +package org.ladocuploader.app.preparers; + +import formflow.library.data.Submission; +import formflow.library.pdf.PdfMap; +import formflow.library.pdf.SingleField; +import formflow.library.pdf.SubmissionField; +import formflow.library.pdf.SubmissionFieldPreparer; +import org.springframework.stereotype.Component; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.stream.Stream; + +import static org.ladocuploader.app.utils.SubmissionUtilities.*; + +@Component +public class HouseholdDetailsPreparer implements SubmissionFieldPreparer { + + + @Override + public Map prepareSubmissionFields(Submission submission, PdfMap pdfMap) { + Map results = new HashMap<>(); + + var nonCitizens = (List) submission.getInputData().getOrDefault("nonCitizens[]", new ArrayList<>()); + var household = (List>) submission.getInputData().get("household"); + if (household != null) { + for (int i = 0; i < household.size(); i++) { + Map householdMember = household.get(i); + var educationStatus = householdMember.get("householdMemberHighestEducation"); + results.put("householdHighestEducation" + i, new SingleField("householdHighestEducationFormatted", PDF_EDUCATION_MAP.get(educationStatus), i + 1)); + + var maritalStatus = householdMember.get("householdMemberMaritalStatus"); + results.put("householdMaritalStatus" + i, new SingleField("householdMaritalStatusFormatted", PDF_MARITAL_STATUS_MAP.get(maritalStatus), i + 1)); + + var relationshipStatus = householdMember.get("householdMemberRelationship"); + results.put("householdRelationship" + i, new SingleField("householdRelationshipFormatted", PDF_RELATIONSHIP_MAP.get(relationshipStatus), i + 1)); + + var birthday = Stream.of("householdMemberBirthMonth", "householdMemberBirthDay", "householdMemberBirthYear") + .map(householdMember::get) + .reduce((e, c) -> e + "/" + c) + .get(); + results.put("householdBirthday" + i, new SingleField("householdBirthdayFormatted", (String) birthday, i + 1)); + + var uuid = householdMember.get("uuid"); + results.put("householdUSCitizen" + i, new SingleField("householdUSCitizenDerived", nonCitizens != null && nonCitizens.contains(uuid) ? "No" : "Yes", i + 1)); + } + } + return results; + } +} diff --git a/src/main/java/org/ladocuploader/app/preparers/MaritalStatusPreparer.java b/src/main/java/org/ladocuploader/app/preparers/MaritalStatusPreparer.java new file mode 100644 index 000000000..0b2b240e4 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/preparers/MaritalStatusPreparer.java @@ -0,0 +1,24 @@ +package org.ladocuploader.app.preparers; + +import formflow.library.data.Submission; +import formflow.library.pdf.PdfMap; +import formflow.library.pdf.SingleField; +import formflow.library.pdf.SubmissionField; +import formflow.library.pdf.SubmissionFieldPreparer; +import org.springframework.stereotype.Component; + +import java.util.Collections; +import java.util.Map; + +@Component +public class MaritalStatusPreparer implements SubmissionFieldPreparer { + + @Override + public Map prepareSubmissionFields(Submission submission, PdfMap pdfMap) { + var maritalStatus = (String) submission.getInputData().getOrDefault("maritalStatus", ""); + if (maritalStatus.startsWith("Married")) { + return Map.of("maritalStatus", new SingleField("maritalStatus", "Married", null)); + } + return Collections.emptyMap(); + } +} diff --git a/src/main/java/org/ladocuploader/app/preparers/PersonalSituationsPreparer.java b/src/main/java/org/ladocuploader/app/preparers/PersonalSituationsPreparer.java new file mode 100644 index 000000000..1673b2e1a --- /dev/null +++ b/src/main/java/org/ladocuploader/app/preparers/PersonalSituationsPreparer.java @@ -0,0 +1,34 @@ +package org.ladocuploader.app.preparers; + +import formflow.library.data.Submission; +import formflow.library.pdf.PdfMap; +import formflow.library.pdf.SingleField; +import formflow.library.pdf.SubmissionField; +import formflow.library.pdf.SubmissionFieldPreparer; +import org.springframework.stereotype.Component; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +@Component +public class PersonalSituationsPreparer implements SubmissionFieldPreparer { + + @Override + public Map prepareSubmissionFields(Submission submission, PdfMap pdfMap) { + List disability = (List) submission.getInputData().getOrDefault("personalSituationDisability[]", Collections.EMPTY_LIST); + boolean disabilityFlag = disability.contains("you"); + + var household = (List>) submission.getInputData().get("household"); + if (!disabilityFlag && household != null) { + for (Map member : household) { + var uuid = member.get("uuid"); + if (disability.contains(uuid)) { + return Map.of("disablityInd", new SingleField("personalSituationDisablityInd", "true", null)); + } + } + } + + return Map.of("disablityInd", new SingleField("personalSituationDisablityInd", disabilityFlag ? "true" : "false", null)); + } +} diff --git a/src/main/java/org/ladocuploader/app/preparers/PlaceholderPreparer.java b/src/main/java/org/ladocuploader/app/preparers/PlaceholderPreparer.java new file mode 100644 index 000000000..0ea54996f --- /dev/null +++ b/src/main/java/org/ladocuploader/app/preparers/PlaceholderPreparer.java @@ -0,0 +1,28 @@ +package org.ladocuploader.app.preparers; + +import formflow.library.data.Submission; +import formflow.library.pdf.PdfMap; +import formflow.library.pdf.SingleField; +import formflow.library.pdf.SubmissionField; +import formflow.library.pdf.SubmissionFieldPreparer; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.Map; + +@Component +public class PlaceholderPreparer implements SubmissionFieldPreparer { + +// public List getPreparerTypes() {return List.of("parentGuardian");} + + @Override + public Map prepareSubmissionFields(Submission submission, PdfMap pdfMap) { + var fields = new HashMap(); + + fields.put("active", new SingleField("active", "TRUE", null) ); + fields.put("middle_name", new SingleField("middle_name", "", null)); + fields.put("reference_id", new SingleField("reference_id", "", null)); + + return fields; + } +} diff --git a/src/main/java/org/ladocuploader/app/preparers/SsnPreparer.java b/src/main/java/org/ladocuploader/app/preparers/SsnPreparer.java new file mode 100644 index 000000000..46f75166b --- /dev/null +++ b/src/main/java/org/ladocuploader/app/preparers/SsnPreparer.java @@ -0,0 +1,51 @@ +package org.ladocuploader.app.preparers; + +import formflow.library.data.Submission; +import formflow.library.pdf.PdfMap; +import formflow.library.pdf.SingleField; +import formflow.library.pdf.SubmissionField; +import formflow.library.pdf.SubmissionFieldPreparer; +import org.ladocuploader.app.submission.StringEncryptor; +import org.springframework.stereotype.Component; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.ladocuploader.app.utils.SubmissionUtilities.ENCRYPTED_SSNS_INPUT_NAME; + +@Component +public class SsnPreparer implements SubmissionFieldPreparer { + private final StringEncryptor encryptor; + + public SsnPreparer(StringEncryptor stringEncryptor) { + encryptor = stringEncryptor; + } + + private StringEncryptor getEncryptor() { + return encryptor; + } + + @Override + public Map prepareSubmissionFields(Submission submission, PdfMap pdfMap) { + Map results = new HashMap<>(); + String encryptedSSN = (String) submission.getInputData().remove("encryptedSSN"); + if (encryptedSSN != null) { + String decryptedSSN = encryptor.decrypt(encryptedSSN); + results.put("applicantSsn", new SingleField("applicantSsn", decryptedSSN, null)); + } + + List> householdMembers = (List) submission.getInputData().get("household"); + if(householdMembers != null) { + int i = 1; + for (Map hhmember : householdMembers) { + encryptedSSN = (String) hhmember.get(ENCRYPTED_SSNS_INPUT_NAME); + String decryptedSSN = encryptor.decrypt(encryptedSSN); + results.put("ssns_" + i, new SingleField("ssns_" + i, decryptedSSN, null)); + i++; + } + } + + return results; + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/AWSStringEncryptor.java b/src/main/java/org/ladocuploader/app/submission/AWSStringEncryptor.java index 6002223ec..7b467bb10 100644 --- a/src/main/java/org/ladocuploader/app/submission/AWSStringEncryptor.java +++ b/src/main/java/org/ladocuploader/app/submission/AWSStringEncryptor.java @@ -33,6 +33,10 @@ public AWSStringEncryptor(@Value("${form-flow.aws.cmk}") String keyArn, @Value(" @Override public String decrypt(String ciphertext) { + if (ciphertext == null || ciphertext.isEmpty()) { + return ""; + } + DecryptRequest decryptRequest = new DecryptRequest() .withEncryptionAlgorithm("RSAES_OAEP_SHA_256") .withKeyId(keyArn) @@ -44,6 +48,10 @@ public String decrypt(String ciphertext) { @Override public String encrypt(String plaintext) { + if (plaintext == null || plaintext.isEmpty()) { + return ""; + } + EncryptRequest req = new EncryptRequest() .withEncryptionAlgorithm("RSAES_OAEP_SHA_256") .withKeyId(keyArn) diff --git a/src/main/java/org/ladocuploader/app/submission/actions/AssisterAction.java b/src/main/java/org/ladocuploader/app/submission/actions/AssisterAction.java new file mode 100644 index 000000000..f109f8371 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/AssisterAction.java @@ -0,0 +1,29 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.config.submission.Action; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.MessageSource; +import org.springframework.context.i18n.LocaleContextHolder; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class AssisterAction implements Action { + + protected static final String DATE_REGEX_PATTERN = "MM/dd/yyyy"; + protected static final String MIN_DATE_ALLOWED = "01/01/1900"; + protected static final String PHONE_REGEX_PATTERN="^\\(\\d{3}\\) \\d{3}-\\d{4}$"; + protected static final String EMAIL_REGEX_PATTERN="^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$"; + + protected static final String ZIPCODE_REGEX_PATTERN="\\d{5}"; + + + + @Autowired + MessageSource source; + public String translateMessage(String messageKey) { + return source.getMessage(messageKey, null, LocaleContextHolder.getLocale()); + + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/actions/DecryptSSNBeforeDisplaying.java b/src/main/java/org/ladocuploader/app/submission/actions/DecryptSSNBeforeDisplaying.java index 9bc31f207..954b5fcc8 100644 --- a/src/main/java/org/ladocuploader/app/submission/actions/DecryptSSNBeforeDisplaying.java +++ b/src/main/java/org/ladocuploader/app/submission/actions/DecryptSSNBeforeDisplaying.java @@ -6,15 +6,16 @@ import org.springframework.stereotype.Component; import java.util.ArrayList; -import java.util.List; -import java.util.Map; +import java.util.LinkedHashMap; + +import static org.ladocuploader.app.utils.SubmissionUtilities.ENCRYPTED_SSNS_INPUT_NAME; +import static org.ladocuploader.app.utils.SubmissionUtilities.getDecryptedSSNKeyName; /** * */ @Component public class DecryptSSNBeforeDisplaying implements Action { - private static final String ENCRYPTED_SSNS_INPUT_NAME = "encryptedSSNs"; private final StringEncryptor encryptor; @@ -34,33 +35,13 @@ public void run(Submission submission) { submission.getInputData().put("ssn", decryptedSSN); } - // Digital Assister - List householdSsnInputs = new ArrayList<>(); - encryptedSSN = (String) submission.getInputData().remove(ENCRYPTED_SSNS_INPUT_NAME); - if (encryptedSSN != null) { - String decryptedSSN = getEncryptor().decrypt(encryptedSSN); - householdSsnInputs.add(decryptedSSN); - } + ArrayList householdMembers = (ArrayList) submission.getInputData().get("household"); - var householdMembers = (List) submission.getInputData().get("household"); - if (householdMembers != null && !householdMembers.isEmpty()) { - if (householdSsnInputs.isEmpty()) { - // Make sure there's one for head of household - householdSsnInputs.add(""); - } - for (int i = 0; i < householdMembers.size(); i++) { - encryptedSSN = (String) ((Map) householdMembers.get(i)).remove(ENCRYPTED_SSNS_INPUT_NAME); - if (encryptedSSN != null) { - String decryptedSSN = getEncryptor().decrypt(encryptedSSN); - householdSsnInputs.add(decryptedSSN); - } else { - householdSsnInputs.add(""); - } - } - } - - if (!householdSsnInputs.isEmpty()) { - submission.getInputData().put("ssns", householdSsnInputs); + for (LinkedHashMap hhmember : householdMembers) { + String ssnKey = getDecryptedSSNKeyName((String) hhmember.get("uuid")); + encryptedSSN = (String) hhmember.remove(ENCRYPTED_SSNS_INPUT_NAME); + String decryptedSSN = getEncryptor().decrypt(encryptedSSN); + submission.getInputData().put(ssnKey, decryptedSSN); } } } diff --git a/src/main/java/org/ladocuploader/app/submission/actions/EncryptSSNBeforeSaving.java b/src/main/java/org/ladocuploader/app/submission/actions/EncryptSSNBeforeSaving.java index 0150f2588..4d1852282 100644 --- a/src/main/java/org/ladocuploader/app/submission/actions/EncryptSSNBeforeSaving.java +++ b/src/main/java/org/ladocuploader/app/submission/actions/EncryptSSNBeforeSaving.java @@ -5,12 +5,14 @@ import org.ladocuploader.app.submission.StringEncryptor; import org.springframework.stereotype.Component; -import java.util.List; -import java.util.Map; +import java.util.ArrayList; +import java.util.LinkedHashMap; + +import static org.ladocuploader.app.utils.SubmissionUtilities.ENCRYPTED_SSNS_INPUT_NAME; +import static org.ladocuploader.app.utils.SubmissionUtilities.getDecryptedSSNKeyName; @Component public class EncryptSSNBeforeSaving implements Action { - private static final String ENCRYPTED_SSNS_INPUT_NAME = "encryptedSSNs"; private final StringEncryptor encryptor; @@ -21,26 +23,18 @@ public EncryptSSNBeforeSaving(StringEncryptor stringEncryptor) { @Override public void run(Submission submission) { String ssnInput = (String) submission.getInputData().remove("ssn"); - if (ssnInput != null && !ssnInput.isEmpty()) { + if (ssnInput != null) { String encryptedSSN = encryptor.encrypt(ssnInput); submission.getInputData().put("encryptedSSN", encryptedSSN); } - var householdSsnInputs = submission.getInputData().remove("ssns"); - if (householdSsnInputs != null) { - if (householdSsnInputs instanceof String && !((String) householdSsnInputs).isEmpty()) { - String encryptedSSN = encryptor.encrypt((String) householdSsnInputs); - submission.getInputData().put(ENCRYPTED_SSNS_INPUT_NAME, encryptedSSN); - } else if (householdSsnInputs instanceof List && !((List) householdSsnInputs).isEmpty()) { - var householdSSNs = ((List) householdSsnInputs); - String encryptedSSN = encryptor.encrypt(householdSSNs.get(0)); - submission.getInputData().put(ENCRYPTED_SSNS_INPUT_NAME, encryptedSSN); - - var householdMembers = (List) submission.getInputData().get("household"); - for (int i = 0; i < householdMembers.size(); i++) { - encryptedSSN = encryptor.encrypt(householdSSNs.get(i + 1)); - ((Map) householdMembers.get(i)).put(ENCRYPTED_SSNS_INPUT_NAME, encryptedSSN); - } + ArrayList householdMembers = (ArrayList) submission.getInputData().get("household"); + if (householdMembers != null) { + for (LinkedHashMap hhmember : householdMembers) { + String ssnKey = getDecryptedSSNKeyName((String) hhmember.get("uuid")); + var householdMemberSsn = (String) submission.getInputData().remove(ssnKey); + String encryptedSSN = encryptor.encrypt(householdMemberSsn); + hhmember.put(ENCRYPTED_SSNS_INPUT_NAME, encryptedSSN); } } } diff --git a/src/main/java/org/ladocuploader/app/submission/actions/HandleApplicationSigned.java b/src/main/java/org/ladocuploader/app/submission/actions/HandleApplicationSigned.java new file mode 100644 index 000000000..c0bc68c5b --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/HandleApplicationSigned.java @@ -0,0 +1,32 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.config.submission.Action; +import formflow.library.data.Submission; +import lombok.extern.slf4j.Slf4j; +import org.ladocuploader.app.data.TransmissionRepositoryService; +import org.ladocuploader.app.data.enums.TransmissionType; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + + +@Slf4j +@Component +public class HandleApplicationSigned implements Action { + + @Autowired + private TransmissionRepositoryService transmissionRepositoryService; + + @Override + public void run(Submission submission) { + // Create WIC + ECE records if they don't exist + if (!transmissionRepositoryService.transmissionExists(submission, TransmissionType.WIC)) { + // already submitted WIC. don't do anything again. + transmissionRepositoryService.createTransmissionRecord(submission, TransmissionType.WIC); + } + + if (!transmissionRepositoryService.transmissionExists(submission, TransmissionType.ECE)) { + // already submitted WIC. don't do anything again. + transmissionRepositoryService.createTransmissionRecord(submission, TransmissionType.ECE); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/ladocuploader/app/submission/actions/SetExperimentGroups.java b/src/main/java/org/ladocuploader/app/submission/actions/SetExperimentGroups.java new file mode 100644 index 000000000..37da713e2 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/SetExperimentGroups.java @@ -0,0 +1,27 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.config.submission.Action; +import formflow.library.data.Submission; +import java.util.Random; +import org.springframework.stereotype.Component; + +@Component +public class SetExperimentGroups implements Action { + + public enum ExperimentGroup { + CONTROL, + LINK, + APPLY + } + + @Override + public void run(Submission submission) { + Random rand = new Random(); + int group = rand.nextInt(3); + switch(group) { + case 0 -> submission.getInputData().put("experimentGroup", ExperimentGroup.CONTROL); + case 1 -> submission.getInputData().put("experimentGroup", ExperimentGroup.LINK); + case 2 -> submission.getInputData().put("experimentGroup", ExperimentGroup.APPLY); + } + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/actions/ValidateBirthdate.java b/src/main/java/org/ladocuploader/app/submission/actions/ValidateBirthdate.java new file mode 100644 index 000000000..92830cc9e --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/ValidateBirthdate.java @@ -0,0 +1,34 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.data.FormSubmission; +import formflow.library.data.Submission; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ValidateBirthdate extends VerifyDate { + private final String INPUT_NAME = "birthDay"; + + @Override + public Map> runValidation(FormSubmission formSubmission, Submission submission) { + Map> errorMessages = new HashMap<>(); + Map inputData = formSubmission.getFormData(); + String day = (String) inputData.get("birthDay"); + String month = (String) inputData.get("birthMonth"); + String year = (String) inputData.get("birthYear"); + +// valid range does not enforce year so added an additional validation here + if (!Pattern.matches("\\d{4}",year)) { + errorMessages.put(INPUT_NAME, List.of(translateMessage("error.format-dob"))); + } else if(!this.validRange(month+"/"+day+"/"+year)){ + errorMessages.put(INPUT_NAME, List.of(translateMessage("error.invalid-dob"))); + } + + return errorMessages; + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/actions/ValidateContactMethod.java b/src/main/java/org/ladocuploader/app/submission/actions/ValidateContactMethod.java new file mode 100644 index 000000000..99bbbee0a --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/ValidateContactMethod.java @@ -0,0 +1,41 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.data.FormSubmission; +import formflow.library.data.Submission; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ValidateContactMethod extends AssisterAction { + private final String REMINDER_METHOD_INPUT_NAME = "remindersMethod"; + private final String PHONE_NUMBER_INPUT_NAME = "phoneNumber"; + private final String EMAIL_ADDRESS_INPUT_NAME = "emailAddress"; + @Override + public Map> runValidation(FormSubmission formSubmission, Submission submission) { + Map> errorMessages = new HashMap<>(); + Map inputData = formSubmission.getFormData(); + ArrayList reminderMethod = (ArrayList) inputData.get(REMINDER_METHOD_INPUT_NAME +"[]"); + String phoneNumber =(String) inputData.get(PHONE_NUMBER_INPUT_NAME); + String emailAddress = (String) inputData.get(EMAIL_ADDRESS_INPUT_NAME); + + if(reminderMethod.contains("By Text") || !phoneNumber.isEmpty()){ + if(!Pattern.matches(PHONE_REGEX_PATTERN, phoneNumber)){ + errorMessages.put(PHONE_NUMBER_INPUT_NAME, List.of(translateMessage("error.invalid-phone"))); + }; + } + if(reminderMethod.contains("By Email") || !emailAddress.isEmpty()){ + if(!Pattern.matches(EMAIL_REGEX_PATTERN, emailAddress)){ + errorMessages.put(EMAIL_ADDRESS_INPUT_NAME, List.of(translateMessage("error.invalid-email"))); + }; + } + + return errorMessages; + } + +} \ No newline at end of file diff --git a/src/main/java/org/ladocuploader/app/submission/actions/ValidateHomeAddress.java b/src/main/java/org/ladocuploader/app/submission/actions/ValidateHomeAddress.java new file mode 100644 index 000000000..e6fdbed13 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/ValidateHomeAddress.java @@ -0,0 +1,66 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.data.FormSubmission; +import formflow.library.data.Submission; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ValidateHomeAddress extends AssisterAction { + private final String NO_HOME_ADDRESS_INPUT_NAME = "noHomeAddress"; + private final String ADDRESS_1_INPUT_NAME = "homeAddressStreetAddress1"; + private final String CITY_INPUT_NAME = "homeAddressCity"; + private final String STATE_INPUT_NAME = "homeAddressState"; + private final String ZIP_INPUT_NAME = "homeAddressZipCode"; + + + @Override + public Map> runValidation(FormSubmission formSubmission, Submission submission) { + Map> errorMessages = new HashMap<>(); + Map inputData = formSubmission.getFormData(); + String address1 = (String) inputData.get("homeAddressStreetAddress1"); + String city = (String) inputData.get("homeAddressCity"); + String state = (String) inputData.get("homeAddressState"); + String zip = (String) inputData.get("homeAddressZipCode"); + + if(homeAddressExpected(inputData)){ + if((address1+" "+city+" "+state+" "+zip).isBlank()){ + errorMessages.put(NO_HOME_ADDRESS_INPUT_NAME, List.of(translateMessage("error.missing-address"))); + } else { + if(address1.isBlank()){ + errorMessages.put(ADDRESS_1_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + }; + if(city.isBlank()){ + errorMessages.put(CITY_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + }; + if(state.isBlank()){ + errorMessages.put(STATE_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + }; + if (!Pattern.matches(ZIPCODE_REGEX_PATTERN,zip)) { + errorMessages.put(ZIP_INPUT_NAME, List.of(translateMessage("error.format-zip"))); + } + if(errorMessages.containsKey(NO_HOME_ADDRESS_INPUT_NAME)){ + errorMessages.remove(NO_HOME_ADDRESS_INPUT_NAME, List.of(translateMessage("error.missing-address"))); + } + } + + } + + return errorMessages; + } + + protected boolean homeAddressExpected(Map inputData){ + if(inputData.containsKey(NO_HOME_ADDRESS_INPUT_NAME+"[]")){ + ArrayList noHomeAddress = (ArrayList) inputData.get(NO_HOME_ADDRESS_INPUT_NAME+"[]"); + return noHomeAddress.isEmpty(); + } + return true; + } + +} \ No newline at end of file diff --git a/src/main/java/org/ladocuploader/app/submission/actions/ValidateHouseholdBirthdate.java b/src/main/java/org/ladocuploader/app/submission/actions/ValidateHouseholdBirthdate.java new file mode 100644 index 000000000..06a7d4e85 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/ValidateHouseholdBirthdate.java @@ -0,0 +1,34 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.data.FormSubmission; +import formflow.library.data.Submission; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ValidateHouseholdBirthdate extends VerifyDate { + private final String INPUT_NAME = "householdMemberBirthDay"; + + @Override + public Map> runValidation(FormSubmission formSubmission, Submission submission) { + Map> errorMessages = new HashMap<>(); + Map inputData = formSubmission.getFormData(); + String day = (String) inputData.get("householdMemberBirthDay"); + String month = (String) inputData.get("householdMemberBirthMonth"); + String year = (String) inputData.get("householdMemberBirthYear"); + +// valid range does not enforce year so added an additional validation here + if (!Pattern.matches("\\d{4}",year)) { + errorMessages.put(INPUT_NAME, List.of(translateMessage("error.format-dob"))); + } else if(!this.validRange(month+"/"+day+"/"+year)){ + errorMessages.put(INPUT_NAME, List.of(translateMessage("error.invalid-dob"))); + } + + return errorMessages; + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/actions/ValidateMailingAddress.java b/src/main/java/org/ladocuploader/app/submission/actions/ValidateMailingAddress.java new file mode 100644 index 000000000..10b85886e --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/ValidateMailingAddress.java @@ -0,0 +1,90 @@ +package org.ladocuploader.app.submission.actions; + +import formflow.library.data.FormSubmission; +import formflow.library.data.Submission; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.regex.Pattern; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class ValidateMailingAddress extends AssisterAction { + private final String SAME_AS_HOME_INPUT_NAME="sameAsHomeAddress"; + private final String ADDRESS_1_INPUT_NAME = "mailingAddressStreetAddress1"; + private final String CITY_INPUT_NAME = "mailingAddressCity"; + private final String STATE_INPUT_NAME = "mailingAddressState"; + private final String ZIP_INPUT_NAME = "mailingAddressZipCode"; + + @Override + public Map> runValidation(FormSubmission formSubmission, Submission submission) { + Map> errorMessages = new HashMap<>(); + Map inputData = formSubmission.getFormData(); + boolean validateAgainstHomeAddressBoolean = validateAgainstHomeAddress(inputData); + + if(validateAgainstHomeAddressBoolean){ + if(homeAddressElementHasError(submission, "homeAddressStreetAddress1")){ + errorMessages.put(ADDRESS_1_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + } + if(homeAddressElementHasError(submission, "homeAddressCity")){ + errorMessages.put(CITY_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + } + if(homeAddressElementHasError(submission, "homeAddressState")){ + errorMessages.put(STATE_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + } + if(homeAddressZipHasError(submission)){ + errorMessages.put(ZIP_INPUT_NAME, List.of(translateMessage("error.format-zip"))); + } + } else { + if(mailingAddressHasError(inputData, ADDRESS_1_INPUT_NAME)){ + errorMessages.put(ADDRESS_1_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + } + if(mailingAddressHasError(inputData, CITY_INPUT_NAME)){ + errorMessages.put(CITY_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + } + if(mailingAddressHasError(inputData, STATE_INPUT_NAME)){ + errorMessages.put(STATE_INPUT_NAME, List.of(translateMessage("error.missing-general"))); + } + if(mailingAddressZipHasError(inputData)){ + errorMessages.put(ZIP_INPUT_NAME, List.of(translateMessage("error.format-zip"))); + } + } + + return errorMessages; + } + + protected boolean validateAgainstHomeAddress(Map inputData){ + if(inputData.containsKey(SAME_AS_HOME_INPUT_NAME+"[]")){ + ArrayList sameAsHomeAddress = (ArrayList) inputData.get(SAME_AS_HOME_INPUT_NAME+"[]"); + return sameAsHomeAddress.contains("true"); + } + return false; + } + + protected boolean homeAddressElementHasError(Submission submission, String inputKey){ + return !submission.getInputData().containsKey(inputKey); + } + + protected boolean homeAddressZipHasError(Submission submission){ + if(submission.getInputData().containsKey("homeAddressZip")){ + return !Pattern.matches(ZIPCODE_REGEX_PATTERN, submission.getInputData().get("homeAddressZip").toString()); + } else{ + return submission.getInputData().containsKey("homeAddressZip"); + } + } + + protected boolean mailingAddressHasError(Map inputData, String inputKey){ + return inputData.get(inputKey).toString().isBlank(); + } + + protected boolean mailingAddressZipHasError(Map inputData){ + if(inputData.containsKey(ZIP_INPUT_NAME)){ + return !Pattern.matches(ZIPCODE_REGEX_PATTERN, inputData.get(ZIP_INPUT_NAME).toString()); + } else{ + return inputData.containsKey(ZIP_INPUT_NAME); + } + } +} \ No newline at end of file diff --git a/src/main/java/org/ladocuploader/app/submission/actions/VerifyDate.java b/src/main/java/org/ladocuploader/app/submission/actions/VerifyDate.java new file mode 100644 index 000000000..b27628633 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/actions/VerifyDate.java @@ -0,0 +1,24 @@ +package org.ladocuploader.app.submission.actions; + +import org.joda.time.format.DateTimeFormat; +import org.joda.time.format.DateTimeFormatter; +import org.joda.time.DateTime; + +public class VerifyDate extends AssisterAction { + + DateTimeFormatter dtf = DateTimeFormat.forPattern(DATE_REGEX_PATTERN); + DateTime MIN_DATE = dtf.parseDateTime(MIN_DATE_ALLOWED); + + protected boolean validRange(String date){ + try { + DateTime birthdate = dtf.parseDateTime(date); + return validRange(birthdate); + } catch (Exception e) { + return false; + } + } + + private boolean validRange(DateTime inputDate) { + return inputDate.isBefore(DateTime.now()) && inputDate.isAfter(MIN_DATE); + } +} diff --git a/src/main/java/org/ladocuploader/app/submission/enums/SubmissionErrorTypes.java b/src/main/java/org/ladocuploader/app/submission/enums/SubmissionErrorTypes.java new file mode 100644 index 000000000..cb0545088 --- /dev/null +++ b/src/main/java/org/ladocuploader/app/submission/enums/SubmissionErrorTypes.java @@ -0,0 +1,12 @@ +package org.ladocuploader.app.submission.enums; + +public enum SubmissionErrorTypes { + INCOMPLETE_RECORD("INCOMPLETE_RECORD"), + + OTHER("OTHER"); + + private final String name; + SubmissionErrorTypes(String name) { + this.name = name; + } +} diff --git a/src/main/java/org/ladocuploader/app/utils/HouseholdUtilities.java b/src/main/java/org/ladocuploader/app/utils/HouseholdUtilities.java new file mode 100644 index 000000000..a89145bda --- /dev/null +++ b/src/main/java/org/ladocuploader/app/utils/HouseholdUtilities.java @@ -0,0 +1,27 @@ +package org.ladocuploader.app.utils; + +import java.text.NumberFormat; +import java.util.Calendar; + +public class HouseholdUtilities { + + public static boolean isMember18orOlder(int day, int month, int year) throws NumberFormatException { + + if (day <= 0 || month <= 0 || year <= 0 ) { + throw new NumberFormatException("cannot analyze birthdate as fields are missing"); + } + + Calendar memberBirthDayCal = Calendar.getInstance(); + memberBirthDayCal.set(Calendar.YEAR, year); + memberBirthDayCal.set(Calendar.MONTH, month); + memberBirthDayCal.set(Calendar.DAY_OF_MONTH, day); + + Calendar cal = Calendar.getInstance(); + cal.set(year, month, day); + cal.add(Calendar.YEAR, -18); + + // these are converted to milliseconds since Epoch and then compared. + // if the memberBirthDayCal is < or == the cal, then they are 18+ years old. + return memberBirthDayCal.compareTo(cal) <= 0; + } +} diff --git a/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java b/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java index f1031160e..ba5fd7ba3 100644 --- a/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java +++ b/src/main/java/org/ladocuploader/app/utils/SubmissionUtilities.java @@ -5,8 +5,60 @@ import java.text.DecimalFormat; import java.util.*; -public class SubmissionUtilities { +import static formflow.library.inputs.FieldNameMarkers.DYNAMIC_FIELD_MARKER; +public class SubmissionUtilities { + public static final String ENCRYPTED_SSNS_INPUT_NAME = "householdMemberEncryptedSSN"; + + public static final Map PDF_EDUCATION_MAP = new HashMap<>(); + public static final Map PDF_MARITAL_STATUS_MAP = new HashMap<>(); + + public static final Map PDF_RELATIONSHIP_MAP = new HashMap<>(); + + static { + PDF_EDUCATION_MAP.put("firstGrade", "1st grade"); + PDF_EDUCATION_MAP.put("secondGrade", "2nd grade"); + PDF_EDUCATION_MAP.put("thirdGrade", "3rd grade"); + PDF_EDUCATION_MAP.put("fourthGrade", "4th grade"); + PDF_EDUCATION_MAP.put("fifthGrade", "5th grade"); + PDF_EDUCATION_MAP.put("sixthGrade", "6th grade"); + PDF_EDUCATION_MAP.put("seventhGrade", "7th grade"); + PDF_EDUCATION_MAP.put("eighthGrade", "8th grade"); + PDF_EDUCATION_MAP.put("ninthGrade", "9th grade"); + PDF_EDUCATION_MAP.put("tenthGrade", "10th grade"); + PDF_EDUCATION_MAP.put("eleventhGrade", "11th grade"); + PDF_EDUCATION_MAP.put("highSchoolOrEquivalent", "High school / GED"); + PDF_EDUCATION_MAP.put("associatesDegree", "Associate's degree"); + PDF_EDUCATION_MAP.put("bachelorsDegree", "Bachelor's degree"); + PDF_EDUCATION_MAP.put("graduateDegree", "Graduate/Master's degree"); + PDF_EDUCATION_MAP.put("certificateOrDiploma", "Other certificate or diploma"); + PDF_EDUCATION_MAP.put("noFormalEducation", "None"); + PDF_EDUCATION_MAP.put("notSure", "Not sure"); + + PDF_MARITAL_STATUS_MAP.put("NeverMarried", "Never Married"); + PDF_MARITAL_STATUS_MAP.put("MarriedLivingWithSpouse", "Married"); + PDF_MARITAL_STATUS_MAP.put("MarriedNotLivingWithSpouse", "Married"); + PDF_MARITAL_STATUS_MAP.put("LegallySeparated", "Separated"); + PDF_MARITAL_STATUS_MAP.put("Divorced", "Divorced"); + PDF_MARITAL_STATUS_MAP.put("Widowed", "Widowed"); + + PDF_RELATIONSHIP_MAP.put("child", "child"); + PDF_RELATIONSHIP_MAP.put("stepChild", "step child"); + PDF_RELATIONSHIP_MAP.put("spouse", "spouse"); + PDF_RELATIONSHIP_MAP.put("partner", "partner"); + PDF_RELATIONSHIP_MAP.put("sibling", "sibling"); + PDF_RELATIONSHIP_MAP.put("stepSibling", "step sibling"); + PDF_RELATIONSHIP_MAP.put("halfSibling", "half sibling"); + PDF_RELATIONSHIP_MAP.put("parent", "parent"); + PDF_RELATIONSHIP_MAP.put("grandparent", "grandparent"); + PDF_RELATIONSHIP_MAP.put("childsParent", "child's parent"); + PDF_RELATIONSHIP_MAP.put("auntOrUncle", "aunt or uncle"); + PDF_RELATIONSHIP_MAP.put("nieceOrNephew", "niece or nephew"); + PDF_RELATIONSHIP_MAP.put("roommate", "roommate"); + PDF_RELATIONSHIP_MAP.put("friend", "friend"); + PDF_RELATIONSHIP_MAP.put("grandchild", "grandchild"); + PDF_RELATIONSHIP_MAP.put("other", "other"); + } public static String formatMoney(String value) { if (value == null) { return ""; @@ -31,6 +83,11 @@ public static String householdMemberFullName(Map householdMember return householdMember.get("householdMemberFirstName") + " " + householdMember.get("householdMemberLastName"); } +// public ParentGuardian getParentGuardianMap(Submission submission){ +// +// +// } + public static List getHouseholdMemberNames(Submission submission) { ArrayList names = new ArrayList<>(); @@ -105,4 +162,8 @@ public static ArrayList> getHouseholdIncomeReviewItems(S return items; } + + public static String getDecryptedSSNKeyName(String uuid) { + return "householdMemberSsn%s%s".formatted(DYNAMIC_FIELD_MARKER, uuid); + } } diff --git a/src/main/resources/application-dev.yaml b/src/main/resources/application-dev.yaml index 7ec567b2a..cb4fd9413 100644 --- a/src/main/resources/application-dev.yaml +++ b/src/main/resources/application-dev.yaml @@ -1,2 +1,7 @@ form-flow: - disabled-flows: ~ \ No newline at end of file + disabled-flows: ~ +spring: + flyway: + baseline-on-migrate: true +sftp: + environment-path: 'staging' \ No newline at end of file diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml index 3c1945fce..20ce6706d 100644 --- a/src/main/resources/application.yaml +++ b/src/main/resources/application.yaml @@ -1,9 +1,15 @@ +sftp: + username: ${SFTP_USERNAME:} + password: ${SFTP_PASSWORD:} + upload-url: ${SFTP_UPLOAD_URL:} + environment-path: 'prod' form-flow: disabled-flows: - flow: laDigitalAssister staticRedirectPage: / pdf: - path: ~ + path: 'src/main/resources/pdfs/' + map-file: pdf-map.yaml inputs: 'org.ladocuploader.app.inputs.' path: 'flows-config.yaml' uploads: @@ -89,6 +95,11 @@ server: servlet: session: persistent: true +ftps: + username: ${FTPS_USERNAME:-""} + password: ${FTPS_PASSWORD:-""} + upload-url: ${FTPS_UPLOAD_URL:-""} + upload-dir: ${FTPS_UPLOAD_DIR:-""} sentry: dsn: ${SENTRY_DSN} traces-sample-rate: 0.6 diff --git a/src/main/resources/db/migration/V2023.11.28.12.44.28__create_transmission_log_table.sql b/src/main/resources/db/migration/V2023.11.28.12.44.28__create_transmission_log_table.sql new file mode 100644 index 000000000..c431e7c97 --- /dev/null +++ b/src/main/resources/db/migration/V2023.11.28.12.44.28__create_transmission_log_table.sql @@ -0,0 +1,12 @@ +CREATE TABLE transmissions ( + transmission_id uuid PRIMARY KEY DEFAULT gen_random_uuid(), + submission_id uuid REFERENCES submissions(id), + run_id uuid, + time_sent TIMESTAMP WITHOUT TIME ZONE, + time_created TIMESTAMP WITHOUT TIME ZONE DEFAULT now(), + status varchar DEFAULT 'Queued', + transmission_type varchar, + submission_errors JSONB +); + +CREATE INDEX idx_transmission_id on transmissions (run_id, submission_id); diff --git a/src/main/resources/flows-config.yaml b/src/main/resources/flows-config.yaml index 2ce6386ff..dfc816285 100644 --- a/src/main/resources/flows-config.yaml +++ b/src/main/resources/flows-config.yaml @@ -29,6 +29,7 @@ flow: nextScreens: - name: languagePreference languagePreference: + beforeSaveAction: SetExperimentGroups nextScreens: - name: choosePrograms choosePrograms: @@ -51,9 +52,11 @@ flow: nextScreens: - name: personalInfo personalInfo: + crossFieldValidationAction: ValidateBirthdate nextScreens: - name: homeAddress homeAddress: + crossFieldValidationAction: ValidateHomeAddress nextScreens: - name: noPermanentAddress condition: NoPermanentAddress @@ -61,11 +64,18 @@ flow: noPermanentAddress: nextScreens: - name: contactInfo + mailingAddressNoAddress: + crossFieldValidationAction: ValidateMailingAddress + beforeSaveAction: MailingAddressSetToHomeAddress + nextScreens: + - name: contactInfo mailingAddress: + crossFieldValidationAction: ValidateMailingAddress beforeSaveAction: MailingAddressSetToHomeAddress nextScreens: - name: contactInfo contactInfo: + crossFieldValidationAction: ValidateContactMethod nextScreens: - name: phoneNumberNudge condition: PhoneNumberMissing @@ -85,6 +95,7 @@ flow: nextScreens: - name: householdInfo householdInfo: + crossFieldValidationAction: ValidateHouseholdBirthdate subflow: household nextScreens: - name: householdList @@ -112,6 +123,9 @@ flow: condition: GoingToSchool - name: householdPregnancy householdSchoolWho: + nextScreens: + - name: householdSchoolDetails + householdSchoolDetails: nextScreens: - name: householdPregnancy householdPregnancy: @@ -120,6 +134,9 @@ flow: condition: IsPregnant - name: householdBenefits householdPregnancyWho: + nextScreens: + - name: householdPregnancyDueDate + householdPregnancyDueDate: nextScreens: - name: householdBenefits householdBenefits: @@ -304,6 +321,9 @@ flow: condition: ProgramsIncludeSnap - name: expensesSignPost householdMoneyOnHand: + nextScreens: + - name: householdMoneyOnHandWhich + householdMoneyOnHandWhich: nextScreens: - name: expensesSignPost expensesSignPost: @@ -428,7 +448,7 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesHeating: nextScreens: - name: utilitiesCooling @@ -447,7 +467,7 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesCooling: nextScreens: - name: utilitiesElectricity @@ -464,7 +484,7 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesElectricity: nextScreens: - name: utilitiesWater @@ -479,7 +499,7 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesWater: nextScreens: - name: utilitiesPhone @@ -492,7 +512,7 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesPhone: nextScreens: - name: utilitiesGarbage @@ -503,7 +523,7 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesGarbage: nextScreens: - name: utilitiesSewer @@ -512,20 +532,26 @@ flow: condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesSewer: nextScreens: - name: utilitiesCookingFuel condition: ExpensesIncludeCookingFuel - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesCookingFuel: nextScreens: - name: utilitiesOther condition: ExpensesIncludeOtherUtilities - - name: expensesDependentCare + - name: energyAssistance utilitiesOther: + nextScreens: + - name: energyAssistance + energyAssistance: + nextScreens: + - name: liheap + liheap: nextScreens: - name: expensesDependentCare expensesDependentCare: @@ -534,6 +560,12 @@ flow: condition: HasDependentCareExpenses - name: expensesInsurance expensesDependentCareAmount: + nextScreens: + - name: expensesChildSupport + expensesChildSupport: + nextScreens: + - name: expensesChildSupportAmount + expensesChildSupportAmount: nextScreens: - name: expensesInsurance expensesInsurance: @@ -580,6 +612,9 @@ flow: nextScreens: - name: finalSignPost finalSignPost: + nextScreens: + - name: ebtCard + ebtCard: nextScreens: - name: authorizedRepAuthorization authorizedRepAuthorization: @@ -623,6 +658,7 @@ flow: nextScreens: - name: signature signature: + afterSaveAction: HandleApplicationSigned nextScreens: - name: confirmation confirmation: diff --git a/src/main/resources/known_hosts b/src/main/resources/known_hosts new file mode 100644 index 000000000..c2f4a32c9 --- /dev/null +++ b/src/main/resources/known_hosts @@ -0,0 +1 @@ +sftp.benefitslouisiana.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC0XrPWCtsgKfseRrpqhEPFPYNXrB90ppyVht0vUfySeyqeA+QkvoBbMm+OmBv95IrcqgIT/T/vR23pd6aXxglft5D++gKBHttDPevt3r8X9Z5vVlLjYyVhqV85kcOKgQFtYTCnU5qJXu7JWowSbp+D9W+6MS0Q13otpp9pSiI9PQPq5STq5VyzFeuHeMa9mQ9RLWZ9HvbrwdZGZ44O2yhYNd1c2jsVs5IGv8EtQ2js7B2Vf5GjQmJyi5NyBvpbJlHDzigdF7ODCchh/MO2Wkl8Fy3b8BaNBsQs+u+rahgOiqSrkzxjqQxsf6koJUygGzvsWCcXlxfbTw5PHqRFCQ7CzGdrG3ZW/oUZ2s8zJ0LdJfTTFIxgkBT+Vq91dUUyrJiytdPx7YjL4e0GOA9gpSSjkGAEvGE2EN35GYc1wLx6MgupROMSRavxeORaWWmYbl/BwRmKYmN6Dp7tQIG+nwmrAJGOQhn/EmKBup8iq2Da9krTOunyKp7JgoA5Ahkau0GMrhUqUtxtyaHthEmqvm5RGxkM2hYKsBnx+gEp2QD1MrdourFaNA2Ay3P70/ze2ozLC3uVs8f875pF9JP28BLpzVKSrRKfhOqPfntqg0I+A2k/kmzIugfrRSRwrKECwGxhdo4OAZJ2Nh+PJtQqTAZTGo+ldPYkE1KV1VLSVbcRzw== \ No newline at end of file diff --git a/src/main/resources/messages.properties b/src/main/resources/messages.properties index c9c61bac3..74e86c1d2 100644 --- a/src/main/resources/messages.properties +++ b/src/main/resources/messages.properties @@ -237,6 +237,8 @@ final-confirmation.feedback-submit-feedback=Submit Feedback final-confirmation.feedback-submitted=Thanks for your feedback! It will help improve this website for future applicants. final-confirmation.answer-feedback-question=Make sure you provide a rating + +# Digital Assister # How this works how-this-works.title=How this works how-this-works.header=How this works @@ -268,8 +270,6 @@ timeout-notice.subtext=

To protect your information, your session will timeout language-preference.title=Language preference language-preference.language-to-read-label=What language do you prefer to read or write? language-preference.language-to-read-help=DCFS will do their best to provide documents in your preferred language. -language-preference.language-to-speak-label=What language do you prefer to speak? -language-preference.language-to-speak-help=DCFS will do their best to connect you with someone who speaks your language. language-preference.need-interpreter-label=Do you need a language interpreter? language-preference.need-interpreter-help=DCFS will do their best to connect you with someone who speaks your language, including ASL. language-preference.english=English @@ -311,8 +311,6 @@ whos-applying.title=Who's applying whos-applying.header=Before you get started, we'd like to know how you're using this application. whos-applying.radio1=I'm applying for myself, a family member, someone in my household, and/or a non-family member. whos-applying.radio2=I'm a community partner assisting a client. -whos-applying.radio3=I'm a DCFS employee assisting a customer. -whos-applying.radio4=I'm a CSR assisting a customer. # Applicant Notice applicant-notice.title=Applicant notice @@ -329,7 +327,6 @@ personal-info.lastname-help=Legally as it appears on your ID. If you have 2 last personal-info.othernames=Other names you use now or have used in the past personal-info.othernames-help=List maiden names, legal name changes, and gender preferred names. personal-info.birthdate=When were you born? -personal-info.birthdate-help=Month / Day / Year personal-info.sex=What is your sex? personal-info.sex-help=Legally as it appears on your ID. We regret that this question is limited. personal-info.sex-female=Female @@ -367,6 +364,29 @@ personal-info.date-of-birth.help.month=mm personal-info.date-of-birth.help.day=dd personal-info.date-of-birth.help.year=yyyy +# Home Address +home-address.title=Home Address +home-address.header=Where are you currently living? +home-address.no-permanent-address=I don't have a permanent address +address.street-address-1=What is the street address? +address.street-address-2=What is the unit number? +address.city=What is the city? +address.state=What is the state? +address.zip=What is the zip code? + +# Mailing address +mailing-address.title=Mailing address +mailing-address.header=Where can DCFS send your mail? +mailing-address.same-address=Same as my current living address + +address.subtext=An asterisk (*) indicates a required field. + +where-to-send-mail.title=Where to send mail +where-to-send-mail.header=Do you have a mailing address to receive mail? +where-to-send-mail.subtext=DCFS will need a place to send mail over the next 3 months. This could be a friend or family member\u2019s address or a PO Box. +where-to-send-mail.add-address=Add a mailing address +where-to-send-mail.continue-without=Continue without it + # Contact info contact-info.title=Contact info contact-info.header=How can we send you updates and reminders about your application in the future? @@ -385,6 +405,22 @@ contact-info.text=By Text contact-info.email=By Email contact-info.message-rates=DCFS may send you text and/or email message to communicate with you about your application. They will only text and/or email if a box is checked above. You will be responsible for any message or data charges from your service provider associated with text messaging. You may opt out of and stop receiving text messages at any time by replying with "STOP" to a text message, or following the unsubscribe link on the email message. +# Phone number nudge +phone-number-nudge.title=Phone number nudge +phone-number-nudge.header=Are you sure you don't want to provide your phone number? +phone-number-nudge.p1=A caseworker may need to contact you by phone about your application. If you don't have a phone number, you can enter a friend or family member's phone number instead. +phone-number-nudge.add-phone-number=Add a phone number +phone-number-nudge.skip-phone-number=Continue without it + +# Review contact info +review-contact-info.title=Review contact information +review-contact-info.header=Let's review your info +review-contact-info.name=Name +review-contact-info.mailing-address=Mailing Address +review-contact-info.contact-information=Contact information +review-contact-info.this-looks-correct=This looks correct +review-contact-info.edit=Edit my info + # Shared Household Messages # Multiple person household @@ -397,6 +433,7 @@ multiple-person-household.content.l4=Roommates that you buy and prepare food wit multiple-person-household.no-its-just-me=No, it's just me # Household signpost +household-signpost.title=Household Signpost household-signpost.header=Household info household-signpost.step=Step 2 of 5 household-signpost.everyone-you-live-with=Everyone you live with @@ -480,31 +517,9 @@ ssn-faqs.accordion3.expanded.li4=We may share it with other Federal or State age ssn-faqs.accordion3.expanded.li5=We may give it to law enforcement officials to help them catch people who are running from the law. ssn-faqs.accordion3.expanded.li6=If we give you too much in SNAP benefits, we may give your information to Federal, State, and private collection agencies. This is so they can work with you to pay back the extra benefits. -# Home Address -home-address.title=Home Address -home-address.header=Where are you currently living? -home-address.no-permanent-address=I don't have a permanent address -address.street-address-1=*What is the street address? -address.street-address-2=What is the unit number? -address.city=*What is the city? -address.state=*What is the state? -address.zip=*What is the zip code? - -# Mailing address -mailing-address.title=Mailing address -mailing-address.header=Where can DCFS send your mail? -mailing-address.same-address=Same as my current living address - -address.subtext=An asterisk (*) indicates a required field. - -where-to-send-mail.title=Where to send mail -where-to-send-mail.header=Do you have a mailing address to receive mail? -where-to-send-mail.subtext=DCFS will need a place to send mail over the next 3 months. This could be a friend or family member\u2019s address or a PO Box. -where-to-send-mail.add-address=Add a mailing address -where-to-send-mail.continue-without=Continue without it # Special situations -special-situations.title=Next step +special-situations.title=Household Special Situations special-situations.header=Next, we'll ask about special situations special-situations.p1=We'll see if any special situations apply to your application. special-situations-household.p1=We'll see if there are special situations for any of the people on your application. @@ -516,15 +531,31 @@ school.content.p1=Include anyone who is enrolled at least half of their time in school.content.p2=That would include: school.content.li1=A regular curriculum at a college or university that offers degrees school.content.li2=A business, technical, trade, or vocational school that normally requires a high school diploma or equivalent (GED) + school-who.title=School who school-who.header=Who is going to school? +# School Details +schooldetails.title=School Details +schooldetails.header=We need some additional details. +schooldetails.subheader=An asterisk (*) indicates a required field. +schooldetails.formquestion1=* What is the name of {0} school? +schooldetails.formquestion2=* How often does {0} go to school? +schooldetails.question2-helptext=The number of hours considered as half-time enrollment is determined by the institution of higher education. +schooldetails.fulltime=Full-time +schooldetails.halftime=Half-time + # Pregnancy pregnancy.title=Pregnancy pregnancy.header=Is anyone in your household pregnant? pregnancy-who.title=Pregnancy who pregnancy-who.header=Who is pregnant? +pregnantduedate.title=Pregnancy Due Date +pregnantduedate.header=When is your {0} due date? +pregnantduedate.subheader.=An estimate is ok. +pregnantduedate.helptext=Month / Day / Year + # Out of state benefits out-of-state-benefits.title=Out of state benefits out-of-state-benefits.header=Has anyone in your household received cash assistance or SNAP benefits from another state? @@ -598,13 +629,81 @@ homeless.header=Is anyone in your household currently experiencing homelessness? homeless-who.title=Homelessness who homeless-who.header=Who in your household is currently experiencing homelessness? +# Room rental +household-room-rental.title=Room rental +household-room-rental.header=Does anyone in your household rent a room? +household-room-rental-who.title=Room rental who +household-room-rental-who.header=Who rents a room? -# Phone number nudge -phone-number-nudge.title=Phone number nudge -phone-number-nudge.header=Are you sure you don't want to provide your phone number? -phone-number-nudge.p1=A caseworker may need to contact you by phone about your application. If you don't have a phone number, you can enter a friend or family member's phone number instead. -phone-number-nudge.add-phone-number=Add a phone number -phone-number-nudge.skip-phone-number=Continue without it +# Meals +household-meals.title=Meals +household-meals.header=Does anyone in your household pay for their meals as part of their living arrangements? +household-meals.subtext=

This could include:

  • Someone who pays monthly for room and board
  • Someone who receives at least 1 meal as part of rent
  • Someone who receives more than half their meals from an organization

+household-meals-who.title=Meals who +household-meals-who.header=Who pays for meals as part of their living arrangements? + + +#Sensitive Questions +sensitive-questions.title=Sensitive Questions +sensitive-questions.header=Next, we have questions about situations that make it hard to work. +sensitive-questions.subheader=We're sorry that we're asking about these sensitive subjects. Sharing information about any barriers to working will give you the best chance of getting benefits. + +personal-situations.title=Personal Situations +personal-situations.header=Do any of these personal situations that make it hard to work apply to anyone in your household? +personal-situations.subheader=This could be something that keeps them from working at all, or limits the amount they can work. +personal-situations.content.l1=Being homeless +personal-situations.content.l2=Struggling with drugs or alcohol +personal-situations.content.l3=Experiencing domestic abuse +personal-situations.content.l4=A physical, mental, or other personal issue or disability + +personal-situations-who.title=Personal Situations Who +personal-situations-who.header=Who has a personal situation that makes it hard to work? + +personal-situations-which.title=Which Personal Situations +personal-situations-which.subheader=Which personal situations apply to {0}? +personal-situations.which.option1=Being homeless +personal-situations.which.option2=Struggling with drugs or alcohol +personal-situations.which.option3=Experiencing domestic abuses +personal-situations.which.option4=A physical, mental, or other personal issue or disability +personal-situations.which.option5=Other reason + +domestic-violence.title=Domestic Violence Victim +domestic-violence.header=Does anyone in your household need to get away from an abusive situation? +domestic-violence.subheader=If you are a victim of domestic violence or fear for your safety, call the Louisiana Domestic Violence hotline at 1-888-411-1333 for free, confidential 24-hour assistance. + +criminal-justice-warning.title=Criminal Justice Involvement Warning +criminal-justice-warning.header=Next, we have questions about involvement with the criminal justice system. +criminal-justice-warning.subheader=We're sorry to ask about these sensitive subjects. This information is required to help determine eligibility for benefits. + +criminal-justice.title=Criminal Justice +criminal-justice.header=Do any of these situations apply to anyone in your household? +criminal-justice-content.l1=Have been convicted of breaking rules for SNAP, cash aid, or SSI programs +criminal-justice-content.l2=Have been convicted of a felony +criminal-justice-content.l3=Currently on probation or parole + +# Income + +# Income signpost +income-signpost.title=Income Signpost +income-signpost.step=Step 3 of 5 +income-signpost.header=Income & Employment +income-signpost.current-jobs=Current jobs +income-signpost.additional-income=Additional income +income-signpost.money-on-hand=Money on hand + +# Job search +job-search.title=Job search +job-search.header=Is anyone in your household currently looking for a job? + +# Job search who +job-search-who.title = Job search who +job-search-who.header=Who in your household is looking for a job? + +# Work disqualifications +work-disqualifications.title=Work disqualifications +work-disqualifications.header=In the last 2 months, did anyone in your household do any of these things? +work-disqualifications.subtext=

  • Stop working
  • Quit a job
  • Refuse a job offer
  • Ask to work fewer hours
  • Go on strike
  • +
# Employment income questions employment-status.title=Employment status @@ -629,7 +728,7 @@ income-by-job.header=Let's add up your monthly household income income-by-job.subheader=Include all money from jobs, gifts, loans, and cash benefits like Social Security, disability, retirement or pensions, and unemployment. income-by-job.enter-directly=I already know my monthly household pre-tax income - I prefer to enter it directly. -# Household annual income +# Household monthly income household-annual-income.title=Monthly household income household-annual-income.header=What's your household's monthly pre-tax income? household-annual-income.subheader=Provide income before taxes. We know this can be hard to calculate. If you don't know the exact amount, just estimate. @@ -662,85 +761,6 @@ job-paid-by-hour-self.header=Do you get paid by the hour? job-paid-by-hour-househould.header=Does {0} get paid by the hour? job-paid-by-hour.link=I don't know these details -# Room rental -household-room-rental.title=Room rental -household-room-rental.header=Does anyone in your household rent a room? -household-room-rental-who.title=Room rental who -household-room-rental-who.header=Who rents a room? - -# Meals -household-meals.title=Meals -household-meals.header=Does anyone in your household pay for their meals as part of their living arrangements? -household-meals.subtext=

This could include:

  • Someone who pays monthly for room and board
  • Someone who receives at least 1 meal as part of rent
  • Someone who receives more than half their meals from an organization

-household-meals-who.title=Meals who -household-meals-who.header=Who pays for meals as part of their living arrangements? - -# Review contact info -review-contact-info.title=Review contact information -review-contact-info.header=Let's review your info -review-contact-info.name=Name -review-contact-info.mailing-address=Mailing Address -review-contact-info.contact-information=Contact information -review-contact-info.this-looks-correct=This looks correct -review-contact-info.edit=Edit my info - -# Income signpost -income-signpost.step=Step 3 of 5 -income-signpost.header=Income & Employment -income-signpost.current-jobs=Current jobs -income-signpost.additional-income=Additional income -income-signpost.money-on-hand=Money on hand - -# Job search -job-search.title=Job search -job-search.header=Is anyone in your household currently looking for a job? - -# Job search who -job-search-who.title = Job search who -job-search-who.header=Who in your household is looking for a job? - -# Work disqualifications -work-disqualifications.title=Work disqualifications -work-disqualifications.header=In the last 2 months, did anyone in your household do any of these things? -work-disqualifications.subtext=

  • Stop working
  • Quit a job
  • Refuse a job offer
  • Ask to work fewer hours
  • Go on strike
  • -
- -#Sensitive Questions -sensitive-questions.title=Sensitive Questions -sensitive-questions.header=Next, we have questions about situations that make it hard to work. -sensitive-questions.subheader=We're sorry that we're asking about these sensitive subjects. Sharing information about any barriers to working will give you the best chance of getting benefits. -personal-situations.title=Personal Situations -personal-situations.header=Do any of these personal situations that make it hard to work apply to anyone in your household? -personal-situations.subheader=This could be something that keeps them from working at all, or limits the amount they can work. -personal-situations.content.l1=Being homeless -personal-situations.content.l2=Struggling with drugs or alcohol -personal-situations.content.l3=Experiencing domestic abuse -personal-situations.content.l4=A physical, mental, or other personal issue or disability - -personal-situations-who.title=Personal Situations Who -personal-situations-who.header=Who has a personal situation that makes it hard to work? - -personal-situations-which.title=Which Personal Situations -personal-situations-which.subheader=Which personal situations apply to {0}? -personal-situations.which.option1=Being homeless -personal-situations.which.option2=Struggling with drugs or alcohol -personal-situations.which.option3=Experiencing domestic abuses -personal-situations.which.option4=A physical, mental, or other personal issue or disability -personal-situations.which.option5=Other reason - -domestic-violence.title=Domestic Violence Victim -domestic-violence.header=Does anyone in your household need to get away from an abusive situation? -domestic-violence.subheader=If you are a victim of domestic violence or fear for your safety, call the Louisiana Domestic Violence hotline at 1-888-411-1333 for free, confidential 24-hour assistance. - -criminal-justice-warning.title=Criminal Justice Involvement Warning -criminal-justice-warning.header=Next, we have questions about involvement with the criminal justice system. -criminal-justice-warning.subheader=We're sorry to ask about these sensitive subjects. This information is required to help determine eligibility for benefits. - -criminal-justice.title=Criminal Justice -criminal-justice.header=Do any of these situations apply to anyone in your household? -criminal-justice-content.l1=Have been convicted of breaking rules for SNAP, cash aid, or SSI programs -criminal-justice-content.l2=Have been convicted of a felony -criminal-justice-content.l3=Currently on probation or parole job-hourly-wage.title=Hourly wage job-hourly-wage.header=What is {0} hourly wage? @@ -751,6 +771,10 @@ job-hours-per-week-household.header=How many hours a week does {0} work? job-hours-per-week-household.subtext=We know this can be hard to answer, so just estimate based on {0}'s work over the last 30 days. job-hours-per-week-self.subtext=We know this can be hard to answer, so just estimate based on your work over the last 30 days. +income-confirmation.title=Income confirmation +income-confirmation.header=Got it! You're almost done with the income section. +income-confirmation.subtext=Do you want to add another job for your household? + job-pay-period.title=Pay period job-pay-period-self.header=How often do you get paid? job-pay-period-household.header=How often does {0} get paid? @@ -765,29 +789,8 @@ job-pay-amount.fixed.header=How much money does this job pay {0}? job-pay-amount.variable.header=How much has this job paid in the last 30 days? job-pay-amount.subtext=Provide income before taxes. We know this can be hard to calculate. If you don?t know the exact amount, just estimate. -income-confirmation.title=Income confirmation -income-confirmation.header=Got it! You're almost done with the income section. -income-confirmation.subtext=Do you want to add another job for your household? - income-list.title=Income list income-list.header=Great! Any other jobs in the household to add? - -# Income -additional-income.title=Additional income -additional-income.header=Does anyone in the household get income from any of these sources? -additional-income.subtext=Check all that apply. You do not need to report income that hasn't been received yet. -additional-income.choice1=Supplemental Security Income (SSI) -additional-income.choice2=Social Security -additional-income.choice3=Unemployment -additional-income.choice4=Worker's Compensation -additional-income.choice5=Child support -additional-income.choice6=Veteran's Benefits -additional-income.choice7=Contributions from friends and family - -money-on-hand.title=Money on hand -money-on-hand.header=How much money do the people on your application have on hand? -money-on-hand.subtext=

This includes any cash or money in checking or savings accounts.

This won't affect your benefit amount. It's only used to see if you qualify for expedited service.

Type '0' if you don't have any.

- income-list.subtext=We need self-employment, freelance, contract, full and part-time work for everyone, including students. income-list.monthly-income=Your monthly household income income-list.continue=I'm done adding jobs @@ -809,6 +812,40 @@ household-income-total.add-by-job=Do you want to add your monthly household inco household-income-total.no=No, continue household-income-total.yes=Yes, add income by job +additional-income.title=Additional income +additional-income.header=Does anyone in the household get income from any of these sources? +additional-income.subtext=Check all that apply. You do not need to report income that hasn't been received yet. +additional-income.choice1=Supplemental Security Income (SSI) +additional-income.choice2=Social Security +additional-income.choice3=Unemployment +additional-income.choice4=Worker's Compensation +additional-income.choice5=Child support +additional-income.choice6=Veteran's Benefits +additional-income.choice7=Contributions from friends and family + +money-on-hand.title=Money on hand +money-on-hand.header=How much money do the people on your application have on hand? +money-on-hand.subtext=

This includes any cash or money in checking or savings accounts.

This won't affect your benefit amount. It's only used to see if you qualify for expedited service.

Type '0' if you don't have any.

+ +moneyonhand-types.title=Money On Hand Types +moneyonhand-types.header=What money do the people on your application have on hand? +moneyonhand-types.subheader=Check all that apply.
This won't affect your benefit amount. It's only used to see if you qualify for expedited service. +moneyonhand-types.option1=Checking account +moneyonhand-types.option2=Savings account +moneyonhand-types.option3=Joint account +moneyonhand-types.option4=Bonds +moneyonhand-types.option5=Cash on hand +moneyonhand-types.option6=Certificate of Deposit (CD) +moneyonhand-types.option7=Money Market Account +moneyonhand-types.option8=Mutual funds +moneyonhand-types.option9=Savings bond +moneyonhand-types.option10=Stocks + +moneyonhand-which.title=Money On Hand - Which +moneyonhand-which.header={0} details +moneyonhand-which.q1=Who is the money listed under? +moneyonhand-which.q2=How much is it worth? + # Expenses expenses-signpost.title=Expenses Signpost expenses-signpost.step=Step 4 of 5 @@ -840,6 +877,13 @@ utilities.sewer=Sewer utilities.cooking-fuel=Cooking Fuel utilities.other=Other +#LIHEAP +energy-assistance-title=Energy Assitance +energy-assistance-header=Do you receive energy assistance? + +liheap-title=LIHEAP +liheap-header=Is the assistance through LIHEAP (Low-Income Home Energy Assistance Program)? + home-expenses.question=How much is the household billed for {0} every month? home-expenses.question.other=How much is the household billed for other home expenses every month? utilities-expenses.question.other=How much is the household billed for other utilities every month? @@ -853,6 +897,13 @@ dependentcare-expenses.title=Dependent Care Amount dependentcare-expenses.header=How much do the people on your application pay for child or dependent care every month? dependentcare-expenses.subheader=

If you live with roommates who aren't applying with you, only include how much the people on your application pay.

Type '0' if you don't have any.

+# Child Support +childsupportexpenses-title=Child Support Expenses +childsupportexpenses-header=Does anyone in your household pay court-ordered child support? +childsupportexpenses-amount-title=Child Support Expenses Amount +childsupportexpenses-amount-header=How much do the people on your application pay for court-ordered child support every month? +childsupportexpenses-amount-subheader=If you live with roommates who aren't applying with you, only include how much the people on your application pay.
Type '0' if you don't pay anything. + insurance-expenses.title=Insurance Expenses insurance-expenses.header=Does anyone in your household pay for health insurance or other medical expenses? insurance-expenses.subheader=Let us know if you are paying out-of-pocket for any of these medical expenses. @@ -884,6 +935,11 @@ final-signpost.content-2=Registering to vote final-signpost.content-3=Race and ethnicity final-signpost.content-4=Agreeing to terms +#EBT +ebtcard-title=EBT Card +ebtcard-header=Do you need a new EBT card? +ebtcard-subheader=You can use your EBT (Electronic Benefits Transfer) card to pay for groceries if you?re approved for SNAP. + authorized-rep.title=Authorized Representative authorized-rep.header=Do you want to assign someone to be your authorized representative? authorized-rep.subheader=This person can help you with your benefits or act on your behalf. @@ -953,13 +1009,13 @@ race-ethnicity-ask.no=No, skip this question ethnicity-selection.title=Ethnicity Selection ethnicity-selection.header=What ethnicity do you identify with? -ethnicity-selection.subheader=Select one. +ethnicity-selection.subheader=Optional. Select one. ethnicity-selection.option1=Hispanic or Latino ethnicity-selection.option2=Not Hispanic or Latino race-selection.title=Race Selection race-selection.header=What races do you identify with? -race-selection.subheader=Check all that apply. +race-selection.subheader=Optional. Check all that apply. race-selection.option1=American Indian or Alaskan Native race-selection.option2=Asian race-selection.option3=Black or African American @@ -1000,7 +1056,6 @@ confirmation.p2_html=Within the next 30 days, expect to get a letter in the m confirmation.p3=Call LAHelpU at (888) 524-3578 if you have any questions about your online application. confirmation-feedback.how-easy=How easy or difficult was it to complete the online application form using this website? (Optional) - # WIC/ECE - these are placeholders for translations, feel free to change the key names looking-for-assistance=Looking for assistance with other programs? already-started=Already started your application? @@ -1058,4 +1113,21 @@ open-wic-button=Open the WIC application you-might-qualify-wic=You might qualify for Women, Infant, and Children (WIC) go-to-wic-button=Go to the WIC application reveal-content-3=Women, Infants, and Children (WIC) helps people pay for groceries, and gives nutrition education for pregnant women, women who were pregnant in the last 6 months, infants and children up to 5 years old. -reveal-content-4=Early Learning and Childcare (ECE) helps young children and their parents get education and childcare. ECE includes Head Start and Early Head Start programs for children under the age of 5 and pregnant women. \ No newline at end of file +reveal-content-4=Early Learning and Childcare (ECE) helps young children and their parents get education and childcare. ECE includes Head Start and Early Head Start programs for children under the age of 5 and pregnant women. + +error.missing-firstname=Make sure to provide a first name. +error.missing-lastname=Make sure to provide a last name. +error.missing-general=Make sure you answer this question. +error.format-dob=Make sure to provide a date in MM/DD/YYYY OR M/D/YYYY. +error.invalid-dob=Make sure to provide a valid date. +error.format-zip=Make sure to enter a zip code with 5 digits. +error.invalid-email=Make sure to provide a valid email address. +error.invalid-phone=Make sure to provide a 9 digit phone number. +error.missing-address=Make sure to provide a home address or select 'I don't have a permanent address'. +error.invalid-range=Make sure to provide a value between {min} and {max}. +error.invalid-money=Please make sure to enter a valid dollar amount. Example: 1.50. +error.missing-pay-period=Select a pay period. +error.missing-income=Be sure to provide your job income before taxes. +error.missing-dollar-amount=Make sure to provide a dollar amount. +error.invalid-ssn=Make sure the SSN has 9 digits. + diff --git a/src/main/resources/messages_es.properties b/src/main/resources/messages_es.properties index 562cf2d18..86880951d 100644 --- a/src/main/resources/messages_es.properties +++ b/src/main/resources/messages_es.properties @@ -1,16 +1,23 @@ # Overrides general.inputs.continue=Continuar general.go-back=Volver +general.back=Anterior +general.inputs.yes=Sí +general.inputs.no=No general.files.add-your-files=Agregar archivos general.files.file-added.one=1 archivo agregado ({0} máximo) general.files.file-added.other={0} archivos agregados ({1} máximo) general.files.confirm-delete=Va eliminar su archivo llamado {0}. żEstá bien? general.missing-info=Algo salió mal. Por favor vuelva a ingresar su información. general.files.uploaded-documents=Documentos subidos +general.edit=Editar general.delete=Borrar general.cancel=Cancelar general.remove=Eliminar general.optional=Opcional. +general.check-all-that-apply=Seleccione todas las opciones que correspondan. +general.you=(Usted) +general.none-of-the-above=Ninguna de las anteriores error.error=Error. error.uh-oh=Oh oh! error.we-are-sorry=Lo sentimos, pero hubo un error. Por favor inténtelo más tarde. @@ -225,6 +232,830 @@ final-confirmation.feedback-input.o3=Ni f final-confirmation.feedback-input.o4=Difícil final-confirmation.feedback-input.o5=Muy difícil final-confirmation.additional-comments=Comentarios adicionales (Opcional) +final-confirmation.additional-comments-note=Nota: No podemos compartir los comentarios con su trabajador social. final-confirmation.feedback-submit-feedback=Enviar Comentarios final-confirmation.feedback-submitted=Gracias por sus comentarios! Esto nos ayudara a mejorar este sitio . final-confirmation.answer-feedback-question=Asegure de seleccionar una respuesta + +# How this works +how-this-works.title=Cómo funciona +how-this-works.header=Cómo funciona +how-this-works.subtext=Completar el presente formulario de solicitud debería tomarle menos de 20 minutos. +how-this-works.we-will-ask=Le solicitaremos que proporcione los siguientes datos: +how-this-works.we-will-ask-l1=Información personal +how-this-works.we-will-ask-l2=Personas que viven con usted +how-this-works.we-will-ask-l3=Ingresos +how-this-works.we-will-ask-l4=Gastos +how-this-works.submitting-an-incomplete-app=Presentar una solicitud incompleta (SNAP únicamente) +how-this-works.submitting-an-incomplete-app-l1=Si la solicitud corresponde al Programa de Asistencia Nutricional Complementaria (Supplemental Nutrition Assistance Program, SNAP), puede presentarla sin completar todos los campos; solo debe escribir su nombre, domicilio y firma. +how-this-works.submitting-an-incomplete-app-l2=Si decide presentar una solicitud incompleta, es posible que dicho documento tarde más en procesarse y que requiera una mayor comunicación con el Departamento de Servicios para Nińos y Familias (Department of Children and Family Services, DCFS). +how-this-works.adding-documents=Adjuntar documentos +how-this-works.adding-documents-l1=Al final de esta solicitud, tendrá la posibilidad de adjuntar documentos, como una identificación con foto, comprobantes de pago o facturas médicas. +how-this-works.adding-documents-l2=Puede usar su teléfono para tomar fotos de los documentos en papel o seleccionar un archivo de su dispositivo. +how-this-works.adding-documents-l3=Además, siempre puede volver a nuestra página de inicio para agregar documentos más adelante. +how-this-works.after-you-submit=Después de presentar la solicitud +how-this-works.after-you-submit-l1=La fecha de entrega de su solicitud corresponderá a la primera fecha en la que puede comenzar a recibir los beneficios. Si presenta la solicitud después de las 4:30 p. m. (hora central), durante el fin de semana o en días festivos, la fecha de su solicitud será el siguiente día hábil. +how-this-works.after-you-submit-l2=Algunas personas también deben crear, o tener activa, una cuenta HiRE de la Comisión de la Fuerza Laboral de Luisiana para recibir los beneficios del SNAP. Le haremos saber si creemos que alguna de las personas que figuran en la solicitud debe crear una cuenta HiRE. +how-this-works.after-you-submit-l3=La mayoría de los programas para los que se utiliza esta solicitud requieren una entrevista posterior a su presentación. Una vez que haya enviado la solicitud, tendrá acceso a un número de teléfono al que debe llamar para programar una entrevista. +how-this-works.your-information-is-secure=Su información permanecerá segura y se manipulará de conformidad con nuestra política de privacidad. + +# Timeout Notice +timeout-notice.title=Aviso de límite de tiempo +timeout-notice.header=Después de una hora de inactividad, sus datos se eliminarán. +timeout-notice.subtext=

A fin de proteger su información, su sesión se cerrará si deja la solicitud por una hora o más.

No puede guardar la solicitud y volver más tarde.

+ +# Language preferences +language-preference.title=Preferencia de idioma +language-preference.language-to-read-label=żEn qué idioma prefiere leer o escribir? +language-preference.language-to-read-help=El DCFS hará todo lo que esté a su alcance para brindarle los documentos en su idioma de preferencia. +language-preference.language-to-speak-label=żEn qué idioma prefiere hablar? +language-preference.language-to-speak-help=El DCFS hará todo lo que esté a su alcance para ponerlo en contacto con alguien que hable su idioma. +language-preference.need-interpreter-label=żNecesita un intérprete? +language-preference.need-interpreter-help=El DCFS hará todo lo que esté a su alcance para ponerlo en contacto con alguien que hable su idioma, incluida la lengua de seńas estadounidense. +language-preference.english=English +language-preference.spanish=Espańol +language-preference.vietnamese=Vietnamita + +# Choose programs +choose-programs.title=Elegir los programas +choose-programs.header=żQué tipo de ayuda le gustaría solicitar? +choose-programs.snap=Alimentos (SNAP) +choose-programs.snap-help=Dinero para comprar alimentos para usted y su familia. +choose-programs.cash=Ayuda de dinero en efectivo (FITAP o KCSP) +choose-programs.cash-help=El Programa de Asistencia Temporal para la Independencia Familiar (Family Independence Temporary Assistance Program, FITAP) ofrece una ayuda en efectivo a las personas para que puedan satisfacer sus necesidades básicas hasta que puedan mantenerse por sí mismas.

El Programa de Subsidios para el Cuidado de Familiares (Kinship Care Subsidy Program, KCSP) ofrece una ayuda de dinero en efectivo a los familiares que se responsabilizan de nińos que no pueden vivir con sus padres. +choose-programs.note=

Nota: Su trabajador social determinará si cumple los requisitos de elegibilidad de uno o ambos programas de ayuda en efectivo.

Si es elegible para ambos programas, su trabajador le explicará las diferencias para que pueda elegir entre ellos.

+choose-programs.snap-only=

Nota: Actualmente, esta solicitud solo está disponible para los beneficios del SNAP. Si necesita ayuda con otros programas, ingrese a LA CAFÉ para obtener más información.

+ +# Expedited SNAP +expedited-snap.title=Aviso de asignación inmediata +expedited-snap.header=En caso de ser elegible, puede acceder a un programa de alimentos (SNAP) inmediato en un plazo de siete días o menos. +expedited-snap.what-is=żQué es el SNAP inmediato? +expedited-snap.what-is.content=El SNAP inmediato es aquel que le permite obtener beneficios alimentarios con mayor rapidez. Las personas que califican para este programa obtienen su tarjeta de transferencia electrónica de beneficios (Electronic Benefit Transfer, EBT) en siete días o menos. +expedited-snap.who-qualifies=żQuién califica para recibir un SNAP inmediato? +expedited-snap.who-qualifies.content=Es posible que califique para el SNAP inmediato si cumple con alguno de los siguientes requisitos: +expedited-snap.who-qualifies.li1=Su ingreso mensual es menor a $150 y tiene menos de $100 en ahorros personales, cuentas bancarias o dinero en efectivo en mano. +expedited-snap.who-qualifies.li2=El monto que paga por el alquiler o la hipoteca y los servicios públicos es mayor a sus ingresos y ahorros. +expedited-snap.who-qualifies.li3=Es un trabajador agrícola de temporada o migrante y tiene menos de $100 en ahorros personales, cuentas bancarias o dinero en efectivo en mano. + +# Signpost +signpost.step=Paso 1 de 5 +signpost.title=Indicador +signpost.header=Información básica +signpost.well-ask-about=Le solicitaremos que proporcione los siguientes datos: +signpost.your-personal-info=Información personal +signpost.current-living-address=Domicilio actual +signpost.mailing-address=Dirección de correo postal + +# Who's Applying +whos-applying.title=Quién es el solicitante +whos-applying.header=Antes de comenzar, nos gustaría saber con qué fin presenta la solicitud. +whos-applying.radio1=Estoy solicitando los beneficios para mí, un familiar, un miembro de mi hogar o una persona que no es parte de la familia. +whos-applying.radio2=Soy un socio comunitario que le brinda ayuda a un cliente. +whos-applying.radio3=Soy un empleado del DCFS que le brinda ayuda a un cliente. +whos-applying.radio4=Soy un representante de Atención al Cliente (Customer Service Representative, CSR) que le brinda ayuda a un cliente. + +# Applicant Notice +applicant-notice.title=Aviso para el solicitante +applicant-notice.header=Nota sobre la información que debe adjuntar. +applicant-notice.content=Dado que indicó que presenta la solicitud en nombre de otra persona, asegúrese de completar las siguientes pantallas con los datos del solicitante real, y no con los suyos. + +# Personal info +personal-info.title=Información personal +personal-info.header=Cuéntenos sobre usted +personal-info.firstname=żCuál es su primer nombre? +personal-info.firstname-help=Legalmente, tal y como figura en su identificación +personal-info.lastname=żCuál es su apellido? +personal-info.lastname-help=Legalmente, tal y como figura en su identificación. Si tiene dos apellidos, escríbalos exactamente como aparecen en su identificación (por ejemplo, con guiones o dos palabras separadas). +personal-info.othernames=Otros nombres que use actualmente o haya usado en el pasado +personal-info.othernames-help=Enumere los apellidos de soltera, los cambios legales de nombre y los nombres de género preferidos. +personal-info.birthdate=żCuál es su fecha de nacimiento? +personal-info.birthdate-help=Mes/día/ańo +personal-info.sex=żCuál es su sexo? +personal-info.sex-help=Legalmente, tal y como figura en su identificación. Lamentamos que las respuestas sean limitadas. +personal-info.sex-female=Femenino +personal-info.sex-male=Masculino +personal-info.marital-status=żCuál es su estado civil? +personal-info.marital-status-help=Opcional. +personal-info.never-married=Nunca me casé +personal-info.married-living-with-spouse=Casado. Actualmente vivo con mi cónyuge +personal-info.married-not-living-with-spouse=Casado. No vivo con mi cónyuge +personal-info.legally-separated=Separado legalmente +personal-info.divorced=Divorciado +personal-info.widowed=Viudo +personal-info.highest-education=żCuál es su máximo nivel educativo? +personal-info.highest-education-help=Opcional. +personal-info.select-education=Seleccione un nivel educativo. +personal-info.first-grade=Primer grado +personal-info.second-grade=Segundo grado +personal-info.third-grade=Tercer grado +personal-info.fourth-grade=Cuarto grado +personal-info.fifth-grade=Quinto grado +personal-info.sixth-grade=Sexto grado +personal-info.seventh-grade=Séptimo grado +personal-info.eighth-grade=Octavo grado +personal-info.ninth-grade=Noveno grado +personal-info.tenth-grade=Décimo grado +personal-info.eleventh-grade=Decimoprimer grado +personal-info.high-school-or-equivalent=Secundaria o diploma equivalente de desarrollo educativo general (General Educational Development, GED) +personal-info.associates-degree=Título de educación superior (dos ańos) +personal-info.bachelors-degree=Licenciatura +personal-info.graduate-degree=Título de posgrado o maestría +personal-info.certificate-or-diploma=Otro certificado o diploma +personal-info.no-formal-education=No recibí educación formal +personal-info.not-sure=No estoy seguro +personal-info.date-of-birth.help.month=mm +personal-info.date-of-birth.help.day=dd +personal-info.date-of-birth.help.year=aaaa + +# Contact info +contact-info.title=Información de contacto +contact-info.header=żCómo podemos hacerle llegar actualizaciones y recordatorios sobre su solicitud en el futuro? +contact-info.phone-number=żCuál es su número de teléfono? +contact-info.phone-number.help=Opcional. Su trabajador social puede utilizar este número para comunicarse con usted directamente. Si no agrega ningún número de teléfono, es posible que el servicio sea más lento. +contact-info.deaf-or-hoh=żSe identifica como una persona sorda o con problemas de audición? +contact-info.deaf-contact-preference=En caso de ser sordo o tener problemas de audición, żqué método de contacto prefiere que utilicemos? +contact-info.deaf-contact-preference.placeholder=Seleccione su método de contacto. +contact-info.deaf-contact-preference.option1=Servicio de retransmisión +contact-info.deaf-contact-preference.option2=Teletipo (Teletypewriter, TTY) +contact-info.email-address=żCuál es su dirección de correo electrónico? +contact-info.email-address.help=Opcional. +contact-info.email-address.check-all-that-apply=Opcional. Seleccione todas las opciones que correspondan. +contact-info.reminders=żCómo podemos hacerle llegar actualizaciones y recordatorios sobre su solicitud en el futuro? +contact-info.text=Mensaje de texto +contact-info.email=Correo electrónico +contact-info.message-rates=Es posible que el DCFS se comunique con usted respecto de su solicitud por mensaje de texto o correo electrónico. Esto sucederá únicamente si una de las casillas a continuación está seleccionada. Los costos de su proveedor de servicios por los mensajes y datos relacionados con los mensajes de texto serán su responsabilidad. Puede darse de baja y dejar de recibir dichos mensajes en cualquier momento; para hacerlo, conteste \u201cSTOP\u201d (baja) a alguno de los mensajes de texto o ingrese al enlace que aparece en el correo electrónico para cancelar su suscripción. + +# Shared Household Messages + +# Multiple person household +multiple-person-household.title=Hogar multipersonal +multiple-person-household.header=żVive con alguna de las siguientes personas? +multiple-person-household.content.l1=Sus hijos +multiple-person-household.content.l2=Familiares +multiple-person-household.content.l3=Pareja de hecho con la que tiene hijos +multiple-person-household.content.l4=Compańeros de habitación con los que compra y prepara comidas +multiple-person-household.no-its-just-me=No, vivo solo + +# Household signpost +household-signpost.header=Información del hogar +household-signpost.step=Paso 2 de 5 +household-signpost.everyone-you-live-with=Todas las personas con las que vive +household-signpost.special-situations=Situaciones especiales + +# Household info +household-info.title=Información de su compańero de vivienda +household-info.header=Agregue a una persona que viva con usted +household-info.first-name-question=żCuál es su nombre? +household-info.last-name-question=żCuál es su apellido? +household-info.name-help=Legalmente, tal y como figura en su identificación +household-info.other-names-question=Otros nombres que use actualmente o haya usado en el pasado +household-info.other-names-help=Opcional. Enumere los apellidos de soltera, los cambios legales de nombre y los nombres de género preferidos. +household-info.relationship-question=żQué relación tiene con usted? +household-info.relationship-placeholder=Seleccione su relación. +household-info.relationship.child=Mi hijo/a +household-info.relationship.step-child=Mi hijastro/a +household-info.relationship.spouse=Mi cónyuge (esposo/a) +household-info.relationship.partner=Mi pareja (novio/a) +household-info.relationship.sibling=Mi hermano/a +household-info.relationship.step-sibling=Mi hermanastro/a +household-info.relationship.half-sibling=Mi mediohermano/a +household-info.relationship.parent=Mi padre/madre o tutor +household-info.relationship.grandparent=Mi abuelo/a +household-info.relationship.childs-parent=El padre/la madre de mi hijo/a +household-info.relationship.aunt-or-uncle=Mi tío/a +household-info.relationship.niece-or-nephew=Mi sobrino/a +household-info.relationship.roommate=Mi compańero/a de habitación +household-info.relationship.friend=Mi amigo/a +household-info.relationship.grandchild=Mi nieto/a +household-info.relationship.other=Otro +household-info.birthday-question=żCuál es su fecha de nacimiento? +household-info.sex=żCuál es su sexo? +household-info.sex-helper=Legalmente, tal y como figura en su identificación. Lamentamos que esta respuesta sea limitada. +household-info.marital-status=żCuál es su estado civil? +household-info.education=żCuál es su máximo nivel educativo? + + +# Household list +household-list.title=Miembros del hogar +household-list.header=żEstas son todas las personas que viven con usted? +household-list.subheader=Incluya a los nińos y todas las personas que vivan con usted, incluso si no están allí en todo momento. +household-list.learn-more=Obtenga más información sobre a quiénes debe agregar. +household-list.learn-more-l1=Los familiares con los que vive: si vive con ellos, debe incluir a los nińos menores de 22 ańos, los cónyuges y los padres. +household-list.learn-more-l2=Compańeros de habitación: no incluya a sus compańeros de habitación. +household-list.learn-more-l3=Personas con discapacidad o mayores de 60 ańos: las personas que tengan alguna discapacidad o sean mayores de 60 ańos y vivan con otras personas pueden presentar una solicitud por separado. +household-list.learn-more-l4=Inmigrantes: cualquier inmigrante puede darse de baja y no se le preguntará sobre su estatus de inmigración. Aun así, deben incluirse en esta solicitud. +household-list.learn-more-l5=Separación o divorcio: en casos de separación o divorcio, solo incluya a la otra persona si vive con usted. Los nińos no pueden ser parte de varios casos a la vez. +household-list.learn-more-l6=Embarazadas: no incluya a los nińos por nacer en el formulario. +household-list.your-household=Su hogar +household-list.thats-you=(ˇEse es usted!) +household-list.add=Agregar a otra persona +household-list.continue=Sí, son todas las personas que viven conmigo. + +# Household delete confirmation +household-member-delete.title=Confirmación de que desea eliminar un miembro del hogar. +household-member-delete.header=żEstá seguro que desea eliminar a {0} de su hogar? + + +# SSN form +ssn-form.title=SSN +ssn-form.header=Número de Seguridad Social (SSN) +ssn-form.subheader=Si usted o un miembro de su hogar tiene un Número de Seguridad Social (Social Security Numbers, SSN), le recomendamos encarecidamente que lo incluya. No es necesario agregar el SSN de las personas que no sean ciudadanas o aquellas que no soliciten los beneficios. Obtenga información sobre los motivos por los que solicitamos el SSN. +ssn-form.ssn-question=żCuál es su ({0}) Número de Seguridad Social? +ssn-form-household.ssn-question=żCuál es el Número de Seguridad Social de {0}? +ssn-form.note=

Nota: Si no tiene un Número de Seguridad Social, pero se determina que es elegible para recibir los beneficios del SNAP, su trabajador social le asignará un SSN ficticio.

Pregúntele a su trabajador social sobre su SSN ficticio durante su entrevista para contar con esa información.

+ +# SSN faqs +ssn-faqs.title=Preguntas frecuentes sobre el SSN +ssn-faqs.header=żPor qué solicitamos un Número de Seguridad Social (SSN)? +ssn-faqs.accordion1=żDebo proporcionar mi SSN y el de todas las personas que viven conmigo? +ssn-faqs.accordion2=żPor qué necesito un SSN? +ssn-faqs.accordion3=żQué harán con mi SSN y el resto de la información que les brindo? +ssn-faqs.accordion1.expanded=Solo los integrantes de su hogar que deseen recibir beneficios del SNAP deben proporcionar su SSN. Si no recuerda su SSN o alguno de los miembros de su hogar aún no lo tiene, puede dejarlo en blanco por el momento. Antes de que decidamos si es elegible para recibir el SNAP, todos los miembros de su hogar deben proporcionar su SSN o una justificación válida por la que no cuentan con uno. +ssn-faqs.accordion2.expanded=La ley exige que todas las personas que reciben los beneficios del SNAP tengan un SSN o una justificación válida por la que no cuentan con uno (por ejemplo, ser recién nacido). El nombre de la ley que nos autoriza a solicitar el SSN es la Ley de Nutrición y Alimentación de 2008 (Food and Nutrition Act of 2008), y sus modificaciones posteriores, Título 7 del Código de los Estados Unidos (United States Code, USC), 2011-2036. +ssn-faqs.accordion3.expanded=Utilizaremos la información, incluido el SSN, que nos proporcionó de la siguiente manera: +ssn-faqs.accordion3.expanded.li1=No utilizaremos su información de Seguridad Social para cooperar con el Servicio de Inmigración y Control de Aduanas de los Estados Unidos (Immigration Customs Enforcement, ICE). Su participación en el SNAP no interferirá con su solicitud de la tarjeta de residencia permanente (Green Card) o la ciudadanía. +ssn-faqs.accordion3.expanded.li2=La compararemos con otras bases de datos para asegurarnos de que es correcta y verificar si hay algún otro dato sobre usted a fin de decidir si es elegible para recibir un SNAP. +ssn-faqs.accordion3.expanded.li3=La utilizaremos para gestionar el SNAP y controlar si estamos trabajando correctamente. +ssn-faqs.accordion3.expanded.li4=Es posible que compartamos su información con otros organismos estatales o federales para decidir si es elegible para recibir, o continuar recibiendo, los beneficios del SNAP. +ssn-faqs.accordion3.expanded.li5=Podemos compartirla con las fuerzas de seguridad para ayudarlas a capturar a las personas que huyen de la ley. +ssn-faqs.accordion3.expanded.li6=Si recibe demasiados beneficios del SNAP, es posible que compartamos su información con agencias de cobranza privadas, estatales y federales para que trabajen con usted y determinen cómo pagará los beneficios adicionales. + +# Home Address +home-address.title=Domicilio +home-address.header=żEn dónde vive actualmente? +home-address.no-permanent-address=No tengo un domicilio fijo. +address.street-address-1=* żCuál es la dirección postal? +address.street-address-2=żCuál es el número de unidad? +address.city=* żCuál es la ciudad? +address.state=* żCuál es el estado? +address.zip=* żCuál es el código postal? + +# Mailing address +mailing-address.title=Dirección de correo postal +mailing-address.header=żA qué dirección el DCFS puede enviarle un correo? +mailing-address.same-address=A mi domicilio actual + +address.subtext=El asterisco (*) indica que el campo es obligatorio. + +where-to-send-mail.title=A dónde enviar el correo postal +where-to-send-mail.header=żCuenta con una dirección de correo postal? +where-to-send-mail.subtext=El DCFS necesitará un lugar a donde enviarle el correo postal durante los próximos tres meses. Puede ser el domicilio de un miembro de la familia o un amigo, así como un buzón en una oficina postal. +where-to-send-mail.add-address=Agregar una dirección de correo postal +where-to-send-mail.continue-without=Continuar sin completar este campo + +# Special situations +special-situations.title=Siguiente paso +special-situations.header=A continuación, le preguntaremos sobre situaciones especiales. +special-situations.p1=Evaluaremos si alguna situación especial se aplica a su solicitud. +special-situations-household.p1=Evaluaremos si existe alguna situación especial para las personas que figuran en su solicitud. + +# School +school.title=Escuela +school.header=żAlguna persona de su hogar asiste a la escuela actualmente, ya sea a tiempo parcial o total? +school.content.p1=Incluya a todas las personas que estén inscriptas, al menos a tiempo parcial, en una \u201cinstitución de educación superior\u201d. +school.content.p2=Esto incluye lo siguiente: +school.content.li1=Un plan de estudios regular en una universidad que ofrezca titulaciones. +school.content.li2=Una escuela de negocios, técnica, de comercio o de formación profesional que normalmente requiere un diploma de escuela secundaria o equivalente (GED) +school-who.title=Personas que van a la escuela +school-who.header=żQuiénes asisten a la escuela? + +# Pregnancy +pregnancy.title=Embarazo +pregnancy.header=żHay alguna embarazada en su hogar? +pregnancy-who.title=Personas embarazadas +pregnancy-who.header=żQuiénes están embarazadas? + +# Out of state benefits +out-of-state-benefits.title=Beneficios fuera del estado +out-of-state-benefits.header=żAlgún miembro de su hogar ha recibido ayuda de dinero en efectivo o beneficios del SNAP de otro estado? +out-of-state-benefits-who.title=Personas que reciben beneficios fuera del estado +out-of-state-benefits-who.header=żQuiénes recibieron ayuda de dinero en efectivo o beneficios del SNAP de otro estado? + +# Household prepare food +household-prepare-food.title=Preparación de comidas +household-prepare-food.header=żTodos los miembros de su hogar compran y preparan comidas con usted? +household-prepare-food-who.title=Personas que preparan comidas +household-prepare-food-who.header=żQuiénes en su hogar compran y preparan comidas con usted? + +# Seasonal farmworker +seasonal-farmworker.title=Trabajador agrícola de temporada +seasonal-farmworker.header=żAlgún miembro del hogar es un trabajador agrícola de temporada o migrante? + +# Citizenship +citizenship.title=Ciudadanía +citizenship.header=żTodos los miembros de su hogar son ciudadanos estadounidenses? +citizenship.note=Presentar una solicitud para recibir los beneficios del SNAP no afectará su estatus de inmigración. +citizenship.content=Solo los miembros de su hogar que deseen acceder a los beneficios del SNAP deben compartir con nosotros su estatus de inmigración. +citizenship.why-provide=żPor qué debo proporcionar esta información? +citizenship.l1=Es posible que debamos comprobar esta información con el Servicio de Ciudadanía e Inmigración de los Estados Unidos (United States Citizenship and Immigration Services, USCIS) para asegurarnos de que sea correcta. Los datos del USCIS pueden repercutir en su elegibilidad del SNAP, así como en la cantidad de beneficios que recibe. +citizenship.l2=No utilizaremos su información de Seguridad Social para cooperar con el Servicio de Inmigración y Control de Aduanas de los Estados Unidos (Immigration Customs Enforcement, ICE). Su participación en el SNAP no interferirá con su solicitud de la tarjeta de residencia permanente (Green Card) o la ciudadanía. +citizenship.l3=Solicitar u obtener los beneficios del SNAP no afectará su estatus de inmigración ni el de ningún miembro de su hogar. + +# Non-citizen +non-citizen.title=No ciudadanos +non-citizen.header=żQuiénes no son ciudadanos estadounidenses? + +# Citizenship number +citizenship-number.title=Número de ciudadanía +citizenship-number.header=żCuántos miembros de su hogar cumplen alguna de las siguientes características? +citizenship-number.subheader=Tenga en cuenta a todas las personas que figuran en su solicitud que cumplen las siguientes características. Todas ellas son elegibles para recibir los beneficios del SNAP. +citizenship-number.status1=Ser ciudadano estadounidense. +citizenship-number.status2=Ser residente legal permanente o titular de la tarjeta de residencia permanente (sin importar la duración). +citizenship-number.status3=Ser solicitante o titular de una visa T o una visa U. +citizenship-number.status4=Ser asilado o refugiado. +citizenship-number.status5=Ser solicitante de la ayuda que brinda la Ley sobre Violencia contra la Mujer (Violence Against Women Act, VAWA). +citizenship-number.status6=Tener un permiso de permanencia temporal durante, al menos, un ańo o ser ucraniano y tener un permiso de permanencia temporal durante cualquier periodo de tiempo. +citizenship-number.status7=Ser afgano e ingresar al país con una visa especial de inmigrante (Special Immigrant Visa, SIV), un permiso de permanencia temporal especial para inmigrantes (SQ/SI) u otras formas de permisos humanitarios. +citizenship-number.status8=Ser cubano o haitiano. +citizenship-number.status9=Ser hmong o laosiano o indígena americano nacido en Canadá. +citizenship-number.people=Personas {0}. + +# Veteran +veteran.title=Veteranos +veteran.header=żAlgún miembro del hogar es veterano estadounidense? +veteran.content-header=Los veteranos estadounidenses cumplen las siguientes características: +veteran.content-l1=Sirvió en las Fuerzas Armadas de los Estados Unidos (como el Ejército, el Cuerpo de Marines, la Armada, la Fuerza Aérea, la Fuerza Espacial, la Guardia Costera o la Guardia Nacional). +veteran.content-l2=Sirvió en alguna reserva de las Fuerzas Armadas. +veteran.content-l3=Fue desvinculado o dado de baja, sin importar las condiciones. +veteran-who.title=Personas que son veteranos +veteran-who.header=żAlgún miembro del hogar es veterano estadounidense? + +# Foster +foster.title=Crianza temporal +foster.header=żHay algún nińo o adulto en el hogar que participen en el sistema de crianza temporal? +foster-who.title=Personas que participan en el sistema de crianza temporal +foster-who.header=żQuiénes son nińos o adultos que participan en el sistema de crianza temporal? + +# Foster aged out +foster-aged-out.title=Abandono del sistema de crianza temporal por alcanzar el límite de edad +foster-aged-out.header=żAlgún miembro del hogar estuvo en el sistema de crianza temporal hasta cumplir 18 ańos? +foster-aged-out-who.title=Personas que abandonaron el sistema de crianza temporal por alcanzar el límite de edad +foster-aged-out-who.header=żQuiénes estuvieron en el sistema de crianza temporal hasta cumplir 18 ańos? + +# Homelessness +homeless.title=Personas sin hogar +homeless.header=żAlgún miembro del hogar no tiene dónde vivir actualmente? +homeless-who.title=Personas sin hogar +homeless-who.header=żQuiénes no tienen no tienen dónde vivir actualmente? + + +# Phone number nudge +phone-number-nudge.title=Aviso de número de teléfono +phone-number-nudge.header=żEstá seguro de que no desea brindar su número de teléfono? +phone-number-nudge.p1=Es posible que su trabajador social necesite comunicarse por teléfono con usted en relación con su solicitud. Si no tiene un número de teléfono propio, puede proporcionar el de un amigo o familiar. +phone-number-nudge.add-phone-number=Agregar número de teléfono +phone-number-nudge.skip-phone-number=Continuar sin completar este campo + +# Employment income questions +employment-status.title=Situación laboral +employment-status.header=żAlgún miembro de su hogar recibe dinero por un trabajo en relación de dependencia o autónomo? +employment-status.p1=Entre los trabajos autónomos se incluyen los siguientes: +employment-status.li1=Ser conductor de Uber, Lyft, Doordash, etc. +employment-status.li2=Tener su propia empresa. +employment-status.li3=Tener una tienda en línea. +employment-status.li4=Obtener un formulario 1099-MISC al final del ańo. +employment-status.li5=Trabajar como barbero, paseador de perros o proveedor independiente de servicios. +employment-status.more-info=Más información sobre el trabajo autónomo +employment-status.more-info.expanded.p1=Es posible que una persona sea considerada como trabajador autónomo en los siguientes casos: +employment-status.more-info.expanded.li1=La persona para la que trabajan no se responsabiliza por sus gastos empresariales. +employment-status.more-info.expanded.li2=Al final del ańo, reciben el formulario fiscal 1099-MISC por parte de una empresa o persona. +employment-status.more-info.expanded.li3=Tienen o dirigen su propia empresa. +employment-status.more-info.expanded.li4=No acceden a beneficios laborales ni contribuciones fiscales por parte de sus empleadores. +employment-status.more-info.expanded.p2=Le recomendamos lo siguiente: si cree que alguna persona incluida en su solicitud puede ser considerado trabajador autónomo, conteste \u201cSÍ\u201d y revise estos detalles con su trabajador durante la entrevista. + +# Income by job +income-by-job.title=Ingresos según el trabajo +income-by-job.header=Sumemos los ingresos mensuales de su hogar. +income-by-job.subheader=Incluya todo el dinero que provenga de trabajos, regalos, préstamos y beneficios de dinero en efectivo, como Seguridad Social, discapacidad, jubilación o pensión y desempleo. +income-by-job.enter-directly=Conozco los ingresos mensuales de mi hogar antes de impuestos, así que prefiero completar este campo directamente. + +# Household annual income +household-annual-income.title=Ingresos mensuales del hogar +household-annual-income.header=żCuáles son los ingresos mensuales de su hogar antes de impuestos? +household-annual-income.subheader=Proporcione sus ingresos antes de impuestos. Entendemos que puede ser difícil de calcular; si no sabe el monto exacto, brinde un estimado. + +# Income who +income-who.title=Personas que reciben ingresos +income-who.header=żLos ingresos de qué miembro del hogar desea agregar? + +# Employer name +employer-name.title=Nombre del empleador +employer-name.householdMember.header=Agregar el trabajo de {0} +employer-name.self.header=Agregar su trabajo +employer-name.question=żCuál es el nombre del empleador? +employer-name.question.helptext=Si se trata de un trabajo autónomo, agregue una descripción de dicho trabajo (por ejemplo, nińera). + +# Self employment +self-employment.title=Trabajo autónomo +self-employment.header=żEl trabajo de {0} se considera independiente o autónomo? +self-employment.p1=Entre los trabajos autónomos se incluyen los siguientes: +self-employment.li1=Ser conductor de Uber, Lyft, Doordash, etc. +self-employment.li2=Tener su propia empresa. +self-employment.li3=Tener una tienda en línea. +self-employment.li4=Obtener un formulario 1099-MISC al final del ańo. +self-employment.li5=Trabajar como barbero, paseador de perros o proveedor independiente de servicios. +self-employment.more-info=Más información sobre el trabajo autónomo + +# Job paid by hour +job-paid-by-hour.title=Pago por hora +job-paid-by-hour-self.header=żLe pagan por hora? +job-paid-by-hour-househould.header=żA {0} le pagan por hora? +job-paid-by-hour.link=No conozco estos detalles. + +# Room rental +household-room-rental.title=Alquiler de habitaciones +household-room-rental.header=żAlguna persona de su hogar alquila una habitación? +household-room-rental-who.title=Personas que alquilan habitaciones +household-room-rental-who.header=żQuién alquila una habitación? + +# Meals +household-meals.title=Comidas +household-meals.header=żAlgún miembro de su hogar paga sus propias comidas como parte del convenio de vivienda? +household-meals.subtext=

Esto puede incluir lo siguiente:

  • Personas que pagan una habitación y un servicio de pensión mensual
  • Personas que reciben al menos una comida como parte del alquiler
  • Personas que reciben más de la mitad de sus comidas de una organización

+household-meals-who.title=Personas que pagan sus comidas +household-meals-who.header=żQuién paga sus comidas como parte del convenio de vivienda? + +# Review contact info +review-contact-info.title=Revisar información de contacto +review-contact-info.header=Revisemos su información +review-contact-info.name=Nombre +review-contact-info.mailing-address=Dirección de correo postal +review-contact-info.contact-information=Información de contacto +review-contact-info.this-looks-correct=Parece correcto +review-contact-info.edit=Editar mi información + +# Income signpost +income-signpost.step=Paso 3 de 5 +income-signpost.header=Ingresos y trabajo +income-signpost.current-jobs=Trabajos actuales +income-signpost.additional-income=Ingresos adicionales +income-signpost.money-on-hand=Dinero en mano + +# Job search +job-search.title=Búsqueda laboral +job-search.header=żAlgún miembro del hogar está buscando trabajo actualmente? + +# Job search who +job-search-who.title = Personas que están buscando trabajo +job-search-who.header=żQué miembro del hogar está buscando trabajo actualmente? + +# Work disqualifications +work-disqualifications.title=Impedimentos laborales +work-disqualifications.header=En los últimos dos meses, żalgún miembro de su hogar hizo alguna de las siguientes cosas? +work-disqualifications.subtext=

  • Dejó de trabajar
  • Renunció a un trabajo
  • Rechazó una oferta laboral
  • Solicitó trabajar menos horas
  • Participó en una huelga
  • +
+ +#Sensitive Questions +sensitive-questions.title=Preguntas sensibles +sensitive-questions.header=A continuación, le preguntaremos sobre situaciones que dificultan el trabajo. +sensitive-questions.subheader=Lamentamos hacerle preguntas sobre estos temas sensibles. Compartir información sobre sus impedimentos a la hora de trabajar le dará más oportunidades de obtener beneficios. +personal-situations.title=Situaciones personales +personal-situations.header=żAlgún miembro de su hogar enfrenta alguna de las siguientes situaciones personales que dificultan el trabajo? +personal-situations.subheader=Puede tratarse de algo que les impida trabajar por completo o que limite la cantidad de tiempo que pueden trabajar. +personal-situations.content.l1=No tener hogar. +personal-situations.content.l2=Tener problemas con las drogas o el alcohol. +personal-situations.content.l3=Sufrir violencia doméstica. +personal-situations.content.l4=Tener una discapacidad o problema mental, físico o de otra índole. + +personal-situations-who.title=Personas que enfrentan situaciones personales +personal-situations-who.header=żQuiénes enfrentan alguna situación personal que le dificultan el trabajo? + +personal-situations-which.title=Qué situaciones personales +personal-situations-which.subheader=żQué situaciones personales enfrenta {0}? +personal-situations.which.option1=No tener hogar. +personal-situations.which.option2=Tener problemas con las drogas o el alcohol. +personal-situations.which.option3=Sufre violencia doméstica. +personal-situations.which.option4=Tener una discapacidad o problema mental, físico o de otra índole. +personal-situations.which.option5=Otro motivo. + +domestic-violence.title=Víctimas de violencia doméstica +domestic-violence.header=żAlgún miembro de su hogar necesita alejarse de una situación de violencia? +domestic-violence.subheader=Si sufre violencia doméstica o teme por su seguridad, comuníquese con la Línea Directa para Casos de Violencia Doméstica de Luisiana al 1-888-411-1333 de manera gratuita para recibir ayuda confidencial las 24 horas del día. + +criminal-justice-warning.title=Advertencia sobre la participación en hechos delictivos +criminal-justice-warning.header=A continuación, le preguntaremos sobre la participación en hechos delictivos. +criminal-justice-warning.subheader=Lamentamos hacerle preguntas sobre estos temas sensibles. Esta información es obligatoria para determinar su elegibilidad para recibir los beneficios. + +criminal-justice.title=Justicia penal +criminal-justice.header=żAlguna de las siguientes situaciones se corresponde con algún miembro de su hogar? +criminal-justice-content.l1=Fueron condenados por incumplir las normas del SNAP o de los programas de ayuda de dinero en efectivo o de Seguridad de Ingreso Suplementario (Supplemental Security Income, SSI). +criminal-justice-content.l2=Fueron condenados por un delito grave. +criminal-justice-content.l3=Actualmente está bajo libertad condicional o vigilada. + +job-hourly-wage.title=Salario por hora +job-hourly-wage.header=żCuál es el salario por hora de {0}? + +job-hours-per-week.title=Horas por semana +job-hours-per-week-self.header=żCuántas horas por semana trabaja? +job-hours-per-week-household.header=żCuántas horas por semana trabaja {0}? +job-hours-per-week-household.subtext=Entendemos que puede ser una pregunta difícil de responder; haga una estimación en función de la cantidad de horas que trabajó {0} en los últimos 30 días. +job-hours-per-week-self.subtext=Entendemos que puede ser una pregunta difícil de responder; haga una estimación en función de la cantidad de horas que trabajó en los últimos 30 días. + +job-pay-period.title=Período de pago +job-pay-period-self.header=żCon qué frecuencia le pagan? +job-pay-period-household.header=żCon qué frecuencia le pagan a {0}? +job-pay-period.every-week=Todas las semanas +job-pay-period.every-two-weeks=Cada dos semanas +job-pay-period.twice-a-month=Dos veces al mes +job-pay-period.every-month=Todos los meses +job-pay-period.it-varies=Varía + +job-pay-amount.title=Monto del período de pago +job-pay-amount.fixed.header=żCuánto le pagan a {0} por este trabajo? +job-pay-amount.variable.header=żCuál fue la remuneración por este trabajo en los últimos 30 días? +job-pay-amount.subtext=Proporcione sus ingresos antes de impuestos. Entendemos que puede ser difícil de calcular; si no sabe el monto exacto, brinde un estimado. + +income-confirmation.title=Confirmación de ingresos +income-confirmation.header=ˇFalta poco! Ya casi termina con la sección de ingresos. +income-confirmation.subtext=żDesea agregar otro trabajo a su hogar? + +income-list.title=Lista de ingresos +income-list.header=ˇExcelente! żDesea agregar algún otro trabajo correspondiente a los miembros de su hogar? + +# Income +additional-income.title=Ingresos adicionales +additional-income.header=żAlgún miembro de su hogar recibe ingresos de alguna de las siguientes fuentes? +additional-income.subtext=Seleccione todas las opciones que correspondan. No es necesario que brinde información sobre los ingresos que aún no ha recibido. +additional-income.choice1=Seguridad de Ingreso Suplementario (SSI) +additional-income.choice2=Seguridad Social +additional-income.choice3=Beneficios por desempleo +additional-income.choice4=Indemnización +additional-income.choice5=Pensión alimenticia +additional-income.choice6=Beneficios para veteranos +additional-income.choice7=Contribuciones por parte de amigos y familiares + +money-on-hand.title=Dinero en mano +money-on-hand.header=żCuánto dinero en mano tienen las personas que figuran en su solicitud? +money-on-hand.subtext=

Esto incluye cualquier dinero en efectivo, cheques y cajas de ahorro.

Este dato no repercutirá en el monto de su beneficio, solo se utiliza para determinar si cumple los requisitos para recibir servicios inmediatos.

Escriba \u201c0\u201d si no cuenta con dinero alguno.

+ +income-list.subtext=Debemos acceder a la información de los trabajos autónomos, independientes, por contrato y a tiempo parcial y total de todos los miembros del hogar, incluidos los estudiantes. +income-list.monthly-income=Ingresos mensuales del hogar +income-list.continue=He terminado de agregar los trabajos +income-list.box-title=Ingresos mensuales del hogar +income-list.total-income=Total de ingresos mensuales del hogar +income-list.total-monthly-pay=Total de ingresos mensuales del hogar +income-list.no-jobs-added=No se agregaron trabajos +income-list.thats-you=(ˇEse es usted!) +income-list.delete-job=Eliminar trabajo +income-list.edit-job=Editar trabajo +income-list.add-job=+ Agregar un trabajo + +income-delete-confirmation.header=żEstá seguro que desea eliminar {0} de los trabajos de {1}? +income-delete-confirmation.no=No, deseo mantenerlo. +income-delete-confirmation.title=Eliminar los ingresos del miembro del hogar +income-delete-confirmation.yes=Sí, deseo eliminarlo. + +household-income-total.add-by-job=żDesea agregar el ingreso mensual de su hogar por trabajo? Esto puede darle a su trabajador social más detalles que le permitirán brindarle una mejor asistencia con su solicitud. +household-income-total.no=No, continuar. +household-income-total.yes=Sí, agregar ingresos por trabajo. + +# Expenses +expenses-signpost.title=Indicador de gastos +expenses-signpost.step=Paso 4 de 5 +expenses-signpost.header=Gastos y deducciones +expenses-signpost.expense=Gastos del hogar +expenses-signpost.addl-expense=Gastos adicionales + +home-expenses.title=Gastos del hogar +home-expenses.header=żAlgún miembro de su hogar paga alguno de los siguientes gastos del hogar? +home-expenses.rent=Alquiler +home-expenses.mortgage=Hipoteca +home-expenses.homeinsurance=Seguro de propiedad +home-expenses.tax=Impuestos sobre los bienes inmuebles +home-expenses.condo-fees=Expensas +home-expenses.lot-rent=Alquiler de un terreno +home-expenses.flood-insurance=Seguro contra inundaciones +home-expenses.other=Otro + +utilities.title=Servicios públicos +utilities.header=żAlgún miembro de su hogar paga alguno de los siguientes servicios públicos? +utilities.subheader=Seleccione todas las opciones que correspondan, incluso si este mes no se pagaron. +utilities.heating=Calefacción +utilities.cooling=Refrigeración +utilities.electricity=Electricidad +utilities.water=Agua +utilities.phone=Teléfono fijo o celular +utilities.garbage=Basura +utilities.sewer=Alcantarillado +utilities.cooking-fuel=Aceite de cocina +utilities.other=Otro + +home-expenses.question=żCuánto pagan los miembros de su hogar por {0} mensualmente? +home-expenses.question.other=żCuánto pagan los miembros de su hogar por otros gastos del hogar mensualmente? +utilities-expenses.question.other=żCuánto pagan los miembros de su hogar por otros servicios públicos mensualmente? + + +dependentcare.title=Cuidado de personas dependientes +dependentcare.header=żAlgún miembro de su hogar paga por servicios de cuidado infantil o de personas dependientes? +dependentcare.subheader=

Por ejemplo:

  • Pago de pensión alimenticia
  • Cuidador de nińos
  • Centro de cuidado infantil diurno
  • Cuidado infantil después del horario escolar
  • Centro de día para adultos
  • Campamento de verano
+ +dependentcare-expenses.title=Costo del cuidado de personas dependientes +dependentcare-expenses.header=żCuánto pagan al mes las personas que figuran en su solicitud por los servicios de cuidado infantil o de personas dependientes? +dependentcare-expenses.subheader=

Solo incluya el monto que pagan las personas que viven con usted y figuran en su solicitud.

Escriba \u201c0\u201d si nadie paga por estos servicios.

+ +insurance-expenses.title=Gastos de seguro +insurance-expenses.header=żAlgún miembro de su hogar paga un seguro de salud u otros gastos médicos? +insurance-expenses.subheader=Háganos saber si está pagando alguno de los siguientes gastos médicos de su bolsillo. +insurance-expenses.medical-insurance-premium=Primas de seguro médico +insurance-expenses.dental-insurance-premium=Primas de seguro odontológico +insurance-expenses.vision-insurance-premium=Primas de seguro de visión +insurance-expenses.medical-bills=Facturas o copagos de servicios médicos +insurance-expenses.none=Ninguna de las anteriores + +insurance-expenses-amount.header=żCuánto pagan las personas que figuran en su solicitud por {0}? +insurance-expenses-amount.subheader=Si no tiene toda esta información a mano, no responda esta pregunta por el momento. Un trabajador del DCFS le preguntará sobre este tema más adelante. + +elderlycare.title=Cuidado de personas mayores +elderlycare.header=żLas personas de 60 ańos o más o aquellas que reciben beneficios por discapacidad enfrentan gastos médicos que superan los $35 al mes? +elderlycare.subheader=

Solo incluya los gastos que no son reembolsados.

+elderlycare.body=

Por ejemplo:

  • Pagos de servicios médicos u odontológicos de su bolsillo
  • Costos de traslado ida y vuelta a citas médicas
  • Medicamentos de venta libre
  • Suministros de venta libre
  • Atención hospitalaria o de enfermería
  • Gastos relacionados con el trabajador social
+ +elderlycare-amount.title=Costo del cuidado de personas mayores +elderlycare-amount.header=żCuánto pagan al mes por los servicios médicos las personas de 60 ańos o más o aquellas que reciben beneficios por discapacidad? +elderlycare-amount.subheader=Solo incluya los gastos que no son reembolsados. + +#Final Signpost +final-signpost.title=Indicador final +final-signpost.step=Paso 5 de 5 +final-signpost.header=Enviar su solicitud +final-signpost.boxedcontent=Le solicitaremos que proporcione los siguientes datos: +final-signpost.content-1=Representante autorizado +final-signpost.content-2=Empadronamiento electoral +final-signpost.content-3=Raza y origen étnico +final-signpost.content-4=Aceptar los términos y condiciones + +authorized-rep.title=Representante autorizado +authorized-rep.header=żLe gustaría asignar a una persona como su representante autorizado? +authorized-rep.subheader=Esta persona puede ayudarlo con sus beneficios o actuar en su nombre. + +authorized-rep-communication.title=Autorización de comunicación del representante autorizado +authorized-rep-communication.header=żDesea que el representante autorizado se comunique con el DCFS en su nombre? +authorized-rep-communication.subheader=Esta persona está autorizada para hacer lo siguiente: +authorized-rep-communication.content-1=Hablar por usted en una entrevista. +authorized-rep-communication.content-2=Ayudarlo a completar los formularios. +authorized-rep-communication.content-3=Hablar con su proveedor de servicios. + +authorized-rep-mail.title=Correo postal del representante autorizado +authorized-rep-mail.header=żDesea que el representante autorizado reciba correos y notificaciones en su nombre? +authorized-rep-mail.subheader=Esta persona está autorizada para hacer lo siguiente: +authorized-rep-mail.content-1=Recibir correos sobre sus beneficios. +authorized-rep-mail.content-2=Recibir notificaciones por correo postal o teléfono. + +authorized-rep-spending.title=Gastos del representante autorizado +authorized-rep-spending.header=żDesea que el representante autorizado utilice los beneficios en su nombre? +authorized-rep-spending.subheader=Esta persona está autorizada para hacer lo siguiente: +authorized-rep-spending.content-1=Acceder a su propia tarjeta EBT, vinculada a sus beneficios. +authorized-rep-spending.content-2=Comprar cosas por usted con su tarjeta. + +authorized-rep-contact-info.title=Información de contacto del representante autorizado +authorized-rep-contact-info.header=Agregue la información de contacto del representante autorizado. +authorized-rep-contact-info.subheader=Debemos enviarle esta información al DCFS. El asterisco de color rojo (*) indica que el campo es obligatorio. +authorized-rep-contact-info.firstname-question=żCuál es su nombre? +authorized-rep-contact-info.name-helptext=Legalmente, tal y como figura en su identificación +authorized-rep-contact-info.lastname-question=żCuál es su apellido? +authorized-rep-contact-info.othername-question=Otros nombres que use actualmente o haya usado en el pasado +authorized-rep-contact-info.othername-helptext=Opcional. Enumere los apellidos de soltera, los cambios legales de nombre y los nombres de género preferidos. +authorized-rep-contact-info.streetAddress1=żCuál es su dirección postal? +authorized-rep-contact-info.streetAddress2=żCuál es el número de unidad? +authorized-rep-contact-info.city=żEn qué ciudad vive? +authorized-rep-contact-info.state=żEn qué estado vive? +authorized-rep-contact-info.zipCode=żCuál es su código postal? +authorized-rep-contact-info.phone-number=żCuál es su número de teléfono? +authorized-rep-contact-info.phone-number.help=Opcional. Su trabajador social puede utilizar este número para comunicarse con su representante autorizado directamente. Si no agrega ningún número de teléfono, es posible que el servicio sea más lento. + +medicaid.title=Medicaid +medicaid.header=żNecesita una cobertura total de sus gastos médicos? +medicaid.subheader=Podemos compartir la información de su solicitud con el Departamento de Salud de Luisiana (Louisiana Department of Health, LDH). El LDH inscribirá a todas las personas que cumplan los requisitos y les enviará una carta con más información sobre el programa Medicaid. Es posible que los nińos y adultos (menores de 65 ańos que no tengan Medicaid) sean elegibles. +medicaid.yes=Sí, comparta mi información. +medicaid.no=No, no comparta mi información. + +voter-registration.title=Empadronamiento electoral +voter-registration.header=En caso de que no esté registrado en el padrón electoral del lugar donde vive actualmente, żle gustaría registrarse ahora? +voter-registration.subheader=Solicitar o rechazar el empadronamiento electoral no repercutirá en el monto de la ayuda que reciba por parte de este organismo. +voter-registration.yes=Sí, me gustaría registrarme para votar. +voter-registration.no=No, no deseo ni necesito registrarme para votar en este momento. +vote-registration.expanded.header1=żRepercutirá en el monto de ayuda que podría obtener? +vote-registration.expanded.body1=Solicitar o rechazar el empadronamiento electoral no repercutirá en el monto de la ayuda que reciba por parte de este organismo. +vote-registration.expanded.header2=żAlguien está intentando impedir su derecho al voto? +vote-registration.expanded.body2=Si cree que alguien está interviniendo en su derecho a registrarse o rechazar el empadronamiento electoral, su derecho a la privacidad respecto de esta decisión o su derecho a elegir su propio partido político u otra preferencia política, puede presentar una queja ante el Comisionado Electoral de la Secretaría de Estado de Luisiana, P.O. Box 94125, Baton Rouge, LA 70804-9125 o llamar al 225 922-0900 o al 1-800-883-2805 . + +voter-registration-help.title=Ayuda para registrarse en el padrón electoral +voter-registration-help.header=żLe gustaría recibir ayuda para completar el formulario de empadronamiento electoral? +voter-registration-help.subheader=Si le gustaría recibir ayuda para completar el formulario de solicitud de empadronamiento electoral, nosotros lo ayudaremos.

Usted elige si desea buscar o recibir ayuda. Puede completar la solicitud de manera privada si así lo desea. +voter-registration-help.yes=Sí, me gustaría recibir ayuda. +voter-registration-help.no=No, no necesito ayuda. + +race-ethnicity.title=Raza y origen étnico +race-ethnicity-ask.header=żPodemos preguntarle cuál es su raza y origen étnico? +race-ethnicity-ask.subheader=Brindar información sobre su raza y origen étnico es opcional y no repercutirá en su solicitud personal.

Utilizaremos esta información para evaluar la equidad del SNAP y la solicitud de los Beneficios de Luisiana; el fin de solicitarle dicha información es asegurarnos de que sea representado de manera correcta. +race-ethnicity-ask.yes=Sí, continuar. +race-ethnicity-ask.no=No, omitir esta pregunta. + +ethnicity-selection.title=Selección de origen étnico +ethnicity-selection.header=żCon qué origen étnico se identifica? +ethnicity-selection.subheader=Seleccione una de las siguientes opciones. +ethnicity-selection.option1=Hispano o latino +ethnicity-selection.option2=No hispano ni latino + +race-selection.title=Selección de raza +race-selection.header=żCon qué razas se identifica? +race-selection.subheader=Seleccione todas las opciones que correspondan. +race-selection.option1=Indígena americana o nativa de Alaska +race-selection.option2=Asiática +race-selection.option3=Negra o afroamericana +race-selection.option4=Nativa de Hawái o de otras islas del Pacífico +race-selection.option5=Caucásica + +legal-title=Asuntos legales +legal-header1=Asuntos legales +legal-subheader=Acuerdos generales +legal-main-body=Despliegue las casillas que se encuentran a continuación para revisar los términos, seleccione aquellas que se comprometa a cumplir y firme en la siguiente página. +legal-expanded.header1=Sus derechos y responsabilidades +legal-expanded.body1=

Al recibir beneficios del Departamento de Servicios para Nińos y Familias de Luisiana, se le atribuyen ciertos derechos y responsabilidades que se explican a continuación.

żCuáles son sus derechos?

  • No discriminación: esta institución prohíbe la discriminación por motivos de raza, nacionalidad, discapacidad, edad, sexo y, en algunos casos, creencias religiosas o políticas. Además, el Departamento de Agricultura de los EE. UU. también prohíbe la discriminación contra sus clientes, empleados y solicitantes de empleo por motivos de raza, color, nacionalidad, edad, discapacidad, sexo, identidad de género, religión, represalias y, siempre que corresponda, creencias políticas, estado civil familiar o parental, orientación sexual, parte o todos los ingresos provenientes de cualquier programa de ayuda pública, información genética protegida en el trabajo o cualquier programa o actividad realizada o financiada por el Departamento. (No todas las bases prohibidas se aplicarán a todos los programas o actividades laborales). Las personas con discapacidad que necesiten medios de comunicación alternativos para obtener información sobre los programas (por ejemplo, braille, letra grande, grabaciones de audio, lengua de seńas estadounidense, etc.), deben comunicarse con el organismo (estatal o local) en el que solicitaron los beneficios. Las personas sordas, con problemas de audición o con trastornos del habla pueden ponerse en contacto con el Departamento de Agricultura de los Estados Unidos (United States Department of Agriculture, USDA) mediante el Servicio de Retransmisión de Telecomunicaciones llamando al (800) 877-8339. Además, la información del programa está disponible en otros idiomas además del inglés. Para presentar una denuncia por discriminación en un programa, complete el Formulario de denuncia por Discriminación del Programas del USDA, (AD-3027), disponible en línea en http://www.ascr.usda.gov/complaint_filing_cust.html o en cualquier oficina del USDA. También puede escribir una carta dirigida al USDA e incluir toda la información que se solicita en el formulario. Para acceder a una copia del formulario de denuncia, llame al (866) 632-9992. Envíe el formulario completo o la carta al USDA por alguno de los siguientes medios:
    • 1. Correo postal: U.S. Department of Agriculture Office of the Assistant Secretary for Civil Rights
      1400 Independence Avenue, SW Washington, D.C. 20250-94102.
    • 2. Fax: (202) 690-7442.
    • 3. Correo electrónico: program.intake@usda.gov.
    Para acceder a cualquier otra información sobre asuntos relacionados con el Programa de Asistencia Nutricional Complementaria (SNAP), las personas deben comunicarse con la Línea Directa del SNAP del USDA al (800) 221-5689, que también se encuentra disponible en espańol, o llamar a los números de información o líneas directas del estado (haga clic en el enlace para acceder a la lista de líneas directas por estado), disponibles en línea en http://www.fns.usda.gov/snap/contact_info/hotlines.htm. Para presentar una denuncia por discriminación en un programa que recibe ayuda económica federal del Departamento de Salud y Servicios Humanos de los Estados Unidos (U.S. Department of Health and Human Services, HHS), envíe un correo postal a HHS Director, Office for Civil Rights, Room 515-F, 200 Independence Avenue, S.W., Washington, D.C. 20201, o llame al (202) 619-0403 (por voz) o (800) 537-7697 (TTY). Esta institución ofrece igualdad de oportunidades.
  • Denuncias: las denuncias deben presentarse ante el Departamento de Servicios para Nińos y Familias (DCFS) enviando un correo electrónico a LAHELPU.DCFS@LA.GOV o llamando al 225-342-2342. Puede presentar una denuncia de derechos civiles ante el DCFS mediante el Formulario de Denuncia de Derechos Civiles del DCFS. Entregue el formulario en la oficina local, envíelo por correo postal a DCFS Civil Rights Section, P.O. Box 1887, Baton Rouge, LA 70821; por correo electrónico a DCFS.BureauofCivilRights@LA.GOV o llame al (225) 342-0309. También puede presentar una denuncia de derechos civiles ante el DCFS y el USDA o solo ante el DCFS.
  • Audiencia imparcial: si no está de acuerdo con alguna de las decisiones que se tomaron sobre su caso, tiene derecho a pedir que se revise su caso. Puede solicitar una audiencia imparcial por escrito, en persona o llamando a la oficina. Tiene derecho a consultar la información de su caso antes de la audiencia.

żCuáles son responsabilidades?

  • Cooperar: debe cooperar y proporcionarnos la información que necesitamos para determinar si cumple los requisitos de elegibilidad de los beneficios que solicita para usted y las demás personas de la solicitud. También debe aportar pruebas que respalden la información que nos brinda. Además, deberá cooperar si debemos visitar su domicilio para determinar su elegibilidad. Si el estado selecciona su caso para someterlo a una revisión de control de calidad por parte de revisores estatales o federales, deberá cooperar con ellos.

Informar los cambios

Si recibe los beneficios del SNAP, debe informar lo siguiente:

  • Siempre que aumenten los ingresos de su hogar o si una persona con ingresos se muda al hogar, sume la cantidad de ingresos por trabajo e ingresos diferidos de todos los miembros del hogar. Si esta cantidad supera el 130 % del nivel federal de pobreza para el tamańo de su hogar que aparece en su notificación más reciente de SNAP, el cambio debe informarse al DCFS.
  • Si su hogar recibe un premio de lotería o apuestas de $4,250.00 o más, correspondientes a un solo juego, antes de impuestos o retenciones.
  • Si recibe beneficios del FITAP, debe cumplir los requisitos de información que se detallan en su Acuerdo de Éxito Familiar e informar estos cambios en un plazo de 10 días, a partir del momento en que tenga conocimiento del cambio. Además, si el único nińo que cumple los requisitos de elegibilidad y recibe los beneficios del FITAP se muda del hogar, también deberá informarlo en un plazo de 10 días.
  • Si recibe beneficios del Post-FITAP, también deberá informar en un plazo de 10 días si deja de trabajar, si el único nińo del hogar se muda y si se traslada fuera del estado.
  • Si recibe los beneficios del KCSP, debe informar en un plazo de 10 días si el único nińo que cumple los requisitos de elegibilidad y recibe prestaciones del programa KCSP abandona el hogar.
  • Si no recibe los beneficios del SNAP, pero sí los del FITAP, KCSP, o CCAP, debe informar los siguientes cambios en un plazo de 10 días: los cambios en la fuente de cualquier ingreso del hogar (esto incluye cambios de empleador y nuevas fuentes de ingresos, como pensión alimenticia, el Seguridad Social, SSI, etc.); la cantidad de ingresos diferidos del hogar se modifica en más de $100 por mes; la cantidad de ingresos de trabajo del hogar cambia en más de $100 por mes; alguien se muda a su hogar o de su hogar, o usted se muda.
  • En el caso del FITAP o el KCSP, debe informar en un plazo de 10 días cualquier cambio en la asistencia a la escuela de cualquier persona de 18 ańos y el estado civil de cualquier miembro del hogar.
+legal-agree=Acepto todos los términos. +legal-expanded.header2=Sanciones por brindar información incorrecta +legal-expanded.body2=

Sanciones

Si brinda información incorrecta deliberadamente, sus beneficios del SNAP, FITAP o KCSP pueden negarse, limitarse o darse por finalizados; además, es posible que se lo someta a un proceso penal.

żQué sanciones corresponden al SNAP?

Si usted o un miembro de su hogar hace lo siguiente:

  • oculta información o brinda datos falsos;
  • intercambia o vende los beneficios del SNAP o las tarjetas EBT;
  • utiliza los beneficios para comprar artículos que no entran en el programa, como alcohol o tabaco;
  • utiliza los beneficios del SNAP de otra persona;
  • paga los alimentos comprados a crédito con los beneficios del SNAP

Perderá los beneficios del SNAP por los siguientes plazos:

  • 1 ańo en el caso de la primera infracción;
  • 2 ańos en el caso de la segunda infracción;
  • de manera permanente en el caso de una tercera infracción.

Además, puede recibir una multa de hasta $250,000 o más, ser encarcelado hasta por 20 ańos o ambos. También se le puede prohibir el acceso al SNAP durante 18 meses más si así lo ordena el tribunal.

Si usted o algún miembro de su hogar hace lo siguiente:

  • intercambia los beneficios del SNAP por drogas ilegales y el tribunal lo declara culpable

Perderá los beneficios del SNAP por los siguientes plazos:

  • 2 ańos en el caso de la primer infracción;
  • de manera permanente en el caso de la segunda infracción.

Si usted o algún miembro de su hogar hace lo siguiente:

  • intercambia los beneficios del SNAP por armas de fuego, municiones o explosivos y el tribunal lo declara culpable;
  • intercambia, compra o vende beneficios del SNAP por $500 o más y el tribunal lo declara culpable

Sucederá lo siguiente:

  • Perderá los beneficios del SNAP de manera permanente.

Si usted o algún miembro de su hogar hace lo siguiente:

  • comparte información falsa sobre su identidad o el lugar en el que vive para recibir beneficios en más de un caso al mismo tiempo

Sucederá lo siguiente:

  • perderá los beneficios del SNAP durante 10 ańos.

żQué sanciones corresponden al FITAP y el KCSP?

Si usted o algún miembro de su hogar hace lo siguiente:

Sucederá lo siguiente:

  • oculta información o brinda datos falsos

Sucederá lo siguiente:

Perderá los beneficios por los siguiente plazos:

  • 1 ańo en el caso de la primera infracción;
  • 2 ańos en el caso de la segunda infracción;
  • de manera permanente en el caso de la tercera infracción.

También podrá recibir una multa de hasta $50,000, ser encarcelado hasta por 20 ańos o ambos.

Si usted o algún miembro del hogar hace lo siguiente:

  • Usa su tarjeta EBT
    • en tiendas de licores,
    • casinos o establecimientos de apuestas,
    • negocios minoristas que ofrecen entretenimiento para adultos en el que los artistas se desvisten o actúan sin ropa con fines de entretenimiento,
    • cualquier librería o tienda de accesorios para adultos y negocios orientados sexualmente,
    • tienda de tatuajes o perforaciones o cualquier negocio de arte corporal,
    • salones de uńas,
    • joyerías,
    • salas de juego o videos,
    • empresas de fianzas,
    • clubs nocturnos, bares, tabernas o cantinas,
    • cruceros,
    • negocios de psíquicos,
    • cualquier establecimiento que prohíba el ingreso de menores de 18 ańos,
    • o los cajeros automáticos en cualquiera de estos establecimientos.
  • Usa su tarjeta EBT
    • en tiendas de venta de bebidas alcohólicas,
    • productos derivados del tabaco,
    • boletos de lotería,
    • joyas.

Sucederá lo siguiente

Perderá los beneficios por los siguientes plazos:

  • 1 ańo en el caso de la primera infracción;
  • 2 ańos en el caso de la segunda infracción;
  • de manera permanente en el caso de la tercera infracción.

Si usted o algún miembro de su hogar hace lo siguiente:

  • brinda información falsa sobre el lugar en el que vive para recibir beneficios en dos o más estados al mismo tiempo

Sucederá lo siguiente:

  • Perderá los beneficios por 10 ańos.
+legal-expanded.header3=Estatuto Revisado 46:56 de Luisiana: Programas que comparten el acceso a la información de los casos +legal-expanded.body3=

Este estatuto autoriza a las áreas de los programas del Departamento a compartir el acceso a los expedientes de los casos de otras áreas para la gestión de los respectivos programas, excepto cuando las leyes o normas federales indiquen lo contrario.

+legal-expanded.header4=Declaración de no discriminación del USDA +legal-expanded.body4=

De acuerdo con la ley federal de derechos civiles y las normas y políticas de derechos civiles del Departamento de Agricultura de los EE. UU. (USDA), esta institución tiene prohibido discriminar por motivos de raza, color, nacionalidad, sexo (incluidas la identidad de género y la orientación sexual), discapacidad, edad o represalias por actividades previas relacionadas con los derechos civiles.

La información del programa está disponible en otros idiomas además del inglés. Las personas con discapacidad que necesiten medios de comunicación alternativos para obtener información sobre el programa (por ejemplo, braille, letra grande, grabaciones de audio, lengua de seńas estadounidense), deben ponerse en contacto con el organismo estatal o local responsable que administra el programa o con el Centro TARGET del USDA al (202) 720-2600 (voz y TTY) o comunicarse con el USDA mediante el Servicio de Retransmisión de Telecomunicaciones llamando al (800) 877-8339.

Para presentar una denuncia por discriminación en un programa, el denunciante debe completar el formulario AD-3027, Formulario de Denuncia de Discriminación del Programa del USDA, que puede obtenerse en línea en https://www.usda.gov/sites/default/files/documents/ad-3027.pdf, en cualquier oficina del USDA, llamando al (866) 632-9992 o escribiendo una carta dirigida a dicho Departamento. La carta debe incluir el nombre, la dirección y el número de teléfono del denunciante, así como una descripción escrita de la presunta discriminación lo suficientemente detallada como para informar al Subsecretario de Derechos Civiles (Assistant Secretary for Civil Rights, ASCR) sobre la naturaleza y la fecha de la presunta violación de los derechos civiles. El formulario AD-3027 completo o la carta deben enviarse al USDA por alguno de los siguientes medios:

1. Correo postal: U.S. Department of Agriculture
Office of the Assistant Secretary for Civil Rights
1400 Independence Avenue, SW
Washington, D.C. 20250-9410.

2. Fax: (833) 256-1665 o (202) 690-7442.

3. Correo electrónico: Program.Intake@usda.gov

Esta institución ofrece igualdad de oportunidades.

+ +signature-title=Firma +signature-header=Escriba su nombre legal completo para firmar la presente solicitud. +signature-subheader=Al firmar la presente solicitud acepta que desea solicitar los beneficios, que la información que en ella se brinda es verdadera y que leyó y acepta los términos descritos en la página anterior. +signature-submit=Enviar solicitud + + +# Confirmation +confirmation.title=Confirmación +confirmation.header=ˇListo! Su solicitud fue enviada con éxito. +confirmation.subtext=Su solicitud fue enviada el {0}. +confirmation.helpful-resources=Recursos útiles +confirmation.helpful-resources.l1=Vuelva a benefits.dcfs.la.gov para enviar cualquier documento que solicite el DCFS. +confirmation.helpful-resources.l2=Cree una cuenta en LA CAFÉ para gestionar su beneficios. +confirmation.next-steps=Próximos pasos +confirmation.p1_html=Debe realizar una entrevista. Antes del {0}, recibirá una carta con la fecha de la cita y los detalles de la entrevista.

Si para ese momento no recibió la carta, comuníquese con la siguiente línea gratuita (833) 323-7482 de lunes a viernes, de 8:00 a. m. a 2:00 p. m. para programar una entrevista. +confirmation.looking_for_job_html=Debe crear una cuenta HiRE. Cree una cuenta HiRE en Louisiana Works para recibir los beneficios del SNAP. +confirmation.p2_html=Dentro de los próximo 30 días, debe recibir una carta por correo postal sobre su solicitud. Dicha carta le informará si cumple o no los requisitos de elegibilidad. +confirmation.p3=Llame a LAHelpU al (888) 524-3578 si tiene alguna pregunta sobre su solicitud en línea. +confirmation-feedback.how-easy=żQué tan fácil o difícil le resultó completar el formulario de solicitud en línea utilizando este sitio web? (Opcional) + + +# WIC/ECE - these are placeholders for translations, feel free to change the key names +looking-for-assistance=żEstá buscando ayuda de otros programas? +already-started=żYa comenzó a completar su solicitud? +upload-requested-docs=Subir los documentos solicitados por el DCFS +parish.header=żEn qué distrito vive actualmente? +parish.subheader=Elija el distrito en el que vive. +parish.select=Seleccione su distrito. + +you-might-qualify-childcare=Es posible que sea elegible para recibir servicios gratuitos de cuidado infantil y preescolar. +by-answering=Si responde solo cuatro preguntas más, podremos comprobar si cumple los requisitos de elegibilidad delPrograma de Asistencia Nutricional Especial para Mujeres, Bebés y Nińos (Women, Infants, and Children, WIC) o los servicios de cuidado infantil y educación de la primera infancia. +reveal-header-1=żQué es el Programa de Asistencia Nutricional Especial para Mujeres, Bebés y Nińos (WIC)? +reveal-content-1=El Programa de Asistencia Nutricional Especial para Mujeres, Bebés y Nińos (WIC) ofrece educación sobre nutrición, derivaciones de atención médica y tarjetas EBT para el pago de alimentos saludables. Las mujeres embarazadas, las mujeres que estuvieron embarazadas en los últimos seis meses, los bebés y los nińos de hasta cinco ańos son elegibles para recibir los beneficios de este programa. +reveal-header-2=żQué son los servicios de cuidado infantil y educación de la primera infancia (ECE)? +reveal-content-2=Los servicios de cuidado infantil y educación de la primera infancia (Early Learning and Childcare, ECE) ayuda a los nińos pequeńos y a sus padres a obtener educación y cuidados. El ECE incluye los programas Head Start y Early Head Start para nińos menores de cinco ańos y mujeres embarazadas. +im-interested=Me interesa +continue-with-snap-only=Continuar solo con SNAP + +what-type=żQué tipo de ayuda le gustaría solicitar? +food-wic=Alimentos (WIC) +food-wic-subheader=Dinero para comprar alimentos saludables para usted y su familia. +free-childcare=Servicios gratuitos de cuidado infantil y educación preescolar (ECE). +free-childcare-subheader=Educación y cuidado infantil para nińos pequeńos y sus padres. + +all-working=żTODOS los adultos de su hogar trabajan, asisten a la escuela, participan en un programa de capacitación o están en búsqueda de un trabajo? +only-count-adults=Únicamente tenga en cuenta a los adultos que son tutores legales. +household-composition-exclusions=La composición del hogar no incluye los tíos, hijos adultos, abuelos, etc. + +any-iep=żAlguno de los nińos de su hogar participa en un Programa de Educación Individualizado (Individualized Education Program, IEP) debido a una discapacidad? +any-iep-exclusions=No incluye a los nińos que participan en el Programa para Nińos Talentosos o Superdotados. + +foster-or-kinship=żAlguno de los nińos de su hogar participa en un programa de crianza temporal o de subvención por parentesco? + +can-we-share-nola=żPodemos compartir sus datos del SNAP con NOLA-PS? +use-to-start-app=Podemos utilizar su información del SNAP para iniciar su solicitud de servicios gratuitos de cuidado infantil y preescolar mediante las Escuelas Públicas (Public Schools, PS) de NOLA. +nolaps-contact-you=El personal de NOLA-PS se comunicará con usted para completar el proceso de solicitud. +share-nolaps-button=Compartir mis datos con NOLA-PS + +if-youre-approved=Si se aprueba su solicitud del SNAP, significa que también es elegible para el WIC. +wic-will-contact=El personal del WIC se comunicará con usted para completar el proceso de solicitud. + +thank-you=Muchas gracias por su información. +you-can-finish-up=Puede finalizar su solicitud del SNAP y recibir los próximos pasos para todos los programas al final de la página. + +based-on-your-answers=En función de sus respuestas, es posible que cumpla los requisitos de elegibilidad del Programa de Asistencia Nutricional Especial para Mujeres, Bebés y Nińos (WIC). El WIC ofrece lo siguiente:
  • Educación nutricional
  • Derivaciones de atención médica
  • Ayudas económicas para comprar alimentos saludables
żLe gustaría compartir su información con el WIC para determinar si es elegible? +share-wic-button=Compartir mis datos con el WIC + +you-can-finish-up-2=Puede finalizar su solicitud del SNAP y recibir los próximos pasos para todas las solicitudes al final de la página. + +you-might-qualify-for-ece=Es posible que sea elegible para la ECE. +you-might-qualify-for-ece-subheader=En función de sus respuestas, es posible que cumpla los requisitos de elegibilidad de los servicios de cuidado infantil y educación de la primera infancia (ECE). El ECE ofrece lo siguiente:
  • Servicios de cuidado infantil gratuitos
  • Educación preescolar gratuita
+open-ece-button=Iniciar la solicitud del ECE + +open-wic-button=Iniciar la solicitud del WIC + +you-might-qualify-wic=Es posible que cumpla los requisitos de elegibilidad del Programa de Asistencia Nutricional Especial para Mujeres, Bebés y Nińos (WIC). +go-to-wic-button=Ir a solicitud del WIC +reveal-content-3=El Programa de Asistencia Nutricional Especial para Mujeres, Bebés y Nińos (WIC) ayuda a las personas a pagar por frutas y verduras y brinda educación nutricional a mujeres embarazadas, mujeres que estuvieron embarazadas en los últimos seis meses, bebés y nińos de hasta cinco ańos. +reveal-content-4=Los servicios de cuidado infantil y educación de la primera infancia (Early Learning and Childcare, ECE) ayuda a los nińos pequeńos y a sus padres a obtener educación y cuidados. El ECE incluye los programas Head Start y Early Head Start para nińos menores de cinco ańos y mujeres embarazadas. diff --git a/src/main/resources/messages_vi.properties b/src/main/resources/messages_vi.properties index 6d5705130..2fa16c485 100644 --- a/src/main/resources/messages_vi.properties +++ b/src/main/resources/messages_vi.properties @@ -1,229 +1,1061 @@ # Overrides -general.inputs.continue=Ti\u1EBFp t\u1EE5c -general.go-back=Quay l\u1EA1i -general.files.add-your-files=Th\u00EAm c\u00E1c t\u1EADp tin -general.files.file-added.one=\u0110\u00E3 th\u00EAm 1 t\u1EADp tin (t\u1ED1i \u0111a {0}) -general.files.file-added.other=\u0110\u00E3 th\u00EAm {0} t\u1EADp tin (t\u1ED1i \u0111a {1}) -general.files.confirm-delete=B\u1EA1n s\u1EAFp x\u00F3a t\u1EC7p c\u00F3 t\u00EAn {0}.\u00A0 \u0110i\u1EC1u \u0111\u00F3 c\u00F3 \u1ED5n kh\u00F4ng? -general.files.uploaded-documents=T\u00E0i li\u1EC7u \u0111\u00E3 t\u1EA3i l\u00EAn -general.delete=X\u00F3a b\u1ECF -general.cancel=H\u1EE7y b\u1ECF -general.remove=Di d\u1EDDi -general.optional=Kh\u00F4ng b\u1EAFt bu\u1ED9c. -error.error=L\u1ED7i -error.uh-oh=\u1ED2! -error.we-are-sorry=Ch\u00FAng t\u00F4i r\u1EA5t ti\u1EBFc, nh\u01B0ng \u0111\u00E3 c\u00F3 v\u1EA5n \u0111\u1EC1. Vui l\u00F2ng th\u1EED l\u1EA1i sau. -error.its-not-you-description=Ch\u00FAng t\u00F4i r\u1EA5t ti\u1EBFc, nh\u01B0ng \u0111\u00E3 c\u00F3 v\u1EA5n \u0111\u1EC1. Vui l\u00F2ng th\u1EED l\u1EA1i sau. -error.files.invalid-file-type=Ch\u00FAng t\u00F4i kh\u00F4ng th\u1EC3 t\u1EA3i l\u00EAn lo\u1EA1i t\u1EADp tin n\u00E0y. Vui l\u00F2ng th\u1EED m\u1ED9t t\u1EADp tin kh\u00E1c k\u1EBFt th\u00FAc b\u1EB1ng m\u1ED9t trong c\u00E1c \u0111u\u00F4i sau \u0111\u00E2y: -error.forbidden=Qu\u00FD v\u1ECB kh\u00F4ng \u0111\u01B0\u1EE3c ph\u00E9p truy c\u1EADp t\u00E0i nguy\u00EAn n\u00E0y. -upload-documents.error-invalid-file-type=Ch\u00FAng t\u00F4i kh\u00F4ng th\u1EC3 t\u1EA3i l\u00EAn lo\u1EA1i t\u1EADp tin n\u00E0y. Vui l\u00F2ng th\u1EED m\u1ED9t t\u1EADp tin kh\u00E1c k\u1EBFt th\u00FAc b\u1EB1ng m\u1ED9t trong c\u00E1c \u0111u\u00F4i sau \u0111\u00E2y: -upload-documents.this-file-is-too-large=T\u1EADp tin n\u00E0y qu\u00E1 l\u1EDBn v\u00E0 kh\u00F4ng th\u1EC3 t\u1EA3i l\u00EAn (k\u00EDch th\u01B0\u1EDBc t\u1ED1i \u0111a: {0} MB) -upload-documents.error-maximum-number-of-files=Qu\u00FD v\u1ECB \u0111\u00E3 t\u1EA3i l\u00EAn s\u1ED1 t\u1EADp tin t\u1ED1i \u0111a. Qu\u00FD v\u1ECB s\u1EBD c\u00F3 c\u01A1 h\u1ED9i chia s\u1EBB nhi\u1EC1u h\u01A1n v\u1EDBi ng\u01B0\u1EDDi ph\u1EE5 tr\u00E1ch h\u1ED3 s\u01A1 sau n\u00E0y. - -demo.banner-text=Trang web n\u00E0y ch\u1EC9 \u0111\u1EC3 l\u00E0m v\u00ED d\u1EE5 +general.inputs.continue=Ti\u1ebfp t\u1ee5c +general.go-back=Quay l\u1ea1i +general.back=Quay l\u1ea1i +general.inputs.yes=\u0110úng +general.inputs.no=Không +general.files.add-your-files=Thęm các t\u1eadp tin +general.files.file-added.one=\u0110ă thęm 1 t\u1eadp tin (t\u1ed1i \u0111a {0}) +general.files.file-added.other=\u0110ă thęm {0} t\u1eadp tin (t\u1ed1i \u0111a {1}) +general.files.confirm-delete=B\u1ea1n s\u1eafp xóa t\u1ec7p có tęn {0}.  \u0110i\u1ec1u \u0111ó có \u1ed5n không? +general.missing-info=Có \u0111i\u1ec1u gě \u0111ó không \u0111úng. Vui lňng nh\u1eadp l\u1ea1i thông tin c\u1ee7a quý v\u1ecb. +general.files.uploaded-documents=Tŕi li\u1ec7u \u0111ă t\u1ea3i lęn +general.edit=ch\u1ec9nh s\u1eeda +general.delete=Xóa b\u1ecf +general.cancel=H\u1ee7y b\u1ecf +general.remove=Di d\u1eddi +general.optional=Không b\u1eaft bu\u1ed9c. +general.check-all-that-apply=\u0110ánh d\u1ea5u t\u1ea5t c\u1ea3 nh\u1eefng gě áp d\u1ee5ng. +general.you=(B\u1ea1n) +general.none-of-the-above=Không có \u0111áp án nŕo nh\u01b0 tręn +error.error=L\u1ed7i +error.uh-oh=\u1ed2! +error.we-are-sorry=Chúng tôi r\u1ea5t ti\u1ebfc, nh\u01b0ng \u0111ă có v\u1ea5n \u0111\u1ec1. Vui lňng th\u1eed l\u1ea1i sau. +error.its-not-you-description=Chúng tôi r\u1ea5t ti\u1ebfc, nh\u01b0ng \u0111ă có v\u1ea5n \u0111\u1ec1. Vui lňng th\u1eed l\u1ea1i sau. +error.files.invalid-file-type=Chúng tôi không th\u1ec3 t\u1ea3i lęn lo\u1ea1i t\u1eadp tin nŕy. Vui lňng th\u1eed m\u1ed9t t\u1eadp tin khác k\u1ebft thúc b\u1eb1ng m\u1ed9t trong các \u0111uôi sau \u0111ây: +error.forbidden=Quý v\u1ecb không \u0111\u01b0\u1ee3c phép truy c\u1eadp tŕi nguyęn nŕy. +upload-documents.error-invalid-file-type=Chúng tôi không th\u1ec3 t\u1ea3i lęn lo\u1ea1i t\u1eadp tin nŕy. Vui lňng th\u1eed m\u1ed9t t\u1eadp tin khác k\u1ebft thúc b\u1eb1ng m\u1ed9t trong các \u0111uôi sau \u0111ây: +upload-documents.this-file-is-too-large=T\u1eadp tin nŕy quá l\u1edbn vŕ không th\u1ec3 t\u1ea3i lęn (kích th\u01b0\u1edbc t\u1ed1i \u0111a: {0} MB) +upload-documents.error-maximum-number-of-files=Quý v\u1ecb \u0111ă t\u1ea3i lęn s\u1ed1 t\u1eadp tin t\u1ed1i \u0111a. Quý v\u1ecb s\u1ebd có c\u01a1 h\u1ed9i chia s\u1ebb nhi\u1ec1u h\u01a1n v\u1edbi ng\u01b0\u1eddi ph\u1ee5 trách h\u1ed3 s\u01a1 sau nŕy. + +demo.banner-text=Trang web nŕy ch\u1ec9 \u0111\u1ec3 lŕm ví d\u1ee5 language-preferences.button=Phi\u00EAn d\u1ECBch language-preferences.english=English -language-preferences.spanish=Espa\u00F1ol -language-preferences.vietnamese=Ti\u1EBFng Vi\u1EC7t - -index.title=C\u00F4ng C\u1EE5 T\u1EA3i L\u00EAn T\u00E0i Li\u1EC7u c\u1EE7a Louisiana -index.header=D\u1EC5 d\u00E0ng t\u1EA3i c\u00E1c t\u00E0i li\u1EC7u v\u1EC1 quy\u1EC1n l\u1EE3i c\u1EE7a qu\u00FD v\u1ECB l\u00EAn m\u1EA1ng. -index.louisiana-partner=\u0110\u1ED1i t\u00E1c ch\u00EDnh th\u1EE9c c\u1EE7a Ti\u1EC3u Bang Louisiana. -index.upload-description=T\u1EA3i t\u00E0i li\u1EC7u l\u00EAn b\u1EB1ng \u0111i\u1EC7n tho\u1EA1i ho\u1EB7c m\u00E1y t\u00EDnh trong 5 ph\u00FAt tr\u1EDF xu\u1ED1ng. -index.upload-documents-primary=T\u1EA3i l\u00EAn t\u00E0i li\u1EC7u -index.recommended-documents=T\u00E0i li\u1EC7u \u0111\u1EC1 ngh\u1ECB: -index.website-description=Trang web n\u00E0y l\u00E0 m\u1ED9t c\u00F4ng c\u1EE5 h\u1ED7 tr\u1EE3 l\u00E0m \u0111\u01A1n \u0111\u01B0\u1EE3c ph\u00E9p c\u1EE7a Ti\u1EC3u Bang Louisiana. +language-preferences.spanish=Espańol +language-preferences.vietnamese=Ti\u1ebfng Vi\u1ec7t + +index.title=Công C\u1ee5 T\u1ea3i Lęn Tŕi Li\u1ec7u c\u1ee7a Louisiana +index.header=D\u1ec5 dŕng t\u1ea3i các tŕi li\u1ec7u v\u1ec1 quy\u1ec1n l\u1ee3i c\u1ee7a quý v\u1ecb lęn m\u1ea1ng. +index.louisiana-partner=\u0110\u1ed1i tác chính th\u1ee9c c\u1ee7a Ti\u1ec3u Bang Louisiana. +index.upload-description=T\u1ea3i tŕi li\u1ec7u lęn b\u1eb1ng \u0111i\u1ec7n tho\u1ea1i ho\u1eb7c máy tính trong 5 phút tr\u1edf xu\u1ed1ng. +index.upload-documents-primary=T\u1ea3i lęn tŕi li\u1ec7u +index.recommended-documents=Tŕi li\u1ec7u \u0111\u1ec1 ngh\u1ecb: +index.website-description=Trang web nŕy lŕ m\u1ed9t công c\u1ee5 h\u1ed7 tr\u1ee3 lŕm \u0111\u01a1n \u0111\u01b0\u1ee3c phép c\u1ee7a Ti\u1ec3u Bang Louisiana. index.upload-documents-primary.link=/flow/laDocUpload/clientInfo?lang=vi -index.safe-and-secure=An to\u00E0n v\u00E0 b\u1EA3o m\u1EADt +index.safe-and-secure=An toŕn vŕ b\u1ea3o m\u1eadt index.upload-documents-second=Upload documents index.upload-documents-second.link=/flow/laDocUpload/clientInfo?lang=en index.upload-documents-third=Subir documentos index.upload-documents-third.link=/flow/laDocUpload/clientInfo?lang=es -index.this-tool=C\u00F4ng c\u1EE5 t\u1EA3i l\u00EAn t\u00E0i li\u1EC7u n\u00E0y c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng cho: -index.identity=Gi\u1EA5y t\u1EDD t\u00F9y th\u00E2n -index.identity-examples=Gi\u1EA5y t\u1EDD t\u00F9y th\u00E2n c\u00F3 h\u00ECnh do ch\u00EDnh ph\u1EE7 c\u1EA5p nh\u01B0 gi\u1EA5y ph\u00E9p l\u00E1i xe, th\u1EBB c\u0103n c\u01B0\u1EDBc, h\u1ED9 chi\u1EBFu ho\u1EB7c th\u1EBB An Sinh X\u00E3 H\u1ED9i. -index.immigration-status=\u0110\u1ED1i v\u1EDBi nh\u1EEFng ng\u01B0\u1EDDi kh\u00F4ng ph\u1EA3i l\u00E0 c\u00F4ng d\u00E2n: Gi\u1EA5y t\u1EDD ch\u1EE9ng minh t\u00ECnh tr\u1EA1ng nh\u1EADp c\u01B0 -index.immigration-status-examples=M\u1ED9t gi\u1EA5y t\u1EDD do ch\u00EDnh ph\u1EE7 c\u1EA5p nh\u01B0 Th\u1ECB Th\u1EF1c, gi\u1EA5y ph\u00E9p l\u00E0m vi\u1EC7c, ho\u1EB7c Th\u1EBB Xanh. -index.income=Ch\u1EE9ng minh thu nh\u1EADp -index.income-examples=Gi\u1EA5y t\u1EDD thu\u1EBF t\u1EEB n\u0103m 2021 ho\u1EB7c 2022 (ch\u1EB3ng h\u1EA1n nh\u01B0 M\u1EABu \u0110\u01A1n 1040) ho\u1EB7c gi\u1EA5y t\u1EDD ti\u1EC1n l\u01B0\u01A1ng (ch\u1EB3ng h\u1EA1n nh\u01B0 bi\u00EAn nh\u1EADn ti\u1EC1n l\u01B0\u01A1ng, m\u1EABu \u0111\u01A1n W-2) \u0111\u1ED1i v\u1EDBi t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi tr\u01B0\u1EDFng th\u00E0nh c\u00F3 thu nh\u1EADp trong h\u1ED9 gia \u0111\u00ECnh. -index.expenses=Gi\u1EA5y t\u1EDD ch\u1EE9ng minh s\u1ED1 ti\u1EC1n qu\u00FD v\u1ECB chi ti\u00EAu cho c\u00E1c m\u1EB7t h\u00E0ng ho\u1EB7c d\u1ECBch v\u1EE5 nh\u1EA5t \u0111\u1ECBnh -index.expenses-examples=Ti\u1EC1n thu\u00EA nh\u00E0 ho\u1EB7c vay th\u1EBF ch\u1EA5p, h\u00F3a \u0111\u01A1n d\u1ECBch v\u1EE5 ti\u1EC7n \u00EDch, ch\u0103m s\u00F3c tr\u1EBB, ho\u1EB7c y t\u1EBF. -index.immunization-records=\u0110\u1ED1i v\u1EDBi \u0111\u01A1n \u0111\u0103ng k\u00FD FITAP: Gi\u1EA5y t\u1EDD ch\u1EE9ng minh ti\u00EAm ch\u1EE7ng -index.immunization-record-examples=B\u1EA3n photocopy h\u1ED3 s\u01A1 ti\u00EAm ch\u1EE7ng t\u1EEB nh\u00E0 cung c\u1EA5p d\u1ECBch v\u1EE5 ch\u0103m s\u00F3c s\u1EE9c kh\u1ECFe ho\u1EB7c ph\u00F2ng kh\u00E1m c\u00F3 gi\u1EA5y ph\u00E9p. -index.non-work-income=B\u1EB1ng ch\u1EE9ng v\u1EC1 thu nh\u1EADp ngo\u00E0i c\u00F4ng vi\u1EC7c -index.non-work-income-examples=Th\u01B0 ch\u1EE9ng minh thu nh\u1EADp \u0111\u1ED1i v\u1EDBi thu nh\u1EADp ngo\u00E0i c\u00F4ng vi\u1EC7c nh\u01B0 An sinh x\u00E3 h\u1ED9i ho\u1EB7c Thu nh\u1EADp An sinh B\u1ED5 sung (SSI) cho t\u1EA5t c\u1EA3 ng\u01B0\u1EDDi l\u1EDBn trong h\u1ED9 gia \u0111\u00ECnh c\u00F3 thu nh\u1EADp ngo\u00E0i c\u00F4ng vi\u1EC7c -index.food-programs=C\u00E1c ch\u01B0\u01A1ng tr\u00ECnh tr\u1EE3 c\u1EA5p th\u1EF1c ph\u1EA9m -index.food-programs-l1=SNAP (Ch\u01B0\u01A1ng Tri\u0300nh H\u1ED7 Tr\u1EE3 Dinh D\u01B0\u1EE1ng B\u00F4\u0309 Sung tr\u01B0\u1EDBc \u0111\u00E2y l\u00E0 Tem Phi\u1EBFu Th\u1EF1c Ph\u1EA9m) -index.food-programs-l2=LaCAP (D\u1EF1 \u00E1n Louisiana Combined Application Project) -index.cash-programs=C\u00E1c ch\u01B0\u01A1ng tr\u00ECnh h\u1ED7 tr\u1EE3 ti\u1EC1n m\u1EB7t -index.cash-programs-l1=FITAP (Ch\u01B0\u01A1ng Tr\u00ECnh Tr\u1EE3 C\u1EA5p T\u1EA1m Th\u1EDDi Family Independence) -index.cash-programs-l2=KCSP (Ch\u01B0\u01A1ng Tr\u00ECnh Tr\u1EE3 C\u1EA5p Ng\u01B0\u1EDDi Th\u00E2n Ch\u0103m S\u00F3c) -index.snap.description=SNAP (Ch\u01B0\u01A1ng Tr\u00ECnh H\u1ED7 Tr\u1EE3 Dinh D\u01B0\u1EE1ng B\u1ED5 Sung) gi\u00FAp qu\u00FD v\u1ECB v\u00E0 gia \u0111\u00ECnh c\u00F3 \u0111\u01B0\u1EE3c th\u1EF1c ph\u1EA9m m\u00ECnh c\u1EA7n. Qu\u00FD v\u1ECB s\u1EBD nh\u1EADn \u0111\u01B0\u1EE3c th\u1EBB EBT m\u00E0 qu\u00FD v\u1ECB c\u00F3 th\u1EC3 s\u1EED d\u1EE5ng nh\u01B0 th\u1EBB ghi n\u1EE3 \u0111\u1EC3 mua th\u1EF1c ph\u1EA9m t\u1EA1i h\u1EA7u h\u1EBFt c\u00E1c c\u1EEDa h\u00E0ng v\u00E0 ch\u1EE3 n\u00F4ng s\u1EA3n. -index.lacap.description=LaCAP gi\u00FAp nh\u1EEFng ng\u01B0\u1EDDi d\u00E2n Louisiana n\u00E0o t\u1EEB 60 tu\u1ED5i tr\u1EDF l\u00EAn, v\u00E0 nh\u1EADn Thu Nh\u1EADp An Sinh B\u1ED5 Sung (SSI), c\u00F3 \u0111\u01B0\u1EE3c th\u1EF1c ph\u1EA9m h\u1ECD c\u1EA7n. N\u00F3 l\u00E0 m\u1ED9t phi\u00EAn b\u1EA3n \u0111\u01A1n gi\u1EA3n h\u00F3a c\u1EE7a SNAP. -index.fitap.description=FITAP (Ch\u01B0\u01A1ng Tr\u00ECnh Tr\u1EE3 C\u1EA5p T\u1EA1m Th\u1EDDi Family Independance) cung c\u1EA5p h\u1ED7 tr\u1EE3 ti\u1EC1n m\u1EB7t \u0111\u1EC3 gi\u00FAp m\u1ECDi ng\u01B0\u1EDDi \u0111\u00E1p \u1EE9ng c\u00E1c nhu c\u1EA7u c\u01A1 b\u1EA3n c\u1EE7a h\u1ECD cho \u0111\u1EBFn khi h\u1ECD c\u00F3 th\u1EC3 t\u1EF1 s\u1ED1ng. -index.kscp.description=KCSP (Ch\u01B0\u01A1ng Tr\u00ECnh Tr\u1EE3 C\u1EA5p Ng\u01B0\u1EDDi Th\u00E2n Ch\u0103m S\u00F3c) c\u0169ng cung c\u1EA5p h\u1ED7 tr\u1EE3 ti\u1EC1n m\u1EB7t cho nh\u1EEFng ng\u01B0\u1EDDi th\u00E2n n\u00E0o \u0111ang ch\u0103m s\u00F3c nh\u1EEFng tr\u1EBB kh\u00F4ng th\u1EC3 s\u1ED1ng v\u1EDBi cha m\u1EB9 ch\u00FAng. Nh\u1EEFng ng\u01B0\u1EDDi th\u00E2n \u0111\u1EE7 \u0111i\u1EC1u ki\u1EC7n c\u00F3 th\u1EC3 nh\u1EADn \u0111\u01B0\u1EE3c c\u00E1c kho\u1EA3n thanh to\u00E1n b\u1EB1ng ti\u1EC1n m\u1EB7t h\u00E0ng th\u00E1ng \u0111\u1EC3 gi\u00FAp trang tr\u1EA3i chi ph\u00ED ch\u0103m s\u00F3c tr\u1EBB, ch\u1EB3ng h\u1EA1n nh\u01B0 nh\u00E0 \u1EDF, th\u1EF1c ph\u1EA9m, qu\u1EA7n \u00E1o, v\u00E0 c\u00E1c nhu c\u1EA7u c\u01A1 b\u1EA3n kh\u00E1c. -index.looking-for-help=Qu\u00FD v\u1ECB \u0111ang t\u00ECm ki\u1EBFm s\u1EF1 h\u1ED7 tr\u1EE3 v\u1EDBi c\u00E1c ch\u01B0\u01A1ng tr\u00ECnh kh\u00E1c? -index.visit-dcfs-website=Truy c\u1EADp trang web c\u1EE7a S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh \u0111\u1EC3 bi\u1EBFt th\u00EAm th\u00F4ng tin. - -footer.this-benefits-application-is=C\u00F4ng c\u1EE5 t\u1EA3i l\u00EAn t\u00E0i li\u1EC7u l\u00E0 m\u1ED9t d\u1ECBch v\u1EE5 do Code for America x\u00E2y d\u1EF1ng v\u1EDBi s\u1EF1 h\u1EE3p t\u00E1c c\u1EE7a S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana, thay m\u1EB7t cho ng\u01B0\u1EDDi d\u00E2n Louisiana. -footer.privacy=Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 -privacy.title=Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 -privacy.sub-title=BenefitsLouisiana l\u00E0 m\u1ED9t d\u1ECBch v\u1EE5 \u0111\u01B0\u1EE3c Code for America Labs, Inc. ("Code for America," "ch\u00FAng t\u00F4i," "c\u1EE7a ch\u00FAng t\u00F4i") l\u1EADp ra \u0111\u1EC3: -privacy.info.li1=Gi\u00FAp qu\u00FD v\u1ECB nh\u1EADn v\u00E0 duy tr\u00EC c\u00E1c kho\u1EA3n ph\u00FAc l\u1EE3i \u1EDF Louisiana ("Ph\u00FAc L\u1EE3i Louisiana" \u0111\u1EC1 c\u1EADp \u0111\u1EBFn t\u1EA5t c\u1EA3 c\u00E1c ch\u01B0\u01A1ng tr\u00ECnh nh\u01B0 th\u1EBF). -privacy.info.li2=\u0110\u1EC1 ngh\u1ECB c\u00E1c d\u1ECBch v\u1EE5 ho\u1EB7c ch\u01B0\u01A1ng tr\u00ECnh h\u1ED7 tr\u1EE3 kh\u00E1c c\u00F3 th\u1EC3 h\u1EEFu \u00EDch cho qu\u00FD v\u1ECB. Ch\u00FAng t\u00F4i s\u1EBD ch\u1EC9 s\u1EED d\u1EE5ng th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB \u0111\u1EC3 gi\u1EDBi thi\u1EC7u c\u00E1c d\u1ECBch v\u1EE5 ho\u1EB7c ch\u01B0\u01A1ng tr\u00ECnh \u0111\u00F3 cho qu\u00FD v\u1ECB nh\u01B0 m\u1ED9t l\u1EF1a ch\u1ECDn. Tuy nhi\u00EAn, ch\u00FAng t\u00F4i s\u1EBD ch\u1EC9 g\u1EEDi th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB \u0111\u1EBFn c\u00E1c d\u1ECBch v\u1EE5 ho\u1EB7c ch\u01B0\u01A1ng tr\u00ECnh kh\u00E1c khi \u0111\u01B0\u1EE3c qu\u00FD v\u1ECB cho ph\u00E9p. -privacy.info.description.p1=Ch\u00EDnh S\u00E1ch V\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y gi\u1EA3i th\u00EDch c\u00E1ch ch\u00FAng t\u00F4i thu th\u1EADp, s\u1EED d\u1EE5ng, chia s\u1EBB v\u00E0 b\u1EA3o v\u1EC7 th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB. Qu\u00FD v\u1ECB \u0111\u1ED3ng \u00FD v\u1EDBi c\u00E1c \u0111i\u1EC1u kho\u1EA3n trong Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y b\u1EB1ng vi\u1EC7c s\u1EED d\u1EE5ng c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i, v\u00E0 Th\u00F4ng B\u00E1o v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y \u0111\u01B0\u1EE3c \u00E1p d\u1EE5ng b\u1EA5t k\u1EC3 lo\u1EA1i thi\u1EBFt b\u1ECB qu\u00FD v\u1ECB s\u1EED d\u1EE5ng \u0111\u1EC3 truy c\u1EADp c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i l\u00E0 g\u00EC. -privacy.info.description.p2=N\u1EBFu qu\u00FD v\u1ECB c\u00F3 b\u1EA5t k\u1EF3 th\u1EAFc m\u1EAFc ho\u1EB7c quan ng\u1EA1i n\u00E0o v\u1EC1 Th\u00F4ng B\u00E1o v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y, vui l\u00F2ng li\u00EAn h\u1EC7 v\u1EDBi ch\u00FAng t\u00F4i qua help@benefitslouisiana.org -privacy.information-we-collect.title=Th\u00F4ng tin m\u00E0 ch\u00FAng t\u00F4i thu th\u1EADp -privacy.information-we-collect.p1=Ch\u00FAng t\u00F4i tu\u00E2n th\u1EE7 nguy\u00EAn t\u1EAFc Gi\u1EA3m Thi\u1EC3u D\u1EEF Li\u1EC7u trong vi\u1EC7c thu th\u1EADp v\u00E0 s\u1EED d\u1EE5ng th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB. Ch\u00FAng t\u00F4i c\u00F3 th\u1EC3 thu th\u1EADp th\u00F4ng tin sau \u0111\u00E2y v\u1EC1 qu\u00FD v\u1ECB, nh\u1EEFng ng\u01B0\u1EDDi ph\u1EE5 thu\u1ED9c, ho\u1EB7c c\u00E1c th\u00E0nh vi\u00EAn trong h\u1ED9 gia \u0111\u00ECnh qu\u00FD v\u1ECB: -privacy.information-we-collect.li1=T\u1EA5t c\u1EA3 th\u00F4ng tin qu\u00FD v\u1ECB cung c\u1EA5p th\u00F4ng qua Trang Web, bao g\u1ED3m t\u00EAn, \u0111\u1ECBa ch\u1EC9, th\u00F4ng tin li\u00EAn h\u1EC7, s\u1ED1 an sinh x\u00E3 h\u1ED9i, th\u00F4ng tin t\u00E0i ch\u00EDnh, v\u00E0 th\u00F4ng tin t\u01B0\u01A1ng t\u1EF1 \u0111\u1ED1i v\u1EDBi c\u00E1c c\u00E1 nh\u00E2n kh\u00E1c m\u00E0 qu\u00FD v\u1ECB cung c\u1EA5p th\u00F4ng tin \u0111\u1EC3 \u0111\u01B0a v\u00E0o \u0111\u01A1n xin Ph\u00FAc L\u1EE3i Louisiana c\u1EE7a qu\u00FD v\u1ECB -privacy.information-we-collect.li2=B\u1EA3n sao c\u1EE7a b\u1EA5t k\u1EF3 t\u00E0i li\u1EC7u n\u00E0o qu\u00FD v\u1ECB t\u1EA3i l\u00EAn, nh\u01B0 h\u00ECnh ch\u1EE5p gi\u1EA5y ph\u00E9p l\u00E1i xe, bi\u00EAn nh\u1EADn ti\u1EC1n l\u01B0\u01A1ng, gi\u1EA5y khai sinh, bi\u00EAn nh\u1EADn ti\u1EC1n thu\u00EA nh\u00E0, v.v. -privacy.information-we-collect.li3=B\u1EA5t k\u1EF3 tin nh\u1EAFn n\u00E0o qu\u00FD v\u1ECB g\u1EEDi cho ch\u00FAng t\u00F4i qua SMS, email, ho\u1EB7c live chat -privacy.information-we-collect.li4=B\u1EA5t k\u1EF3 c\u00E2u tr\u1EA3 l\u1EDDi ho\u1EB7c nh\u1EADn x\u00E9t n\u00E0o qu\u00FD v\u1ECB cung c\u1EA5p \u0111\u1EC3 tr\u1EA3 l\u1EDDi b\u1EA3n kh\u1EA3o s\u00E1t m\u00E0 ch\u00FAng t\u00F4i g\u1EEDi cho qu\u00FD v\u1ECB -privacy.information-we-collect.p2=Ngo\u00E0i th\u00F4ng tin qu\u00FD v\u1ECB cung c\u1EA5p, ch\u00FAng t\u00F4i t\u1EF1 \u0111\u1ED9ng thu th\u1EADp v\u00E0 l\u01B0u tr\u1EEF th\u00F4ng tin v\u1EC1 phi\u00EAn truy c\u1EADp c\u1EE7a qu\u00FD v\u1ECB v\u00E0o Trang Web: -privacy.information-we-collect.p3=Ch\u00FAng t\u00F4i s\u1EBD kh\u00F4ng thu th\u1EADp th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB n\u1EBFu kh\u00F4ng c\u00F3 s\u1EF1 \u0111\u1ED3ng \u00FD c\u1EE7a qu\u00FD v\u1ECB, tr\u1EEB m\u1ED9t s\u1ED1 tr\u01B0\u1EDDng h\u1EE3p h\u1EA1n ch\u1EBF, nh\u01B0 \u0111\u01B0\u1EE3c m\u00F4 t\u1EA3 trong ch\u00EDnh s\u00E1ch n\u00E0y. -privacy.information-we-collect.ul2.li1=Thi\u1EBFt b\u1ECB t\u1EEB \u0111\u00F3 qu\u00FD v\u1ECB truy c\u1EADp Internet -privacy.information-we-collect.ul2.li2=\u0110\u1ECBa ch\u1EC9 IP (\u0111\u1ECBa ch\u1EC9 IP hay \u0111\u1ECBa ch\u1EC9 giao th\u1EE9c internet l\u00E0 m\u1ED9t con s\u1ED1 \u0111\u01B0\u1EE3c c\u1EA5p t\u1EF1 \u0111\u1ED9ng cho m\u00E1y t\u00EDnh \u0111\u01B0\u1EE3c k\u1EBFt n\u1ED1i v\u1EDBi Web) -privacy.information-we-collect.ul2.li3=H\u1EC7 \u0111i\u1EC1u h\u00E0nh tr\u00EAn m\u00E1y t\u00EDnh c\u1EE7a qu\u00FD v\u1ECB v\u00E0 th\u00F4ng tin v\u1EC1 tr\u00ECnh duy\u1EC7t qu\u00FD v\u1ECB \u0111\u00E3 s\u1EED d\u1EE5ng khi truy c\u1EADp trang web -privacy.information-we-collect.ul2.li4=Ng\u00E0y v\u00E0 gi\u1EDD truy c\u1EADp c\u1EE7a qu\u00FD v\u1ECB -privacy.information-we-collect.ul2.li5=C\u00E1c trang qu\u00FD v\u1ECB \u0111\u00E3 truy c\u1EADp -privacy.information-we-collect.ul2.li6=\u0110\u1ECBa ch\u1EC9 c\u1EE7a trang web \u0111\u00E3 k\u1EBFt n\u1ED1i qu\u00FD v\u1ECB v\u1EDBi Trang Web (ch\u1EB3ng h\u1EA1n nh\u01B0 google.com ho\u1EB7c bing.com) - -privacy.how-we-use.title=Ch\u00FAng t\u00F4i s\u1EED d\u1EE5ng th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB nh\u01B0 th\u1EBF n\u00E0o -privacy.how-we-use.content.p1=Ch\u00FAng t\u00F4i s\u1EED d\u1EE5ng th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB cho m\u1EE5c \u0111\u00EDch kinh doanh v\u00E0 l\u1EE3i \u00EDch h\u1EE3p ph\u00E1p c\u1EE7a ch\u00FAng t\u00F4i nh\u01B0: -privacy.how-we-use.content.li1=\u0110\u1EC3 gi\u00FAp qu\u00FD v\u1ECB nh\u1EADn v\u00E0 duy tr\u00EC c\u00E1c kho\u1EA3n ph\u00FAc l\u1EE3i \u1EDF Louisiana, bao g\u1ED3m: -privacy.how-we-use.content.li1.sub1=\u0110\u1EC3 \u0111i\u1EC1n c\u00E1c m\u1EABu \u0111\u01A1n c\u1EA7n thi\u1EBFt cho vi\u1EC7c s\u1EED d\u1EE5ng D\u1ECBch V\u1EE5 -privacy.how-we-use.content.li1.sub2=\u0110\u1EC3 g\u1EEDi t\u00E0i li\u1EC7u v\u00E0 th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB cho S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana -privacy.how-we-use.content.li1.sub3=\u0110\u1EC3 truy c\u1EADp m\u1ED9t t\u00E0i kho\u1EA3n \u0111\u01B0\u1EE3c li\u00EAn k\u1EBFt v\u1EDBi h\u1ED3 s\u01A1 c\u1EE7a qu\u00FD v\u1ECB trong h\u1EC7 th\u1ED1ng tr\u1EF1c tuy\u1EBFn c\u1EE7a S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana -privacy.how-we-use.content.li1.sub4=\u0110\u1EC3 g\u1EEDi cho qu\u00FD v\u1ECB nh\u1EEFng th\u00F4ng b\u00E1o li\u00EAn quan \u0111\u1EBFn \u0111\u01A1n \u0111\u0103ng k\u00FD, th\u00F4ng tin c\u1EADp nh\u1EADt, v\u00E0 gia h\u1EA1n ph\u00FAc l\u1EE3i c\u1EE7a qu\u00FD v\u1ECB - -privacy.how-we-collect.title=Ch\u00FAng t\u00F4i thu th\u1EADp th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB nh\u01B0 th\u1EBF n\u00E0o -privacy.how-we-collect.p1=Ch\u00FAng t\u00F4i thu th\u1EADp th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB t\u1EEB nhi\u1EC1u ngu\u1ED3n kh\u00E1c nhau, ch\u1EB3ng h\u1EA1n nh\u01B0 khi qu\u00FD v\u1ECB ho\u1EB7c th\u00E0nh vi\u00EAn h\u1ED9 gia \u0111\u00ECnh c\u1EE7a qu\u00FD v\u1ECB: -privacy.how-we-collect.li1=Truy c\u1EADp Trang Web c\u1EE7a ch\u00FAng t\u00F4i, \u0111i\u1EC1n v\u00E0o c\u00E1c m\u1EABu \u0111\u01A1n tr\u00EAn Trang Web c\u1EE7a ch\u00FAng t\u00F4i, ch\u1ECDn nh\u1EADn email ho\u1EB7c tin nh\u1EAFn v\u0103n b\u1EA3n, ho\u1EB7c s\u1EED d\u1EE5ng c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i -privacy.how-we-collect.li2=Cung c\u1EA5p cho ch\u00FAng t\u00F4i c\u00E1c t\u00E0i li\u1EC7u \u0111\u1EC3 s\u1EED d\u1EE5ng c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i -privacy.how-we-collect.li3=Li\u00EAn l\u1EA1c v\u1EDBi ch\u00FAng t\u00F4i (v\u00ED d\u1EE5 nh\u01B0 qua email, chat, m\u1EA1ng x\u00E3 h\u1ED9i, ho\u1EB7c c\u00E1ch kh\u00E1c) -privacy.how-we-collect.p2=Ch\u00FAng t\u00F4i c\u0169ng c\u00F3 th\u1EC3 thu th\u1EADp th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB t\u1EEB c\u00E1c b\u00EAn th\u1EE9 ba nh\u01B0: -privacy.how-we-collect.li4=C\u00E1c c\u01A1 quan ti\u1EC3u bang Louisiana ho\u1EB7c c\u00E1c c\u01A1 quan ch\u00EDnh ph\u1EE7 kh\u00E1c li\u00EAn quan \u0111\u1EBFn c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i - - -privacy.toc=M\u1EE5c L\u1EE5c -privacy.overview.title=Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 -privacy.info=Ch\u00FAng t\u00F4i s\u1EED d\u1EE5ng, chia s\u1EBB v\u00E0 b\u1EA3o v\u1EC7 th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB nh\u01B0 th\u1EBF n\u00E0o. -privacy.how-we-use.content.li2=\u0110\u1EC3 cung c\u1EA5p s\u1EF1 h\u1ED7 tr\u1EE3 cho qu\u00FD v\u1ECB trong quy tr\u00ECnh v\u00E0 li\u00EAn l\u1EA1c v\u1EDBi qu\u00FD v\u1ECB -privacy.how-we-use.content.li3=\u0110\u1EC3 theo d\u00F5i v\u00E0 hi\u1EC3u \u0111\u01B0\u1EE3c Trang Web v\u00E0 c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i \u0111\u01B0\u1EE3c s\u1EED d\u1EE5ng nh\u01B0 th\u1EBF n\u00E0o -privacy.how-we-use.content.li4=\u0110\u1EC3 c\u1EA3i thi\u1EC7n ch\u1EA5t l\u01B0\u1EE3ng ho\u1EB7c ph\u1EA1m vi c\u1EE7a Trang Web ho\u1EB7c c\u00E1c D\u1ECBch V\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i -privacy.how-we-use.content.li5=\u0110\u1EC3 \u0111\u1EC1 ngh\u1ECB c\u00E1c d\u1ECBch v\u1EE5 ho\u1EB7c ch\u01B0\u01A1ng tr\u00ECnh h\u1ED7 tr\u1EE3 kh\u00E1c c\u00F3 th\u1EC3 h\u1EEFu \u00EDch cho qu\u00FD v\u1ECB, n\u1EBFu qu\u00FD v\u1ECB ch\u1ECDn nh\u1EADn c\u00E1c th\u00F4ng b\u00E1o n\u00E0y -privacy.how-we-use.content.li6=Cho m\u1EE5c \u0111\u00EDch ph\u00E1t hi\u1EC7n, ng\u0103n ch\u1EB7n gian l\u1EADn, v\u00E0 an ninh -privacy.how-we-use.content.li7=\u0110\u1EC3 tu\u00E2n th\u1EE7 c\u00E1c y\u00EAu c\u1EA7u v\u00E0 ngh\u0129a v\u1EE5 ph\u00E1p l\u00FD -privacy.how-we-use.content.li8=\u0110\u1EC3 nghi\u00EAn c\u1EE9u -privacy.how-we-share-your-info.title=Ch\u00FAng t\u00F4i chia s\u1EBB th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB nh\u01B0 th\u1EBF n\u00E0o -privacy.how-we-share-your-info.p1=Ch\u00FAng t\u00F4i kh\u00F4ng b\u00E1n th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB. -privacy.how-we-share-your-info.p2=Ch\u00FAng t\u00F4i kh\u00F4ng chia s\u1EBB th\u00F4ng tin c\u00E1 nh\u00E2n v\u1EDBi b\u1EA5t k\u1EF3 b\u00EAn th\u1EE9 ba n\u00E0o tr\u1EEB tr\u01B0\u1EDDng h\u1EE3p \u0111\u01B0\u1EE3c quy \u0111\u1ECBnh trong Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y. Ch\u00FAng t\u00F4i c\u00F3 th\u1EC3 ti\u1EBFt l\u1ED9 th\u00F4ng tin cho c\u00E1c nh\u00E0 th\u1EA7u, \u0111\u1ED1i t\u00E1c, v\u00E0 c\u00E1c t\u1ED5 ch\u1EE9c li\u00EAn k\u1EBFt \u0111\u1EC3 cung c\u1EA5p c\u00E1c d\u1ECBch v\u1EE5 c\u1EE7a Trang Web. V\u00ED d\u1EE5 nh\u01B0, ch\u00FAng t\u00F4i c\u00F3 th\u1EC3 chia s\u1EBB th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB \u0111\u1EC3: -privacy.how-we-share-your-info.p3=Ch\u00FAng t\u00F4i y\u00EAu c\u1EA7u c\u00E1c b\u00EAn th\u1EE9 ba thay m\u1EB7t ch\u00FAng t\u00F4i b\u1EA3o m\u1EADt th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB v\u00E0 kh\u00F4ng cho ph\u00E9p c\u00E1c b\u00EAn th\u1EE9 ba n\u00E0y s\u1EED d\u1EE5ng ho\u1EB7c chia s\u1EBB th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB cho b\u1EA5t k\u1EF3 m\u1EE5c \u0111\u00EDch n\u00E0o kh\u00E1c ngo\u00E0i vi\u1EC7c cung c\u1EA5p d\u1ECBch v\u1EE5 thay m\u1EB7t ch\u00FAng t\u00F4i. -privacy.how-we-share-your-info.p4=Ch\u00FAng t\u00F4i c\u00F3 th\u1EC3 chia s\u1EBB th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB v\u1EDBi c\u00E1c b\u00EAn th\u1EE9 ba trong c\u00E1c tr\u01B0\u1EDDng h\u1EE3p c\u1EE5 th\u1EC3, ch\u1EB3ng h\u1EA1n nh\u01B0 khi lu\u1EADt ph\u00E1p y\u00EAu c\u1EA7u ho\u1EB7c vi\u1EC7c chia s\u1EBB s\u1EBD gi\u00FAp b\u1EA3o v\u1EC7 s\u1EF1 an to\u00E0n, t\u00E0i s\u1EA3n, ho\u1EB7c c\u00E1c quy\u1EC1n c\u1EE7a Code for America, nh\u1EEFng ng\u01B0\u1EDDi ch\u00FAng t\u00F4i ph\u1EE5c v\u1EE5, c\u00E1c b\u00EAn li\u00EAn k\u1EBFt c\u1EE7a ch\u00FAng t\u00F4i, ho\u1EB7c nh\u1EEFng ng\u01B0\u1EDDi kh\u00E1c. - -privacy.how-we-share-your-info.li1=S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana \u0111\u1EC3 cung c\u1EA5p v\u00E0 c\u1EA3i thi\u1EC7n c\u00E1c d\u1ECBch v\u1EE5. -privacy.how-we-share-your-info.li1.sub1=S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana c\u00F3 th\u1EC3 s\u1EED d\u1EE5ng c\u00E1c t\u00E0i li\u1EC7u n\u00E0y \u0111\u1EC3 x\u1EED l\u00FD \u0111\u01A1n \u0111\u0103ng k\u00FD tham gia c\u00E1c ch\u01B0\u01A1ng tr\u00ECnh ph\u00FAc l\u1EE3i do h\u1ECD qu\u1EA3n l\u00FD. -privacy.how-we-share-your-info.li2=C\u00E1c b\u00EAn th\u1EE9 ba \u0111\u1EC3 g\u1EEDi kh\u1EA3o s\u00E1t, c\u00E1c nh\u00F3m t\u1EADp trung, ho\u1EB7c cho c\u00E1c m\u1EE5c \u0111\u00EDch h\u00E0nh ch\u00EDnh, ph\u00E2n t\u00EDch, nghi\u00EAn c\u1EE9u, v\u00E0 ti\u1EBFp th\u1ECB kh\u00E1c. Nh\u1EEFng th\u00F4ng tin li\u00EAn l\u1EA1c c\u1EE7a b\u00EAn th\u1EE9 ba n\u00E0y l\u00E0 \u0111\u1EC3 c\u1EA3i thi\u1EC7n s\u1EA3n ph\u1EA9m, \u0111\u1EC3 t\u00ECm hi\u1EC3u v\u1EC1 tr\u1EA3i nghi\u1EC7m, v\u00E0 \u0111\u1EC3 c\u1EADp nh\u1EADt cho qu\u00FD v\u1ECB n\u1EBFu qu\u00FD v\u1ECB y\u00EAu c\u1EA7u th\u00F4ng tin c\u1EADp nh\u1EADt. -privacy.how-we-share-your-info.li3=C\u00E1c \u0111\u1ED1i t\u00E1c nghi\u00EAn c\u1EE9u b\u00EAn th\u1EE9 ba cho c\u00E1c m\u1EE5c \u0111\u00EDch h\u00E0nh ch\u00EDnh, ph\u00E2n t\u00EDch, v\u00E0 nghi\u00EAn c\u1EE9u. Nghi\u00EAn c\u1EE9u l\u00E0 \u0111\u1EC3 c\u1EA3i thi\u1EC7n s\u1EA3n ph\u1EA9m v\u00E0 \u0111\u1EC3 t\u00ECm hi\u1EC3u v\u1EC1 tr\u1EA3i nghi\u1EC7m. - -privacy.your-info.title=Nh\u1EEFng l\u1EF1a ch\u1ECDn c\u1EE7a qu\u00FD v\u1ECB li\u00EAn quan \u0111\u1EBFn th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB -privacy.your-info.p1=Ch\u00FAng t\u00F4i coi tr\u1ECDng v\u00E0 t\u00F4n tr\u1ECDng quy\u1EC1n ri\u00EAng t\u01B0 c\u1EE7a qu\u00FD v\u1ECB v\u00E0 cung c\u1EA5p cho qu\u00FD v\u1ECB c\u00E1c l\u1EF1a ch\u1ECDn v\u1EC1 c\u00E1ch ch\u00FAng t\u00F4i thu th\u1EADp, s\u1EED d\u1EE5ng, v\u00E0 chia s\u1EBB th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB. +index.this-tool=Công c\u1ee5 t\u1ea3i lęn tŕi li\u1ec7u nŕy có th\u1ec3 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng cho: +index.identity=Gi\u1ea5y t\u1edd tůy thân +index.identity-examples=Gi\u1ea5y t\u1edd tůy thân có hěnh do chính ph\u1ee7 c\u1ea5p nh\u01b0 gi\u1ea5y phép lái xe, th\u1ebb c\u0103n c\u01b0\u1edbc, h\u1ed9 chi\u1ebfu ho\u1eb7c th\u1ebb An Sinh Xă H\u1ed9i. +index.immigration-status=\u0110\u1ed1i v\u1edbi nh\u1eefng ng\u01b0\u1eddi không ph\u1ea3i lŕ công dân: Gi\u1ea5y t\u1edd ch\u1ee9ng minh těnh tr\u1ea1ng nh\u1eadp c\u01b0 +index.immigration-status-examples=M\u1ed9t gi\u1ea5y t\u1edd do chính ph\u1ee7 c\u1ea5p nh\u01b0 Th\u1ecb Th\u1ef1c, gi\u1ea5y phép lŕm vi\u1ec7c, ho\u1eb7c Th\u1ebb Xanh. +index.income=Ch\u1ee9ng minh thu nh\u1eadp +index.income-examples=Gi\u1ea5y t\u1edd thu\u1ebf t\u1eeb n\u0103m 2021 ho\u1eb7c 2022 (ch\u1eb3ng h\u1ea1n nh\u01b0 M\u1eabu \u0110\u01a1n 1040) ho\u1eb7c gi\u1ea5y t\u1edd ti\u1ec1n l\u01b0\u01a1ng (ch\u1eb3ng h\u1ea1n nh\u01b0 bięn nh\u1eadn ti\u1ec1n l\u01b0\u01a1ng, m\u1eabu \u0111\u01a1n W-2) \u0111\u1ed1i v\u1edbi t\u1ea5t c\u1ea3 ng\u01b0\u1eddi tr\u01b0\u1edfng thŕnh có thu nh\u1eadp trong h\u1ed9 gia \u0111ěnh. +index.expenses=Gi\u1ea5y t\u1edd ch\u1ee9ng minh s\u1ed1 ti\u1ec1n quý v\u1ecb chi tięu cho các m\u1eb7t hŕng ho\u1eb7c d\u1ecbch v\u1ee5 nh\u1ea5t \u0111\u1ecbnh +index.expenses-examples=Ti\u1ec1n thuę nhŕ ho\u1eb7c vay th\u1ebf ch\u1ea5p, hóa \u0111\u01a1n d\u1ecbch v\u1ee5 ti\u1ec7n ích, ch\u0103m sóc tr\u1ebb, ho\u1eb7c y t\u1ebf. +index.immunization-records=\u0110\u1ed1i v\u1edbi \u0111\u01a1n \u0111\u0103ng ký FITAP: Gi\u1ea5y t\u1edd ch\u1ee9ng minh tięm ch\u1ee7ng +index.immunization-record-examples=B\u1ea3n photocopy h\u1ed3 s\u01a1 tięm ch\u1ee7ng t\u1eeb nhŕ cung c\u1ea5p d\u1ecbch v\u1ee5 ch\u0103m sóc s\u1ee9c kh\u1ecfe ho\u1eb7c phňng khám có gi\u1ea5y phép. +index.non-work-income=B\u1eb1ng ch\u1ee9ng v\u1ec1 thu nh\u1eadp ngoŕi công vi\u1ec7c +index.non-work-income-examples=Th\u01b0 ch\u1ee9ng minh thu nh\u1eadp \u0111\u1ed1i v\u1edbi thu nh\u1eadp ngoŕi công vi\u1ec7c nh\u01b0 An sinh xă h\u1ed9i ho\u1eb7c Thu nh\u1eadp An sinh B\u1ed5 sung (SSI) cho t\u1ea5t c\u1ea3 ng\u01b0\u1eddi l\u1edbn trong h\u1ed9 gia \u0111ěnh có thu nh\u1eadp ngoŕi công vi\u1ec7c +index.food-programs=Các ch\u01b0\u01a1ng trěnh tr\u1ee3 c\u1ea5p th\u1ef1c ph\u1ea9m +index.food-programs-l1=SNAP (Ch\u01b0\u01a1ng Tri\u0300nh H\u1ed7 Tr\u1ee3 Dinh D\u01b0\u1ee1ng Bô\u0309 Sung tr\u01b0\u1edbc \u0111ây lŕ Tem Phi\u1ebfu Th\u1ef1c Ph\u1ea9m) +index.food-programs-l2=LaCAP (D\u1ef1 án Louisiana Combined Application Project) +index.cash-programs=Các ch\u01b0\u01a1ng trěnh h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t +index.cash-programs-l1=FITAP (Ch\u01b0\u01a1ng Trěnh Tr\u1ee3 C\u1ea5p T\u1ea1m Th\u1eddi Family Independence) +index.cash-programs-l2=KCSP (Ch\u01b0\u01a1ng Trěnh Tr\u1ee3 C\u1ea5p Ng\u01b0\u1eddi Thân Ch\u0103m Sóc) +index.snap.description=SNAP (Ch\u01b0\u01a1ng Trěnh H\u1ed7 Tr\u1ee3 Dinh D\u01b0\u1ee1ng B\u1ed5 Sung) giúp quý v\u1ecb vŕ gia \u0111ěnh có \u0111\u01b0\u1ee3c th\u1ef1c ph\u1ea9m měnh c\u1ea7n. Quý v\u1ecb s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c th\u1ebb EBT mŕ quý v\u1ecb có th\u1ec3 s\u1eed d\u1ee5ng nh\u01b0 th\u1ebb ghi n\u1ee3 \u0111\u1ec3 mua th\u1ef1c ph\u1ea9m t\u1ea1i h\u1ea7u h\u1ebft các c\u1eeda hŕng vŕ ch\u1ee3 nông s\u1ea3n. +index.lacap.description=LaCAP giúp nh\u1eefng ng\u01b0\u1eddi dân Louisiana nŕo t\u1eeb 60 tu\u1ed5i tr\u1edf lęn, vŕ nh\u1eadn Thu Nh\u1eadp An Sinh B\u1ed5 Sung (SSI), có \u0111\u01b0\u1ee3c th\u1ef1c ph\u1ea9m h\u1ecd c\u1ea7n. Nó lŕ m\u1ed9t phięn b\u1ea3n \u0111\u01a1n gi\u1ea3n hóa c\u1ee7a SNAP. +index.fitap.description=FITAP (Ch\u01b0\u01a1ng Trěnh Tr\u1ee3 C\u1ea5p T\u1ea1m Th\u1eddi Family Independance) cung c\u1ea5p h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t \u0111\u1ec3 giúp m\u1ecdi ng\u01b0\u1eddi \u0111áp \u1ee9ng các nhu c\u1ea7u c\u01a1 b\u1ea3n c\u1ee7a h\u1ecd cho \u0111\u1ebfn khi h\u1ecd có th\u1ec3 t\u1ef1 s\u1ed1ng. +index.kscp.description=KCSP (Ch\u01b0\u01a1ng Trěnh Tr\u1ee3 C\u1ea5p Ng\u01b0\u1eddi Thân Ch\u0103m Sóc) c\u0169ng cung c\u1ea5p h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t cho nh\u1eefng ng\u01b0\u1eddi thân nŕo \u0111ang ch\u0103m sóc nh\u1eefng tr\u1ebb không th\u1ec3 s\u1ed1ng v\u1edbi cha m\u1eb9 chúng. Nh\u1eefng ng\u01b0\u1eddi thân \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n có th\u1ec3 nh\u1eadn \u0111\u01b0\u1ee3c các kho\u1ea3n thanh toán b\u1eb1ng ti\u1ec1n m\u1eb7t hŕng tháng \u0111\u1ec3 giúp trang tr\u1ea3i chi phí ch\u0103m sóc tr\u1ebb, ch\u1eb3ng h\u1ea1n nh\u01b0 nhŕ \u1edf, th\u1ef1c ph\u1ea9m, qu\u1ea7n áo, vŕ các nhu c\u1ea7u c\u01a1 b\u1ea3n khác. +index.looking-for-help=Quý v\u1ecb \u0111ang těm ki\u1ebfm s\u1ef1 h\u1ed7 tr\u1ee3 v\u1edbi các ch\u01b0\u01a1ng trěnh khác? +index.visit-dcfs-website=Truy c\u1eadp trang web c\u1ee7a S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh \u0111\u1ec3 bi\u1ebft thęm thông tin. + +footer.this-benefits-application-is=Công c\u1ee5 t\u1ea3i lęn tŕi li\u1ec7u lŕ m\u1ed9t d\u1ecbch v\u1ee5 do Code for America xây d\u1ef1ng v\u1edbi s\u1ef1 h\u1ee3p tác c\u1ee7a S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana, thay m\u1eb7t cho ng\u01b0\u1eddi dân Louisiana. +footer.privacy=Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 +privacy.title=Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 +privacy.sub-title=BenefitsLouisiana lŕ m\u1ed9t d\u1ecbch v\u1ee5 \u0111\u01b0\u1ee3c Code for America Labs, Inc. ("Code for America," "chúng tôi," "c\u1ee7a chúng tôi") l\u1eadp ra \u0111\u1ec3: +privacy.info.li1=Giúp quý v\u1ecb nh\u1eadn vŕ duy trě các kho\u1ea3n phúc l\u1ee3i \u1edf Louisiana ("Phúc L\u1ee3i Louisiana" \u0111\u1ec1 c\u1eadp \u0111\u1ebfn t\u1ea5t c\u1ea3 các ch\u01b0\u01a1ng trěnh nh\u01b0 th\u1ebf). +privacy.info.li2=\u0110\u1ec1 ngh\u1ecb các d\u1ecbch v\u1ee5 ho\u1eb7c ch\u01b0\u01a1ng trěnh h\u1ed7 tr\u1ee3 khác có th\u1ec3 h\u1eefu ích cho quý v\u1ecb. Chúng tôi s\u1ebd ch\u1ec9 s\u1eed d\u1ee5ng thông tin cá nhân c\u1ee7a quý v\u1ecb \u0111\u1ec3 gi\u1edbi thi\u1ec7u các d\u1ecbch v\u1ee5 ho\u1eb7c ch\u01b0\u01a1ng trěnh \u0111ó cho quý v\u1ecb nh\u01b0 m\u1ed9t l\u1ef1a ch\u1ecdn. Tuy nhięn, chúng tôi s\u1ebd ch\u1ec9 g\u1eedi thông tin cá nhân c\u1ee7a quý v\u1ecb \u0111\u1ebfn các d\u1ecbch v\u1ee5 ho\u1eb7c ch\u01b0\u01a1ng trěnh khác khi \u0111\u01b0\u1ee3c quý v\u1ecb cho phép. +privacy.info.description.p1=Chính Sách V\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy gi\u1ea3i thích cách chúng tôi thu th\u1eadp, s\u1eed d\u1ee5ng, chia s\u1ebb vŕ b\u1ea3o v\u1ec7 thông tin cá nhân c\u1ee7a quý v\u1ecb. Quý v\u1ecb \u0111\u1ed3ng ý v\u1edbi các \u0111i\u1ec1u kho\u1ea3n trong Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy b\u1eb1ng vi\u1ec7c s\u1eed d\u1ee5ng các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi, vŕ Thông Báo v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy \u0111\u01b0\u1ee3c áp d\u1ee5ng b\u1ea5t k\u1ec3 lo\u1ea1i thi\u1ebft b\u1ecb quý v\u1ecb s\u1eed d\u1ee5ng \u0111\u1ec3 truy c\u1eadp các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi lŕ gě. +privacy.info.description.p2=N\u1ebfu quý v\u1ecb có b\u1ea5t k\u1ef3 th\u1eafc m\u1eafc ho\u1eb7c quan ng\u1ea1i nŕo v\u1ec1 Thông Báo v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy, vui lňng lięn h\u1ec7 v\u1edbi chúng tôi qua help@benefitslouisiana.org +privacy.information-we-collect.title=Thông tin mŕ chúng tôi thu th\u1eadp +privacy.information-we-collect.p1=Chúng tôi tuân th\u1ee7 nguyęn t\u1eafc Gi\u1ea3m Thi\u1ec3u D\u1eef Li\u1ec7u trong vi\u1ec7c thu th\u1eadp vŕ s\u1eed d\u1ee5ng thông tin cá nhân c\u1ee7a quý v\u1ecb. Chúng tôi có th\u1ec3 thu th\u1eadp thông tin sau \u0111ây v\u1ec1 quý v\u1ecb, nh\u1eefng ng\u01b0\u1eddi ph\u1ee5 thu\u1ed9c, ho\u1eb7c các thŕnh vięn trong h\u1ed9 gia \u0111ěnh quý v\u1ecb: +privacy.information-we-collect.li1=T\u1ea5t c\u1ea3 thông tin quý v\u1ecb cung c\u1ea5p thông qua Trang Web, bao g\u1ed3m tęn, \u0111\u1ecba ch\u1ec9, thông tin lięn h\u1ec7, s\u1ed1 an sinh xă h\u1ed9i, thông tin tŕi chính, vŕ thông tin t\u01b0\u01a1ng t\u1ef1 \u0111\u1ed1i v\u1edbi các cá nhân khác mŕ quý v\u1ecb cung c\u1ea5p thông tin \u0111\u1ec3 \u0111\u01b0a vŕo \u0111\u01a1n xin Phúc L\u1ee3i Louisiana c\u1ee7a quý v\u1ecb +privacy.information-we-collect.li2=B\u1ea3n sao c\u1ee7a b\u1ea5t k\u1ef3 tŕi li\u1ec7u nŕo quý v\u1ecb t\u1ea3i lęn, nh\u01b0 hěnh ch\u1ee5p gi\u1ea5y phép lái xe, bięn nh\u1eadn ti\u1ec1n l\u01b0\u01a1ng, gi\u1ea5y khai sinh, bięn nh\u1eadn ti\u1ec1n thuę nhŕ, v.v. +privacy.information-we-collect.li3=B\u1ea5t k\u1ef3 tin nh\u1eafn nŕo quý v\u1ecb g\u1eedi cho chúng tôi qua SMS, email, ho\u1eb7c live chat +privacy.information-we-collect.li4=B\u1ea5t k\u1ef3 câu tr\u1ea3 l\u1eddi ho\u1eb7c nh\u1eadn xét nŕo quý v\u1ecb cung c\u1ea5p \u0111\u1ec3 tr\u1ea3 l\u1eddi b\u1ea3n kh\u1ea3o sát mŕ chúng tôi g\u1eedi cho quý v\u1ecb +privacy.information-we-collect.p2=Ngoŕi thông tin quý v\u1ecb cung c\u1ea5p, chúng tôi t\u1ef1 \u0111\u1ed9ng thu th\u1eadp vŕ l\u01b0u tr\u1eef thông tin v\u1ec1 phięn truy c\u1eadp c\u1ee7a quý v\u1ecb vŕo Trang Web: +privacy.information-we-collect.p3=Chúng tôi s\u1ebd không thu th\u1eadp thông tin cá nhân c\u1ee7a quý v\u1ecb n\u1ebfu không có s\u1ef1 \u0111\u1ed3ng ý c\u1ee7a quý v\u1ecb, tr\u1eeb m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p h\u1ea1n ch\u1ebf, nh\u01b0 \u0111\u01b0\u1ee3c mô t\u1ea3 trong chính sách nŕy. +privacy.information-we-collect.ul2.li1=Thi\u1ebft b\u1ecb t\u1eeb \u0111ó quý v\u1ecb truy c\u1eadp Internet +privacy.information-we-collect.ul2.li2=\u0110\u1ecba ch\u1ec9 IP (\u0111\u1ecba ch\u1ec9 IP hay \u0111\u1ecba ch\u1ec9 giao th\u1ee9c internet lŕ m\u1ed9t con s\u1ed1 \u0111\u01b0\u1ee3c c\u1ea5p t\u1ef1 \u0111\u1ed9ng cho máy tính \u0111\u01b0\u1ee3c k\u1ebft n\u1ed1i v\u1edbi Web) +privacy.information-we-collect.ul2.li3=H\u1ec7 \u0111i\u1ec1u hŕnh tręn máy tính c\u1ee7a quý v\u1ecb vŕ thông tin v\u1ec1 trěnh duy\u1ec7t quý v\u1ecb \u0111ă s\u1eed d\u1ee5ng khi truy c\u1eadp trang web +privacy.information-we-collect.ul2.li4=Ngŕy vŕ gi\u1edd truy c\u1eadp c\u1ee7a quý v\u1ecb +privacy.information-we-collect.ul2.li5=Các trang quý v\u1ecb \u0111ă truy c\u1eadp +privacy.information-we-collect.ul2.li6=\u0110\u1ecba ch\u1ec9 c\u1ee7a trang web \u0111ă k\u1ebft n\u1ed1i quý v\u1ecb v\u1edbi Trang Web (ch\u1eb3ng h\u1ea1n nh\u01b0 google.com ho\u1eb7c bing.com) + +privacy.how-we-use.title=Chúng tôi s\u1eed d\u1ee5ng thông tin c\u1ee7a quý v\u1ecb nh\u01b0 th\u1ebf nŕo +privacy.how-we-use.content.p1=Chúng tôi s\u1eed d\u1ee5ng thông tin c\u1ee7a quý v\u1ecb cho m\u1ee5c \u0111ích kinh doanh vŕ l\u1ee3i ích h\u1ee3p pháp c\u1ee7a chúng tôi nh\u01b0: +privacy.how-we-use.content.li1=\u0110\u1ec3 giúp quý v\u1ecb nh\u1eadn vŕ duy trě các kho\u1ea3n phúc l\u1ee3i \u1edf Louisiana, bao g\u1ed3m: +privacy.how-we-use.content.li1.sub1=\u0110\u1ec3 \u0111i\u1ec1n các m\u1eabu \u0111\u01a1n c\u1ea7n thi\u1ebft cho vi\u1ec7c s\u1eed d\u1ee5ng D\u1ecbch V\u1ee5 +privacy.how-we-use.content.li1.sub2=\u0110\u1ec3 g\u1eedi tŕi li\u1ec7u vŕ thông tin cá nhân c\u1ee7a quý v\u1ecb cho S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana +privacy.how-we-use.content.li1.sub3=\u0110\u1ec3 truy c\u1eadp m\u1ed9t tŕi kho\u1ea3n \u0111\u01b0\u1ee3c lięn k\u1ebft v\u1edbi h\u1ed3 s\u01a1 c\u1ee7a quý v\u1ecb trong h\u1ec7 th\u1ed1ng tr\u1ef1c tuy\u1ebfn c\u1ee7a S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana +privacy.how-we-use.content.li1.sub4=\u0110\u1ec3 g\u1eedi cho quý v\u1ecb nh\u1eefng thông báo lięn quan \u0111\u1ebfn \u0111\u01a1n \u0111\u0103ng ký, thông tin c\u1eadp nh\u1eadt, vŕ gia h\u1ea1n phúc l\u1ee3i c\u1ee7a quý v\u1ecb + +privacy.how-we-collect.title=Chúng tôi thu th\u1eadp thông tin c\u1ee7a quý v\u1ecb nh\u01b0 th\u1ebf nŕo +privacy.how-we-collect.p1=Chúng tôi thu th\u1eadp thông tin c\u1ee7a quý v\u1ecb t\u1eeb nhi\u1ec1u ngu\u1ed3n khác nhau, ch\u1eb3ng h\u1ea1n nh\u01b0 khi quý v\u1ecb ho\u1eb7c thŕnh vięn h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb: +privacy.how-we-collect.li1=Truy c\u1eadp Trang Web c\u1ee7a chúng tôi, \u0111i\u1ec1n vŕo các m\u1eabu \u0111\u01a1n tręn Trang Web c\u1ee7a chúng tôi, ch\u1ecdn nh\u1eadn email ho\u1eb7c tin nh\u1eafn v\u0103n b\u1ea3n, ho\u1eb7c s\u1eed d\u1ee5ng các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi +privacy.how-we-collect.li2=Cung c\u1ea5p cho chúng tôi các tŕi li\u1ec7u \u0111\u1ec3 s\u1eed d\u1ee5ng các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi +privacy.how-we-collect.li3=Lięn l\u1ea1c v\u1edbi chúng tôi (ví d\u1ee5 nh\u01b0 qua email, chat, m\u1ea1ng xă h\u1ed9i, ho\u1eb7c cách khác) +privacy.how-we-collect.p2=Chúng tôi c\u0169ng có th\u1ec3 thu th\u1eadp thông tin c\u1ee7a quý v\u1ecb t\u1eeb các bęn th\u1ee9 ba nh\u01b0: +privacy.how-we-collect.li4=Các c\u01a1 quan ti\u1ec3u bang Louisiana ho\u1eb7c các c\u01a1 quan chính ph\u1ee7 khác lięn quan \u0111\u1ebfn các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi + + +privacy.toc=M\u1ee5c L\u1ee5c +privacy.overview.title=Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 +privacy.info=Chúng tôi s\u1eed d\u1ee5ng, chia s\u1ebb vŕ b\u1ea3o v\u1ec7 thông tin c\u1ee7a quý v\u1ecb nh\u01b0 th\u1ebf nŕo. +privacy.how-we-use.content.li2=\u0110\u1ec3 cung c\u1ea5p s\u1ef1 h\u1ed7 tr\u1ee3 cho quý v\u1ecb trong quy trěnh vŕ lięn l\u1ea1c v\u1edbi quý v\u1ecb +privacy.how-we-use.content.li3=\u0110\u1ec3 theo dői vŕ hi\u1ec3u \u0111\u01b0\u1ee3c Trang Web vŕ các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng nh\u01b0 th\u1ebf nŕo +privacy.how-we-use.content.li4=\u0110\u1ec3 c\u1ea3i thi\u1ec7n ch\u1ea5t l\u01b0\u1ee3ng ho\u1eb7c ph\u1ea1m vi c\u1ee7a Trang Web ho\u1eb7c các D\u1ecbch V\u1ee5 c\u1ee7a chúng tôi +privacy.how-we-use.content.li5=\u0110\u1ec3 \u0111\u1ec1 ngh\u1ecb các d\u1ecbch v\u1ee5 ho\u1eb7c ch\u01b0\u01a1ng trěnh h\u1ed7 tr\u1ee3 khác có th\u1ec3 h\u1eefu ích cho quý v\u1ecb, n\u1ebfu quý v\u1ecb ch\u1ecdn nh\u1eadn các thông báo nŕy +privacy.how-we-use.content.li6=Cho m\u1ee5c \u0111ích phát hi\u1ec7n, ng\u0103n ch\u1eb7n gian l\u1eadn, vŕ an ninh +privacy.how-we-use.content.li7=\u0110\u1ec3 tuân th\u1ee7 các yęu c\u1ea7u vŕ ngh\u0129a v\u1ee5 pháp lý +privacy.how-we-use.content.li8=\u0110\u1ec3 nghięn c\u1ee9u +privacy.how-we-share-your-info.title=Chúng tôi chia s\u1ebb thông tin c\u1ee7a quý v\u1ecb nh\u01b0 th\u1ebf nŕo +privacy.how-we-share-your-info.p1=Chúng tôi không bán thông tin cá nhân c\u1ee7a quý v\u1ecb. +privacy.how-we-share-your-info.p2=Chúng tôi không chia s\u1ebb thông tin cá nhân v\u1edbi b\u1ea5t k\u1ef3 bęn th\u1ee9 ba nŕo tr\u1eeb tr\u01b0\u1eddng h\u1ee3p \u0111\u01b0\u1ee3c quy \u0111\u1ecbnh trong Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy. Chúng tôi có th\u1ec3 ti\u1ebft l\u1ed9 thông tin cho các nhŕ th\u1ea7u, \u0111\u1ed1i tác, vŕ các t\u1ed5 ch\u1ee9c lięn k\u1ebft \u0111\u1ec3 cung c\u1ea5p các d\u1ecbch v\u1ee5 c\u1ee7a Trang Web. Ví d\u1ee5 nh\u01b0, chúng tôi có th\u1ec3 chia s\u1ebb thông tin c\u1ee7a quý v\u1ecb \u0111\u1ec3: +privacy.how-we-share-your-info.p3=Chúng tôi yęu c\u1ea7u các bęn th\u1ee9 ba thay m\u1eb7t chúng tôi b\u1ea3o m\u1eadt thông tin cá nhân c\u1ee7a quý v\u1ecb vŕ không cho phép các bęn th\u1ee9 ba nŕy s\u1eed d\u1ee5ng ho\u1eb7c chia s\u1ebb thông tin cá nhân c\u1ee7a quý v\u1ecb cho b\u1ea5t k\u1ef3 m\u1ee5c \u0111ích nŕo khác ngoŕi vi\u1ec7c cung c\u1ea5p d\u1ecbch v\u1ee5 thay m\u1eb7t chúng tôi. +privacy.how-we-share-your-info.p4=Chúng tôi có th\u1ec3 chia s\u1ebb thông tin c\u1ee7a quý v\u1ecb v\u1edbi các bęn th\u1ee9 ba trong các tr\u01b0\u1eddng h\u1ee3p c\u1ee5 th\u1ec3, ch\u1eb3ng h\u1ea1n nh\u01b0 khi lu\u1eadt pháp yęu c\u1ea7u ho\u1eb7c vi\u1ec7c chia s\u1ebb s\u1ebd giúp b\u1ea3o v\u1ec7 s\u1ef1 an toŕn, tŕi s\u1ea3n, ho\u1eb7c các quy\u1ec1n c\u1ee7a Code for America, nh\u1eefng ng\u01b0\u1eddi chúng tôi ph\u1ee5c v\u1ee5, các bęn lięn k\u1ebft c\u1ee7a chúng tôi, ho\u1eb7c nh\u1eefng ng\u01b0\u1eddi khác. + +privacy.how-we-share-your-info.li1=S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana \u0111\u1ec3 cung c\u1ea5p vŕ c\u1ea3i thi\u1ec7n các d\u1ecbch v\u1ee5. +privacy.how-we-share-your-info.li1.sub1=S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana có th\u1ec3 s\u1eed d\u1ee5ng các tŕi li\u1ec7u nŕy \u0111\u1ec3 x\u1eed lý \u0111\u01a1n \u0111\u0103ng ký tham gia các ch\u01b0\u01a1ng trěnh phúc l\u1ee3i do h\u1ecd qu\u1ea3n lý. +privacy.how-we-share-your-info.li2=Các bęn th\u1ee9 ba \u0111\u1ec3 g\u1eedi kh\u1ea3o sát, các nhóm t\u1eadp trung, ho\u1eb7c cho các m\u1ee5c \u0111ích hŕnh chính, phân tích, nghięn c\u1ee9u, vŕ ti\u1ebfp th\u1ecb khác. Nh\u1eefng thông tin lięn l\u1ea1c c\u1ee7a bęn th\u1ee9 ba nŕy lŕ \u0111\u1ec3 c\u1ea3i thi\u1ec7n s\u1ea3n ph\u1ea9m, \u0111\u1ec3 těm hi\u1ec3u v\u1ec1 tr\u1ea3i nghi\u1ec7m, vŕ \u0111\u1ec3 c\u1eadp nh\u1eadt cho quý v\u1ecb n\u1ebfu quý v\u1ecb yęu c\u1ea7u thông tin c\u1eadp nh\u1eadt. +privacy.how-we-share-your-info.li3=Các \u0111\u1ed1i tác nghięn c\u1ee9u bęn th\u1ee9 ba cho các m\u1ee5c \u0111ích hŕnh chính, phân tích, vŕ nghięn c\u1ee9u. Nghięn c\u1ee9u lŕ \u0111\u1ec3 c\u1ea3i thi\u1ec7n s\u1ea3n ph\u1ea9m vŕ \u0111\u1ec3 těm hi\u1ec3u v\u1ec1 tr\u1ea3i nghi\u1ec7m. + +privacy.your-info.title=Nh\u1eefng l\u1ef1a ch\u1ecdn c\u1ee7a quý v\u1ecb lięn quan \u0111\u1ebfn thông tin c\u1ee7a quý v\u1ecb +privacy.your-info.p1=Chúng tôi coi tr\u1ecdng vŕ tôn tr\u1ecdng quy\u1ec1n rięng t\u01b0 c\u1ee7a quý v\u1ecb vŕ cung c\u1ea5p cho quý v\u1ecb các l\u1ef1a ch\u1ecdn v\u1ec1 cách chúng tôi thu th\u1eadp, s\u1eed d\u1ee5ng, vŕ chia s\u1ebb thông tin c\u1ee7a quý v\u1ecb. privacy.your-info.email=Email privacy.your-info.cookies=Cookie -privacy.your-info.text=Tin Nh\u1EAFn SMS Giao D\u1ECBch (V\u0103n B\u1EA3n) -privacy.your-info.email.p1=Ch\u00FAng t\u00F4i s\u1EBD ch\u1EC9 g\u1EEDi cho qu\u00FD v\u1ECB nh\u1EEFng email li\u00EAn quan \u0111\u1EBFn \u0111\u01A1n \u0111\u0103ng k\u00FD ho\u1EB7c t\u00E0i li\u1EC7u m\u00E0 qu\u00FD v\u1ECB \u0111\u00E3 g\u1EEDi qua BenefitsLouisiana. -privacy.your-info.email.p2=Ch\u00FAng t\u00F4i s\u1EBD kh\u00F4ng bao gi\u1EDD g\u1EEDi cho qu\u00FD v\u1ECB email ti\u1EBFp th\u1ECB ho\u1EB7c \u0111\u0103ng k\u00FD qu\u00FD v\u1ECB v\u00E0o b\u1EA5t k\u1EF3 danh s\u00E1ch g\u1EEDi email n\u00E0o. -privacy.your-info.email.p3=N\u1EBFu qu\u00FD v\u1ECB chia s\u1EBB th\u00F4ng tin li\u00EAn h\u1EC7 c\u1EE7a m\u00ECnh th\u00F4ng qua BenefitsLouisiana \u0111\u1EC3 cung c\u1EA5p cho S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana, h\u1ECD c\u00F3 th\u1EC3 li\u00EAn h\u1EC7 v\u1EDBi qu\u00FD v\u1ECB. B\u1EA5t k\u1EF3 s\u1EF1 li\u00EAn h\u1EC7 t\u1EEB S\u1EDF s\u1EBD tu\u00E2n theo ch\u00EDnh s\u00E1ch v\u1EC1 quy\u1EC1n ri\u00EAng t\u01B0 c\u1EE7a h\u1ECD. -privacy.your-info.cookies.p1=Cookie l\u00E0 c\u00E1c t\u1EADp tin v\u0103n b\u1EA3n nh\u1ECF m\u00E0 c\u00E1c trang web \u0111\u1EB7t tr\u00EAn m\u00E1y t\u00EDnh v\u00E0 thi\u1EBFt b\u1ECB di \u0111\u1ED9ng c\u1EE7a nh\u1EEFng ai truy c\u1EADp c\u00E1c trang web \u0111\u00F3. Pixel tag (web beacon) l\u00E0 c\u00E1c kh\u1ED1i m\u00E3 nh\u1ECF \u0111\u01B0\u1EE3c \u0111\u1EB7t tr\u00EAn c\u00E1c trang web v\u00E0 email. -privacy.your-info.cookies.li1=Ch\u00FAng t\u00F4i s\u1EED d\u1EE5ng cookie v\u00E0 c\u00E1c c\u00F4ng ngh\u1EC7 kh\u00E1c nh\u01B0 pixel tag \u0111\u1EC3 ghi nh\u1EDB t\u00F9y ch\u1ECDn c\u1EE7a qu\u00FD v\u1ECB, n\u00E2ng cao tr\u1EA3i nghi\u1EC7m tr\u1EF1c tuy\u1EBFn c\u1EE7a qu\u00FD v\u1ECB, v\u00E0 thu th\u1EADp d\u1EEF li\u1EC7u v\u1EC1 c\u00E1ch qu\u00FD v\u1ECB s\u1EED d\u1EE5ng Trang Web c\u1EE7a ch\u00FAng t\u00F4i \u0111\u1EC3 c\u1EA3i thi\u1EC7n c\u00E1ch ch\u00FAng t\u00F4i qu\u1EA3ng b\u00E1 n\u1ED9i dung, ch\u01B0\u01A1ng tr\u00ECnh, v\u00E0 s\u1EF1 ki\u1EC7n c\u1EE7a m\u00ECnh. -privacy.your-info.cookies.li2=Vi\u1EC7c qu\u00FD v\u1ECB s\u1EED d\u1EE5ng c\u00E1c Trang Web c\u1EE7a ch\u00FAng t\u00F4i cho th\u1EA5y qu\u00FD v\u1ECB \u0111\u1ED3ng \u00FD v\u1EDBi vi\u1EC7c s\u1EED d\u1EE5ng Cookie nh\u01B0 th\u1EBF. -privacy.your-info.cookies.p2=H\u1EA7u h\u1EBFt c\u00E1c tr\u00ECnh duy\u1EC7t ban \u0111\u1EA7u \u0111\u1EC1u \u0111\u01B0\u1EE3c c\u00E0i \u0111\u1EB7t ch\u1EA5p nh\u1EADn cookie HTTP. N\u1EBFu qu\u00FD v\u1ECB mu\u1ED1n h\u1EA1n ch\u1EBF ho\u1EB7c ch\u1EB7n cookie do Trang Web c\u1EE7a ch\u00FAng t\u00F4i ho\u1EB7c b\u1EA5t k\u1EF3 trang web n\u00E0o kh\u00E1c c\u00E0i \u0111\u1EB7t, qu\u00FD v\u1ECB c\u00F3 th\u1EC3 l\u00E0m nh\u01B0 v\u1EADy th\u00F4ng qua thi\u1EBFt l\u1EADp tr\u00ECnh duy\u1EC7t c\u1EE7a qu\u00FD v\u1ECB. Ch\u1EE9c n\u0103ng ?Tr\u1EE3 Gi\u00FAp? trong tr\u00ECnh duy\u1EC7t c\u1EE7a qu\u00FD v\u1ECB s\u1EBD gi\u1EA3i th\u00EDch c\u00E1ch th\u1EE9c. Ho\u1EB7c, qu\u00FD v\u1ECB c\u00F3 th\u1EC3 truy c\u1EADp www.aboutcookie.org, n\u00F3 c\u00F3 ch\u1EE9a th\u00F4ng tin to\u00E0n di\u1EC7n v\u1EC1 c\u00E1ch th\u1EF1c hi\u1EC7n vi\u1EC7c n\u00E0y tr\u00EAn c\u00E1c tr\u00ECnh duy\u1EC7t kh\u00E1c nhau. Qu\u00FD v\u1ECB s\u1EBD t\u00ECm th\u1EA5y th\u00F4ng tin chung v\u1EC1 cookie v\u00E0 chi ti\u1EBFt v\u1EC1 c\u00E1ch x\u00F3a cookie kh\u1ECFi m\u00E1y c\u1EE7a m\u00ECnh. -privacy.your-info.text.p1=S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh c\u00F3 th\u1EC3 g\u1EEDi tin nh\u1EAFn v\u0103n b\u1EA3n cho qu\u00FD v\u1ECB b\u1EB1ng c\u00E1ch s\u1EED d\u1EE5ng c\u00E1c chi ti\u1EBFt li\u00EAn l\u1EA1c m\u00E0 qu\u00FD v\u1ECB \u0111\u00E3 cung c\u1EA5p khi n\u1ED9p \u0111\u01A1n xin ph\u00FAc l\u1EE3i. Ch\u00FAng t\u00F4i kh\u00F4ng ki\u1EC3m so\u00E1t n\u1ED9i dung ho\u1EB7c th\u1EDDi gian c\u1EE7a nh\u1EEFng tin nh\u1EAFn \u0111\u00F3 v\u00E0 c\u00E1c tin nh\u1EAFn \u0111\u01B0\u1EE3c g\u1EEDi t\u1EEB S\u1EDF s\u1EBD tu\u00E2n theo c\u00E1c \u0110i\u1EC1u Kho\u1EA3n v\u00E0 \u0110i\u1EC1u Ki\u1EC7n c\u1EE7a h\u1ECD. -privacy.your-info.analytics=Ph\u00E2n t\u00EDch -privacy.your-info.analytics.p1=Ch\u00FAng t\u00F4i s\u1EED d\u1EE5ng MixPanel v\u00E0 Google Analytics \u0111\u1EC3 hi\u1EC3u \u0111\u01B0\u1EE3c kh\u00E1ch truy c\u1EADp s\u1EED d\u1EE5ng trang web c\u1EE7a ch\u00FAng t\u00F4i nh\u01B0 th\u1EBF n\u00E0o v\u00E0 \u0111\u1EC3 thu th\u1EADp c\u00E1c ch\u1EC9 s\u1ED1 hi\u1EC7u su\u1EA5t t\u1ED5ng h\u1EE3p. \u0110\u1EC3 t\u00ECm hi\u1EC3u th\u00EAm v\u1EC1 c\u00E1c ph\u01B0\u01A1ng ph\u00E1p b\u1EA3o v\u1EC7 quy\u1EC1n ri\u00EAng t\u01B0 c\u1EE7a MixPanel v\u00E0 b\u1EA5t k\u1EF3 l\u1EF1a ch\u1ECDn t\u1EEB ch\u1ED1i n\u00E0o m\u00E0 n\u00F3 cung c\u1EA5p, h\u00E3y nh\u1EA5p v\u00E0o \u0110\u00C2Y. \u0110\u1EC3 t\u00ECm hi\u1EC3u th\u00EAm v\u1EC1 c\u00E1c ph\u01B0\u01A1ng ph\u00E1p b\u1EA3o v\u1EC7 quy\u1EC1n ri\u00EAng t\u01B0 c\u1EE7a Google Analytics v\u00E0 b\u1EA5t k\u1EF3 l\u1EF1a ch\u1ECDn t\u1EEB ch\u1ED1i n\u00E0o m\u00E0 n\u00F3 cung c\u1EA5p, h\u00E3y nh\u1EA5p v\u00E0o \u0110\u00C2Y. Qu\u00FD v\u1ECB c\u0169ng c\u00F3 th\u1EC3 g\u1EEDi email \u0111\u1EBFn help@benefitslouisiana.org \u0111\u1EC3 bi\u1EBFt th\u00EAm th\u00F4ng tin. -privacy.la-dcfs.website=Trang Web c\u1EE7a S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana -privacy.la-dcfs.website.p1=M\u1ED9t khi S\u1EDF D\u1ECBch V\u1EE5 Tr\u1EBB Em v\u00E0 Gia \u0110\u00ECnh Louisiana nh\u1EADn \u0111\u01B0\u1EE3c th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB, th\u00F4ng tin \u0111\u00F3 s\u1EBD tu\u00E2n theo Tuy\u00EAn B\u1ED1 v\u1EC1 Quy\u1EC1n Truy C\u1EADp Web v\u00E0 Quy\u1EC1n Ri\u00EAng T\u01B0 c\u1EE7a h\u1ECD. -privacy.additional-services=C\u00E1c D\u1ECBch V\u1EE5 v\u00E0 T\u00E0i Nguy\u00EAn B\u1ED5 Sung -privacy.additional-services.p1=Ch\u00FAng t\u00F4i c\u00F3 th\u1EC3 cung c\u1EA5p c\u00E1c li\u00EAn k\u1EBFt b\u1ED5 sung \u0111\u1EBFn c\u00E1c t\u00E0i nguy\u00EAn m\u00E0 qu\u00FD v\u1ECB s\u1EBD th\u1EA5y h\u1EEFu \u00EDch. C\u00E1c li\u00EAn k\u1EBFt n\u00E0y c\u00F3 th\u1EC3 d\u1EABn qu\u00FD v\u1ECB \u0111\u1EBFn c\u00E1c trang web kh\u00F4ng li\u00EAn k\u1EBFt v\u1EDBi ch\u00FAng t\u00F4i v\u00E0/ho\u1EB7c ho\u1EA1t \u0111\u1ED9ng theo c\u00E1c ph\u01B0\u01A1ng ph\u00E1p b\u1EA3o v\u1EC7 quy\u1EC1n ri\u00EAng t\u01B0 kh\u00E1c. Ch\u00FAng t\u00F4i kh\u00F4ng ch\u1ECBu tr\u00E1ch nhi\u1EC7m \u0111\u1ED1i v\u1EDBi n\u1ED9i dung ho\u1EB7c ph\u01B0\u01A1ng ph\u00E1p b\u1EA3o v\u1EC7 quy\u1EC1n ri\u00EAng t\u01B0 c\u1EE7a c\u00E1c trang web kh\u00E1c nh\u01B0 th\u1EBF. Ch\u00FAng t\u00F4i khuy\u1EBFn kh\u00EDch kh\u00E1ch truy c\u1EADp v\u00E0 ng\u01B0\u1EDDi d\u00F9ng l\u01B0u \u00FD khi h\u1ECD r\u1EDDi kh\u1ECFi trang web c\u1EE7a ch\u00FAng t\u00F4i v\u00E0 \u0111\u1ECDc c\u00E1c \u0111i\u1EC1u kho\u1EA3n v\u1EC1 quy\u1EC1n ri\u00EAng t\u01B0 c\u1EE7a b\u1EA5t k\u1EF3 trang web n\u00E0o kh\u00E1c, v\u00EC ch\u00FAng t\u00F4i kh\u00F4ng ki\u1EC3m so\u00E1t c\u00E1ch thu th\u1EADp th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a c\u00E1c trang web kh\u00E1c. -privacy.how-we-protect=Ch\u00FAng t\u00F4i b\u1EA3o v\u1EC7 th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB nh\u01B0 th\u1EBF n\u00E0o -privacy.how-we-protect.p1=B\u1EA3o v\u1EC7 th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB l\u00E0 v\u00F4 c\u00F9ng quan tr\u1ECDng, do \u0111\u00F3 ch\u00FAng t\u00F4i th\u1EF1c hi\u1EC7n c\u00E1c bi\u1EC7n ph\u00E1p \u0111\u1EC1 ph\u00F2ng v\u1EC1 m\u1EB7t h\u00E0nh ch\u00EDnh, k\u1EF9 thu\u1EADt, v\u00E0 v\u1EADt l\u00FD h\u1EE3p l\u00FD \u0111\u1EC3 b\u1EA3o v\u1EC7 d\u1EEF li\u1EC7u tr\u1EF1c tuy\u1EBFn v\u00E0 ngo\u1EA1i tuy\u1EBFn c\u1EE7a qu\u00FD v\u1ECB. -privacy.how-we-protect.p2=Tuy nhi\u00EAn, kh\u00F4ng c\u00F3 h\u1EC7 th\u1ED1ng n\u00E0o c\u00F3 th\u1EC3 \u0111\u01B0\u1EE3c \u0111\u1EA3m b\u1EA3o an to\u00E0n 100%. N\u1EBFu qu\u00FD v\u1ECB c\u00F3 th\u1EAFc m\u1EAFc v\u1EC1 b\u1EA3o m\u1EADt th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a m\u00ECnh ho\u1EB7c n\u1EBFu qu\u00FD v\u1ECB c\u00F3 l\u00FD do cho r\u1EB1ng th\u00F4ng tin c\u00E1 nh\u00E2n m\u00E0 ch\u00FAng t\u00F4i l\u01B0u gi\u1EEF v\u1EC1 qu\u00FD v\u1ECB kh\u00F4ng c\u00F2n an to\u00E0n n\u1EEFa, vui l\u00F2ng li\u00EAn h\u1EC7 v\u1EDBi ch\u00FAng t\u00F4i ngay l\u1EADp t\u1EE9c, nh\u01B0 \u0111\u01B0\u1EE3c m\u00F4 t\u1EA3 trong Th\u00F4ng B\u00E1o v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y. -privacy.data-retention.title=L\u01B0u Gi\u1EEF D\u1EEF Li\u1EC7u -privacy.data-retention.p1=Ch\u00FAng t\u00F4i s\u1EBD l\u01B0u gi\u1EEF th\u00F4ng tin c\u1EE7a qu\u00FD v\u1ECB trong th\u1EDDi gian c\u1EA7n thi\u1EBFt \u0111\u1EC3: cung c\u1EA5p c\u00E1c D\u1ECBch V\u1EE5 cho qu\u00FD v\u1ECB, \u0111i\u1EC1u h\u00E0nh ho\u1EA1t \u0111\u1ED9ng kinh doanh c\u1EE7a ch\u00FAng t\u00F4i ph\u00F9 h\u1EE3p v\u1EDBi Th\u00F4ng B\u00E1o n\u00E0y, ho\u1EB7c ch\u1EE9ng minh s\u1EF1 tu\u00E2n th\u1EE7 lu\u1EADt ph\u00E1p v\u00E0 c\u00E1c ngh\u0129a v\u1EE5 ph\u00E1p l\u00FD. -privacy.childrens-privacy.title=Quy\u1EC1n Ri\u00EAng T\u01B0 c\u1EE7a Tr\u1EBB Em -privacy.childrens-privacy.p1=Ch\u00FAng t\u00F4i kh\u00F4ng c\u1ED1 \u00FD thu th\u1EADp th\u00F4ng tin c\u00E1 nh\u00E2n t\u1EEB tr\u1EBB v\u1ECB th\u00E0nh ni\u00EAn d\u01B0\u1EDBi 16 tu\u1ED5i ch\u01B0a \u0111\u01B0\u1EE3c c\u00F4ng nh\u1EADn quy\u1EC1n t\u1EF1 do. -privacy.access-request.title=Y\u00EAu C\u1EA7u Truy C\u1EADp -privacy.access-request.p1=BenefitsLouisiana t\u00F4n tr\u1ECDng quy\u1EC1n ki\u1EC3m so\u00E1t c\u1EE7a qu\u00FD v\u1ECB \u0111\u1ED1i v\u1EDBi th\u00F4ng tin c\u1EE7a m\u00ECnh v\u00E0 theo y\u00EAu c\u1EA7u, ch\u00FAng t\u00F4i s\u1EBD x\u00E1c nh\u1EADn li\u1EC7u ch\u00FAng t\u00F4i c\u00F3 gi\u1EEF ho\u1EB7c \u0111ang x\u1EED l\u00FD th\u00F4ng tin m\u00E0 ch\u00FAng t\u00F4i \u0111\u00E3 thu th\u1EADp t\u1EEB qu\u00FD v\u1ECB hay kh\u00F4ng. Qu\u00FD v\u1ECB c\u0169ng c\u00F3 quy\u1EC1n s\u1EEDa \u0111\u1ED5i ho\u1EB7c c\u1EADp nh\u1EADt d\u1EEF li\u1EC7u c\u00E1 nh\u00E2n kh\u00F4ng ch\u00EDnh x\u00E1c ho\u1EB7c kh\u00F4ng \u0111\u1EA7y \u0111\u1EE7, y\u00EAu c\u1EA7u x\u00F3a th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB, ho\u1EB7c y\u00EAu c\u1EA7u ch\u00FAng t\u00F4i kh\u00F4ng s\u1EED d\u1EE5ng th\u00F4ng tin \u0111\u00F3 n\u1EEFa. Trong c\u00E1c tr\u01B0\u1EDDng h\u1EE3p nh\u1EA5t \u0111\u1ECBnh, ch\u00FAng t\u00F4i kh\u00F4ng th\u1EC3 \u0111\u00E1p \u1EE9ng y\u00EAu c\u1EA7u c\u1EE7a qu\u00FD v\u1ECB, ch\u1EB3ng h\u1EA1n nh\u01B0 n\u1EBFu y\u00EAu c\u1EA7u \u0111\u00F3 c\u1EA3n tr\u1EDF c\u00E1c ngh\u0129a v\u1EE5 c\u1EE7a ch\u00FAng t\u00F4i theo quy \u0111\u1ECBnh, \u1EA3nh h\u01B0\u1EDFng \u0111\u1EBFn c\u00E1c v\u1EA5n \u0111\u1EC1 ph\u00E1p l\u00FD, ch\u00FAng t\u00F4i kh\u00F4ng th\u1EC3 x\u00E1c minh danh t\u00EDnh c\u1EE7a qu\u00FD v\u1ECB ho\u1EB7c c\u1EA7n nhi\u1EC1u chi ph\u00ED ho\u1EB7c c\u00F4ng s\u1EE9c. Tuy nhi\u00EAn, trong b\u1EA5t k\u1EF3 tr\u01B0\u1EDDng h\u1EE3p n\u00E0o, ch\u00FAng t\u00F4i s\u1EBD tr\u1EA3 l\u1EDDi y\u00EAu c\u1EA7u c\u1EE7a qu\u00FD v\u1ECB trong m\u1ED9t khung th\u1EDDi gian h\u1EE3p l\u00FD v\u00E0 gi\u1EA3i th\u00EDch cho qu\u00FD v\u1ECB . \u0110\u1EC3 th\u1EF1c hi\u1EC7n m\u1ED9t y\u00EAu c\u1EA7u nh\u01B0 th\u1EBF, vui l\u00F2ng g\u1EEDi email cho ch\u00FAng t\u00F4i t\u1EA1i help@benefitslouisiana.org. -privacy.access-request.p2=Vui l\u00F2ng l\u01B0u \u00FD r\u1EB1ng \u0111\u1ED1i v\u1EDBi th\u00F4ng tin c\u00E1 nh\u00E2n v\u1EC1 qu\u00FD v\u1ECB m\u00E0 ch\u00FAng t\u00F4i \u0111\u00E3 thu th\u1EADp ho\u1EB7c nh\u1EADn \u0111\u1EC3 x\u1EED l\u00FD thay m\u1EB7t cho m\u1ED9t th\u1EF1c th\u1EC3 ri\u00EAng bi\u1EC7t, kh\u00F4ng li\u00EAn k\u1EBFt--\u0111\u00E3 x\u00E1c \u0111\u1ECBnh ph\u01B0\u01A1ng ti\u1EC7n v\u00E0 m\u1EE5c \u0111\u00EDch c\u1EE7a vi\u1EC7c x\u1EED l\u00FD, t\u1EA5t c\u1EA3 c\u00E1c y\u00EAu c\u1EA7u nh\u01B0 v\u1EADy ph\u1EA3i \u0111\u01B0\u1EE3c g\u1EEDi tr\u1EF1c ti\u1EBFp cho th\u1EF1c th\u1EC3 \u0111\u00F3. Ch\u00FAng t\u00F4i s\u1EBD t\u00F4n tr\u1ECDng v\u00E0 h\u1ED7 tr\u1EE3 b\u1EA5t k\u1EF3 h\u01B0\u1EDBng d\u1EABn n\u00E0o h\u1ECD cung c\u1EA5p li\u00EAn quan \u0111\u1EBFn th\u00F4ng tin c\u00E1 nh\u00E2n c\u1EE7a qu\u00FD v\u1ECB. -privacy.changes.title=Nh\u1EEFng thay \u0111\u1ED5i -privacy.changes.p1=Ch\u00FAng t\u00F4i \u0111\u00F4i khi c\u00F3 th\u1EC3 thay \u0111\u1ED5i Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y. Vui l\u00F2ng ki\u1EC3m tra trang n\u00E0y th\u01B0\u1EDDng xuy\u00EAn \u0111\u1EC3 bi\u1EBFt th\u00F4ng tin c\u1EADp nh\u1EADt, v\u00EC vi\u1EC7c qu\u00FD v\u1ECB ti\u1EBFp t\u1EE5c s\u1EED d\u1EE5ng Trang Web sau khi c\u00F3 b\u1EA5t k\u1EF3 thay \u0111\u1ED5i n\u00E0o trong Ch\u00EDnh S\u00E1ch v\u1EC1 Quy\u1EC1n Ri\u00EAng T\u01B0 n\u00E0y s\u1EBD c\u1EA5u th\u00E0nh vi\u1EC7c qu\u00FD v\u1ECB ch\u1EA5p nh\u1EADn c\u00E1c thay \u0111\u1ED5i \u0111\u00F3. Ch\u00FAng t\u00F4i s\u1EBD th\u00F4ng b\u00E1o cho qu\u00FD v\u1ECB qua email ho\u1EB7c c\u00E1c ph\u01B0\u01A1ng ti\u1EC7n kh\u00E1c ph\u00F9 h\u1EE3p v\u1EDBi lu\u1EADt hi\u1EC7n h\u00E0nh v\u1EC1 b\u1EA5t k\u1EF3 thay \u0111\u1ED5i quan tr\u1ECDng n\u00E0o \u0111\u1ED1i v\u1EDBi ch\u00EDnh s\u00E1ch n\u00E0y. -privacy.effective-date.title=Ng\u00E0y C\u00F3 Hi\u1EC7u L\u1EF1c -privacy.effective-date.p1=Phi\u00EAn b\u1EA3n c\u1EE7a ch\u00EDnh s\u00E1ch n\u00E0y c\u00F3 hi\u1EC7u l\u1EF1c t\u1EEB ng\u00E0y 1 th\u00E1ng 3, 2023. -privacy.questions.title=Th\u1EAFc m\u1EAFc -privacy.questions.p1=N\u1EBFu qu\u00FD v\u1ECB c\u00F3 b\u1EA5t k\u1EF3 th\u1EAFc m\u1EAFc, nh\u1EADn x\u00E9t, quan ng\u1EA1i, ho\u1EB7c khi\u1EBFu n\u1EA1i n\u00E0o v\u1EDBi Trang Web, vui l\u00F2ng li\u00EAn h\u1EC7 v\u1EDBi ch\u00FAng t\u00F4i qua email t\u1EA1i help@benefitslouisiana.org. -privacy.questions.p2=Ch\u00FAng t\u00F4i s\u1EBD c\u1ED1 g\u1EAFng h\u1EBFt s\u1EE9c \u0111\u1EC3 gi\u1EA3i quy\u1EBFt v\u1EA5n \u0111\u1EC1. +privacy.your-info.text=Tin Nh\u1eafn SMS Giao D\u1ecbch (V\u0103n B\u1ea3n) +privacy.your-info.email.p1=Chúng tôi s\u1ebd ch\u1ec9 g\u1eedi cho quý v\u1ecb nh\u1eefng email lięn quan \u0111\u1ebfn \u0111\u01a1n \u0111\u0103ng ký ho\u1eb7c tŕi li\u1ec7u mŕ quý v\u1ecb \u0111ă g\u1eedi qua BenefitsLouisiana. +privacy.your-info.email.p2=Chúng tôi s\u1ebd không bao gi\u1edd g\u1eedi cho quý v\u1ecb email ti\u1ebfp th\u1ecb ho\u1eb7c \u0111\u0103ng ký quý v\u1ecb vŕo b\u1ea5t k\u1ef3 danh sách g\u1eedi email nŕo. +privacy.your-info.email.p3=N\u1ebfu quý v\u1ecb chia s\u1ebb thông tin lięn h\u1ec7 c\u1ee7a měnh thông qua BenefitsLouisiana \u0111\u1ec3 cung c\u1ea5p cho S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana, h\u1ecd có th\u1ec3 lięn h\u1ec7 v\u1edbi quý v\u1ecb. B\u1ea5t k\u1ef3 s\u1ef1 lięn h\u1ec7 t\u1eeb S\u1edf s\u1ebd tuân theo chính sách v\u1ec1 quy\u1ec1n rięng t\u01b0 c\u1ee7a h\u1ecd. +privacy.your-info.cookies.p1=Cookie lŕ các t\u1eadp tin v\u0103n b\u1ea3n nh\u1ecf mŕ các trang web \u0111\u1eb7t tręn máy tính vŕ thi\u1ebft b\u1ecb di \u0111\u1ed9ng c\u1ee7a nh\u1eefng ai truy c\u1eadp các trang web \u0111ó. Pixel tag (web beacon) lŕ các kh\u1ed1i mă nh\u1ecf \u0111\u01b0\u1ee3c \u0111\u1eb7t tręn các trang web vŕ email. +privacy.your-info.cookies.li1=Chúng tôi s\u1eed d\u1ee5ng cookie vŕ các công ngh\u1ec7 khác nh\u01b0 pixel tag \u0111\u1ec3 ghi nh\u1edb tůy ch\u1ecdn c\u1ee7a quý v\u1ecb, nâng cao tr\u1ea3i nghi\u1ec7m tr\u1ef1c tuy\u1ebfn c\u1ee7a quý v\u1ecb, vŕ thu th\u1eadp d\u1eef li\u1ec7u v\u1ec1 cách quý v\u1ecb s\u1eed d\u1ee5ng Trang Web c\u1ee7a chúng tôi \u0111\u1ec3 c\u1ea3i thi\u1ec7n cách chúng tôi qu\u1ea3ng bá n\u1ed9i dung, ch\u01b0\u01a1ng trěnh, vŕ s\u1ef1 ki\u1ec7n c\u1ee7a měnh. +privacy.your-info.cookies.li2=Vi\u1ec7c quý v\u1ecb s\u1eed d\u1ee5ng các Trang Web c\u1ee7a chúng tôi cho th\u1ea5y quý v\u1ecb \u0111\u1ed3ng ý v\u1edbi vi\u1ec7c s\u1eed d\u1ee5ng Cookie nh\u01b0 th\u1ebf. +privacy.your-info.cookies.p2=H\u1ea7u h\u1ebft các trěnh duy\u1ec7t ban \u0111\u1ea7u \u0111\u1ec1u \u0111\u01b0\u1ee3c cŕi \u0111\u1eb7t ch\u1ea5p nh\u1eadn cookie HTTP. N\u1ebfu quý v\u1ecb mu\u1ed1n h\u1ea1n ch\u1ebf ho\u1eb7c ch\u1eb7n cookie do Trang Web c\u1ee7a chúng tôi ho\u1eb7c b\u1ea5t k\u1ef3 trang web nŕo khác cŕi \u0111\u1eb7t, quý v\u1ecb có th\u1ec3 lŕm nh\u01b0 v\u1eady thông qua thi\u1ebft l\u1eadp trěnh duy\u1ec7t c\u1ee7a quý v\u1ecb. Ch\u1ee9c n\u0103ng ?Tr\u1ee3 Giúp? trong trěnh duy\u1ec7t c\u1ee7a quý v\u1ecb s\u1ebd gi\u1ea3i thích cách th\u1ee9c. Ho\u1eb7c, quý v\u1ecb có th\u1ec3 truy c\u1eadp www.aboutcookie.org, nó có ch\u1ee9a thông tin toŕn di\u1ec7n v\u1ec1 cách th\u1ef1c hi\u1ec7n vi\u1ec7c nŕy tręn các trěnh duy\u1ec7t khác nhau. Quý v\u1ecb s\u1ebd těm th\u1ea5y thông tin chung v\u1ec1 cookie vŕ chi ti\u1ebft v\u1ec1 cách xóa cookie kh\u1ecfi máy c\u1ee7a měnh. +privacy.your-info.text.p1=S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh có th\u1ec3 g\u1eedi tin nh\u1eafn v\u0103n b\u1ea3n cho quý v\u1ecb b\u1eb1ng cách s\u1eed d\u1ee5ng các chi ti\u1ebft lięn l\u1ea1c mŕ quý v\u1ecb \u0111ă cung c\u1ea5p khi n\u1ed9p \u0111\u01a1n xin phúc l\u1ee3i. Chúng tôi không ki\u1ec3m soát n\u1ed9i dung ho\u1eb7c th\u1eddi gian c\u1ee7a nh\u1eefng tin nh\u1eafn \u0111ó vŕ các tin nh\u1eafn \u0111\u01b0\u1ee3c g\u1eedi t\u1eeb S\u1edf s\u1ebd tuân theo các \u0110i\u1ec1u Kho\u1ea3n vŕ \u0110i\u1ec1u Ki\u1ec7n c\u1ee7a h\u1ecd. +privacy.your-info.analytics=Phân tích +privacy.your-info.analytics.p1=Chúng tôi s\u1eed d\u1ee5ng MixPanel vŕ Google Analytics \u0111\u1ec3 hi\u1ec3u \u0111\u01b0\u1ee3c khách truy c\u1eadp s\u1eed d\u1ee5ng trang web c\u1ee7a chúng tôi nh\u01b0 th\u1ebf nŕo vŕ \u0111\u1ec3 thu th\u1eadp các ch\u1ec9 s\u1ed1 hi\u1ec7u su\u1ea5t t\u1ed5ng h\u1ee3p. \u0110\u1ec3 těm hi\u1ec3u thęm v\u1ec1 các ph\u01b0\u01a1ng pháp b\u1ea3o v\u1ec7 quy\u1ec1n rięng t\u01b0 c\u1ee7a MixPanel vŕ b\u1ea5t k\u1ef3 l\u1ef1a ch\u1ecdn t\u1eeb ch\u1ed1i nŕo mŕ nó cung c\u1ea5p, hăy nh\u1ea5p vŕo \u0110ÂY. \u0110\u1ec3 těm hi\u1ec3u thęm v\u1ec1 các ph\u01b0\u01a1ng pháp b\u1ea3o v\u1ec7 quy\u1ec1n rięng t\u01b0 c\u1ee7a Google Analytics vŕ b\u1ea5t k\u1ef3 l\u1ef1a ch\u1ecdn t\u1eeb ch\u1ed1i nŕo mŕ nó cung c\u1ea5p, hăy nh\u1ea5p vŕo \u0110ÂY. Quý v\u1ecb c\u0169ng có th\u1ec3 g\u1eedi email \u0111\u1ebfn help@benefitslouisiana.org \u0111\u1ec3 bi\u1ebft thęm thông tin. +privacy.la-dcfs.website=Trang Web c\u1ee7a S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana +privacy.la-dcfs.website.p1=M\u1ed9t khi S\u1edf D\u1ecbch V\u1ee5 Tr\u1ebb Em vŕ Gia \u0110ěnh Louisiana nh\u1eadn \u0111\u01b0\u1ee3c thông tin cá nhân c\u1ee7a quý v\u1ecb, thông tin \u0111ó s\u1ebd tuân theo Tuyęn B\u1ed1 v\u1ec1 Quy\u1ec1n Truy C\u1eadp Web vŕ Quy\u1ec1n Rięng T\u01b0 c\u1ee7a h\u1ecd. +privacy.additional-services=Các D\u1ecbch V\u1ee5 vŕ Tŕi Nguyęn B\u1ed5 Sung +privacy.additional-services.p1=Chúng tôi có th\u1ec3 cung c\u1ea5p các lięn k\u1ebft b\u1ed5 sung \u0111\u1ebfn các tŕi nguyęn mŕ quý v\u1ecb s\u1ebd th\u1ea5y h\u1eefu ích. Các lięn k\u1ebft nŕy có th\u1ec3 d\u1eabn quý v\u1ecb \u0111\u1ebfn các trang web không lięn k\u1ebft v\u1edbi chúng tôi vŕ/ho\u1eb7c ho\u1ea1t \u0111\u1ed9ng theo các ph\u01b0\u01a1ng pháp b\u1ea3o v\u1ec7 quy\u1ec1n rięng t\u01b0 khác. Chúng tôi không ch\u1ecbu trách nhi\u1ec7m \u0111\u1ed1i v\u1edbi n\u1ed9i dung ho\u1eb7c ph\u01b0\u01a1ng pháp b\u1ea3o v\u1ec7 quy\u1ec1n rięng t\u01b0 c\u1ee7a các trang web khác nh\u01b0 th\u1ebf. Chúng tôi khuy\u1ebfn khích khách truy c\u1eadp vŕ ng\u01b0\u1eddi důng l\u01b0u ý khi h\u1ecd r\u1eddi kh\u1ecfi trang web c\u1ee7a chúng tôi vŕ \u0111\u1ecdc các \u0111i\u1ec1u kho\u1ea3n v\u1ec1 quy\u1ec1n rięng t\u01b0 c\u1ee7a b\u1ea5t k\u1ef3 trang web nŕo khác, vě chúng tôi không ki\u1ec3m soát cách thu th\u1eadp thông tin cá nhân c\u1ee7a các trang web khác. +privacy.how-we-protect=Chúng tôi b\u1ea3o v\u1ec7 thông tin c\u1ee7a quý v\u1ecb nh\u01b0 th\u1ebf nŕo +privacy.how-we-protect.p1=B\u1ea3o v\u1ec7 thông tin cá nhân c\u1ee7a quý v\u1ecb lŕ vô cůng quan tr\u1ecdng, do \u0111ó chúng tôi th\u1ef1c hi\u1ec7n các bi\u1ec7n pháp \u0111\u1ec1 phňng v\u1ec1 m\u1eb7t hŕnh chính, k\u1ef9 thu\u1eadt, vŕ v\u1eadt lý h\u1ee3p lý \u0111\u1ec3 b\u1ea3o v\u1ec7 d\u1eef li\u1ec7u tr\u1ef1c tuy\u1ebfn vŕ ngo\u1ea1i tuy\u1ebfn c\u1ee7a quý v\u1ecb. +privacy.how-we-protect.p2=Tuy nhięn, không có h\u1ec7 th\u1ed1ng nŕo có th\u1ec3 \u0111\u01b0\u1ee3c \u0111\u1ea3m b\u1ea3o an toŕn 100%. N\u1ebfu quý v\u1ecb có th\u1eafc m\u1eafc v\u1ec1 b\u1ea3o m\u1eadt thông tin cá nhân c\u1ee7a měnh ho\u1eb7c n\u1ebfu quý v\u1ecb có lý do cho r\u1eb1ng thông tin cá nhân mŕ chúng tôi l\u01b0u gi\u1eef v\u1ec1 quý v\u1ecb không cňn an toŕn n\u1eefa, vui lňng lięn h\u1ec7 v\u1edbi chúng tôi ngay l\u1eadp t\u1ee9c, nh\u01b0 \u0111\u01b0\u1ee3c mô t\u1ea3 trong Thông Báo v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy. +privacy.data-retention.title=L\u01b0u Gi\u1eef D\u1eef Li\u1ec7u +privacy.data-retention.p1=Chúng tôi s\u1ebd l\u01b0u gi\u1eef thông tin c\u1ee7a quý v\u1ecb trong th\u1eddi gian c\u1ea7n thi\u1ebft \u0111\u1ec3: cung c\u1ea5p các D\u1ecbch V\u1ee5 cho quý v\u1ecb, \u0111i\u1ec1u hŕnh ho\u1ea1t \u0111\u1ed9ng kinh doanh c\u1ee7a chúng tôi phů h\u1ee3p v\u1edbi Thông Báo nŕy, ho\u1eb7c ch\u1ee9ng minh s\u1ef1 tuân th\u1ee7 lu\u1eadt pháp vŕ các ngh\u0129a v\u1ee5 pháp lý. +privacy.childrens-privacy.title=Quy\u1ec1n Rięng T\u01b0 c\u1ee7a Tr\u1ebb Em +privacy.childrens-privacy.p1=Chúng tôi không c\u1ed1 ý thu th\u1eadp thông tin cá nhân t\u1eeb tr\u1ebb v\u1ecb thŕnh nięn d\u01b0\u1edbi 16 tu\u1ed5i ch\u01b0a \u0111\u01b0\u1ee3c công nh\u1eadn quy\u1ec1n t\u1ef1 do. +privacy.access-request.title=Yęu C\u1ea7u Truy C\u1eadp +privacy.access-request.p1=BenefitsLouisiana tôn tr\u1ecdng quy\u1ec1n ki\u1ec3m soát c\u1ee7a quý v\u1ecb \u0111\u1ed1i v\u1edbi thông tin c\u1ee7a měnh vŕ theo yęu c\u1ea7u, chúng tôi s\u1ebd xác nh\u1eadn li\u1ec7u chúng tôi có gi\u1eef ho\u1eb7c \u0111ang x\u1eed lý thông tin mŕ chúng tôi \u0111ă thu th\u1eadp t\u1eeb quý v\u1ecb hay không. Quý v\u1ecb c\u0169ng có quy\u1ec1n s\u1eeda \u0111\u1ed5i ho\u1eb7c c\u1eadp nh\u1eadt d\u1eef li\u1ec7u cá nhân không chính xác ho\u1eb7c không \u0111\u1ea7y \u0111\u1ee7, yęu c\u1ea7u xóa thông tin cá nhân c\u1ee7a quý v\u1ecb, ho\u1eb7c yęu c\u1ea7u chúng tôi không s\u1eed d\u1ee5ng thông tin \u0111ó n\u1eefa. Trong các tr\u01b0\u1eddng h\u1ee3p nh\u1ea5t \u0111\u1ecbnh, chúng tôi không th\u1ec3 \u0111áp \u1ee9ng yęu c\u1ea7u c\u1ee7a quý v\u1ecb, ch\u1eb3ng h\u1ea1n nh\u01b0 n\u1ebfu yęu c\u1ea7u \u0111ó c\u1ea3n tr\u1edf các ngh\u0129a v\u1ee5 c\u1ee7a chúng tôi theo quy \u0111\u1ecbnh, \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn các v\u1ea5n \u0111\u1ec1 pháp lý, chúng tôi không th\u1ec3 xác minh danh tính c\u1ee7a quý v\u1ecb ho\u1eb7c c\u1ea7n nhi\u1ec1u chi phí ho\u1eb7c công s\u1ee9c. Tuy nhięn, trong b\u1ea5t k\u1ef3 tr\u01b0\u1eddng h\u1ee3p nŕo, chúng tôi s\u1ebd tr\u1ea3 l\u1eddi yęu c\u1ea7u c\u1ee7a quý v\u1ecb trong m\u1ed9t khung th\u1eddi gian h\u1ee3p lý vŕ gi\u1ea3i thích cho quý v\u1ecb . \u0110\u1ec3 th\u1ef1c hi\u1ec7n m\u1ed9t yęu c\u1ea7u nh\u01b0 th\u1ebf, vui lňng g\u1eedi email cho chúng tôi t\u1ea1i help@benefitslouisiana.org. +privacy.access-request.p2=Vui lňng l\u01b0u ý r\u1eb1ng \u0111\u1ed1i v\u1edbi thông tin cá nhân v\u1ec1 quý v\u1ecb mŕ chúng tôi \u0111ă thu th\u1eadp ho\u1eb7c nh\u1eadn \u0111\u1ec3 x\u1eed lý thay m\u1eb7t cho m\u1ed9t th\u1ef1c th\u1ec3 rięng bi\u1ec7t, không lięn k\u1ebft--\u0111ă xác \u0111\u1ecbnh ph\u01b0\u01a1ng ti\u1ec7n vŕ m\u1ee5c \u0111ích c\u1ee7a vi\u1ec7c x\u1eed lý, t\u1ea5t c\u1ea3 các yęu c\u1ea7u nh\u01b0 v\u1eady ph\u1ea3i \u0111\u01b0\u1ee3c g\u1eedi tr\u1ef1c ti\u1ebfp cho th\u1ef1c th\u1ec3 \u0111ó. Chúng tôi s\u1ebd tôn tr\u1ecdng vŕ h\u1ed7 tr\u1ee3 b\u1ea5t k\u1ef3 h\u01b0\u1edbng d\u1eabn nŕo h\u1ecd cung c\u1ea5p lięn quan \u0111\u1ebfn thông tin cá nhân c\u1ee7a quý v\u1ecb. +privacy.changes.title=Nh\u1eefng thay \u0111\u1ed5i +privacy.changes.p1=Chúng tôi \u0111ôi khi có th\u1ec3 thay \u0111\u1ed5i Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy. Vui lňng ki\u1ec3m tra trang nŕy th\u01b0\u1eddng xuyęn \u0111\u1ec3 bi\u1ebft thông tin c\u1eadp nh\u1eadt, vě vi\u1ec7c quý v\u1ecb ti\u1ebfp t\u1ee5c s\u1eed d\u1ee5ng Trang Web sau khi có b\u1ea5t k\u1ef3 thay \u0111\u1ed5i nŕo trong Chính Sách v\u1ec1 Quy\u1ec1n Rięng T\u01b0 nŕy s\u1ebd c\u1ea5u thŕnh vi\u1ec7c quý v\u1ecb ch\u1ea5p nh\u1eadn các thay \u0111\u1ed5i \u0111ó. Chúng tôi s\u1ebd thông báo cho quý v\u1ecb qua email ho\u1eb7c các ph\u01b0\u01a1ng ti\u1ec7n khác phů h\u1ee3p v\u1edbi lu\u1eadt hi\u1ec7n hŕnh v\u1ec1 b\u1ea5t k\u1ef3 thay \u0111\u1ed5i quan tr\u1ecdng nŕo \u0111\u1ed1i v\u1edbi chính sách nŕy. +privacy.effective-date.title=Ngŕy Có Hi\u1ec7u L\u1ef1c +privacy.effective-date.p1=Phięn b\u1ea3n c\u1ee7a chính sách nŕy có hi\u1ec7u l\u1ef1c t\u1eeb ngŕy 1 tháng 3, 2023. +privacy.questions.title=Th\u1eafc m\u1eafc +privacy.questions.p1=N\u1ebfu quý v\u1ecb có b\u1ea5t k\u1ef3 th\u1eafc m\u1eafc, nh\u1eadn xét, quan ng\u1ea1i, ho\u1eb7c khi\u1ebfu n\u1ea1i nŕo v\u1edbi Trang Web, vui lňng lięn h\u1ec7 v\u1edbi chúng tôi qua email t\u1ea1i help@benefitslouisiana.org. +privacy.questions.p2=Chúng tôi s\u1ebd c\u1ed1 g\u1eafng h\u1ebft s\u1ee9c \u0111\u1ec3 gi\u1ea3i quy\u1ebft v\u1ea5n \u0111\u1ec1. # Client Info -client-info.title=Th\u00F4ng Tin Kh\u1EDBp +client-info.title=Thông Tin Kh\u1edbp client-info.header=Tr\u01B0\u1EDBc khi qu\u00FD v\u1ECB b\u1EAFt \u0111\u1EA7u, ch\u00FAng t\u00F4i c\u1EA7n so s\u00E1nh \u0111\u00FAng t\u00E0i li\u1EC7u c\u1EE7a qu\u00FD v\u1ECB v\u1EDBi \u0111\u01A1n c\u1EE7a qu\u00FD v\u1ECB -client-info.subtext=\u0110i\u1EC1n c\u00E0ng nhi\u1EC1u th\u00F4ng tin c\u00E0ng t\u1ED1t. Vi\u1EC7c n\u00E0y s\u1EBD gi\u00FAp DCFS kh\u1EDBp c\u00E1c t\u00E0i li\u1EC7u c\u1EE7a qu\u00FD v\u1ECB v\u1EDBi \u0111\u01A1n c\u1EE7a qu\u00FD v\u1ECB. -client-info.first-name-question=T\u00EAn c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC? -client-info.provide-first-name=\u0110\u1EA3m b\u1EA3o qu\u00FD v\u1ECB cho bi\u1EBFt t\u00EAn -client-info.name-subtext=Ph\u1EA3i h\u1EE3p ph\u00E1p nh\u01B0 tr\u00EAn gi\u1EA5y t\u1EDD t\u00F9y th\u00E2n c\u1EE7a qu\u00FD v\u1ECB. -client-info.last-name-question=H\u1ECD c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC? -client-info.provide-last-name=\u0110\u1EA3m b\u1EA3o qu\u00FD v\u1ECB cho bi\u1EBFt h\u1ECD -client-info.email-address=\u0110\u1ECBa ch\u1EC9 email c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC? -client-info.contact-subtext=Kh\u00F4ng b\u1EAFt bu\u1ED9c. Vi\u1EC7c n\u00E0y l\u00E0 \u0111\u1EC3 DCFS c\u00F3 th\u1EC3 li\u00EAn h\u1EC7 v\u1EDBi qu\u00FD v\u1ECB n\u1EBFu h\u1ECD c\u00F3 c\u00E2u h\u1ECFi. -client-info.provide-correct-email=\u0110\u1EA3m b\u1EA3o qu\u00FD v\u1ECB \u0111\u00E3 nh\u1EADp ch\u00EDnh x\u00E1c \u0111\u1ECBa ch\u1EC9 email c\u1EE7a m\u00ECnh -client-info.phone-number=S\u1ED1 \u0111i\u1EC7n tho\u1EA1i c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC? +client-info.subtext=\u0110i\u1ec1n cŕng nhi\u1ec1u thông tin cŕng t\u1ed1t. Vi\u1ec7c nŕy s\u1ebd giúp DCFS kh\u1edbp các tŕi li\u1ec7u c\u1ee7a quý v\u1ecb v\u1edbi \u0111\u01a1n c\u1ee7a quý v\u1ecb. +client-info.first-name-question=Tęn c\u1ee7a quý v\u1ecb lŕ gě? +client-info.provide-first-name=\u0110\u1ea3m b\u1ea3o quý v\u1ecb cho bi\u1ebft tęn +client-info.name-subtext=Ph\u1ea3i h\u1ee3p pháp nh\u01b0 tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a quý v\u1ecb. +client-info.last-name-question=H\u1ecd c\u1ee7a quý v\u1ecb lŕ gě? +client-info.provide-last-name=\u0110\u1ea3m b\u1ea3o quý v\u1ecb cho bi\u1ebft h\u1ecd +client-info.email-address=\u0110\u1ecba ch\u1ec9 email c\u1ee7a quý v\u1ecb lŕ gě? +client-info.contact-subtext=Không b\u1eaft bu\u1ed9c. Vi\u1ec7c nŕy lŕ \u0111\u1ec3 DCFS có th\u1ec3 lięn h\u1ec7 v\u1edbi quý v\u1ecb n\u1ebfu h\u1ecd có câu h\u1ecfi. +client-info.provide-correct-email=\u0110\u1ea3m b\u1ea3o quý v\u1ecb \u0111ă nh\u1eadp chính xác \u0111\u1ecba ch\u1ec9 email c\u1ee7a měnh +client-info.phone-number=S\u1ed1 \u0111i\u1ec7n tho\u1ea1i c\u1ee7a quý v\u1ecb lŕ gě? client-info.phone-number-placeholder=(999) 999-9999 -client-info.provide-10-digit-phone=\u0110\u1EA3m b\u1EA3o nh\u1EADp s\u1ED1 \u0111i\u1EC7n tho\u1EA1i c\u00F3 10 ch\u1EEF s\u1ED1. -client-info.date-of-birth=Ng\u00E0y sinh c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC? -client-info.date-of-birth.help.month=mm (th\u00E1ng) -client-info.date-of-birth.help.day=dd (ng\u00E0y) +client-info.provide-10-digit-phone=\u0110\u1ea3m b\u1ea3o nh\u1eadp s\u1ed1 \u0111i\u1ec7n tho\u1ea1i có 10 ch\u1eef s\u1ed1. +client-info.date-of-birth=Ngŕy sinh c\u1ee7a quý v\u1ecb lŕ gě? +client-info.date-of-birth.help.month=mm (tháng) +client-info.date-of-birth.help.day=dd (ngŕy) client-info.date-of-birth.help.year=yyyy (n\u0103m) -client-info.date-range-validation=Vui l\u00F2ng \u0111\u1EA3m b\u1EA3o r\u1EB1ng ng\u00E0y sinh n\u1EB1m trong kho\u1EA3ng t\u1EEB 1/1/1900 \u0111\u1EBFn h\u00F4m nay. -client-info.date-format-validation=Vui l\u00F2ng nh\u1EADp ng\u00E0y sinh c\u1EE7a qu\u00FD v\u1ECB \u1EDF \u0111\u1ECBnh d\u1EA1ng: mm/dd/yyyy (th\u00E1ng/ng\u00E0y/n\u0103m) -client-info.case-number=N\u1EBFu c\u00F3, s\u1ED1 h\u1ED3 s\u01A1 c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC -client-info.number-format=\u0110\u1EA3m b\u1EA3o r\u1EB1ng s\u1ED1 h\u1ED3 s\u01A1 c\u1EE7a qu\u00FD v\u1ECB ch\u1EC9 ch\u1EE9a s\u1ED1. -client-info.ssn=S\u1ED1 an sinh x\u00E3 h\u1ED9i c\u1EE7a qu\u00FD v\u1ECB l\u00E0 g\u00EC? -client-info.provide-9-digit-ssn=\u0110\u1EA3m b\u1EA3o s\u1ED1 SSN c\u1EE7a qu\u00FD v\u1ECB c\u00F3 9 ch\u1EEF s\u1ED1. -client-info.provide-9-digit-case-id=N\u00EAn nh\u1EDB case id ph\u1EA3i c\u00F3 9 con s\u1ED1 +client-info.date-range-validation=Vui lňng \u0111\u1ea3m b\u1ea3o r\u1eb1ng ngŕy sinh n\u1eb1m trong kho\u1ea3ng t\u1eeb 1/1/1900 \u0111\u1ebfn hôm nay. +client-info.date-format-validation=Vui lňng nh\u1eadp ngŕy sinh c\u1ee7a quý v\u1ecb \u1edf \u0111\u1ecbnh d\u1ea1ng: mm/dd/yyyy (tháng/ngŕy/n\u0103m) +client-info.case-number=N\u1ebfu có, s\u1ed1 h\u1ed3 s\u01a1 c\u1ee7a quý v\u1ecb lŕ gě +client-info.number-format=\u0110\u1ea3m b\u1ea3o r\u1eb1ng s\u1ed1 h\u1ed3 s\u01a1 c\u1ee7a quý v\u1ecb ch\u1ec9 ch\u1ee9a s\u1ed1. +client-info.ssn=S\u1ed1 an sinh xă h\u1ed9i c\u1ee7a quý v\u1ecb lŕ gě? +client-info.provide-9-digit-ssn=\u0110\u1ea3m b\u1ea3o s\u1ed1 SSN c\u1ee7a quý v\u1ecb có 9 ch\u1eef s\u1ed1. +client-info.provide-9-digit-case-id=Nęn nh\u1edb case id ph\u1ea3i có 9 con s\u1ed1 # How to add documents -how-to-add-documents.title=C\u00E1ch th\u00EAm t\u00E0i li\u1EC7u -how-to-add-documents.header=C\u00E1ch th\u00EAm t\u00E0i li\u1EC7u v\u00E0o \u0111\u01A1n c\u1EE7a qu\u00FD v\u1ECB -how-to-add-documents.take-photos=Ch\u1EE5p h\u00ECnh tr\u00EAn \u0111i\u1EC7n tho\u1EA1i c\u1EE7a qu\u00FD v\u1ECB -how-to-add-documents.select-files=Ch\u1ECDn c\u00E1c t\u1EADp tin \u0111\u01B0\u1EE3c l\u01B0u tr\u1EEF tr\u00EAn thi\u1EBFt b\u1ECB c\u1EE7a qu\u00FD v\u1ECB -how-to-add-documents.take-screenshot=Ch\u1EE5p m\u00E0n h\u00ECnh tr\u00EAn thi\u1EBFt b\u1ECB c\u1EE7a qu\u00FD v\u1ECB -how-to-add-documents.you-can-upload=Qu\u00FD v\u1ECB c\u00F3 th\u1EC3 t\u1EA3i l\u00EAn t\u1ED1i \u0111a {0} t\u1EADp tin . -how-to-add-documents.each-file=M\u1ED7i t\u1EADp tin c\u00F3 th\u1EC3 c\u00F3 k\u00EDch th\u01B0\u1EDBc t\u1ED1i \u0111a l\u00E0 {0} MB. +how-to-add-documents.title=Cách thęm tŕi li\u1ec7u +how-to-add-documents.header=Cách thęm tŕi li\u1ec7u vŕo \u0111\u01a1n c\u1ee7a quý v\u1ecb +how-to-add-documents.take-photos=Ch\u1ee5p hěnh tręn \u0111i\u1ec7n tho\u1ea1i c\u1ee7a quý v\u1ecb +how-to-add-documents.select-files=Ch\u1ecdn các t\u1eadp tin \u0111\u01b0\u1ee3c l\u01b0u tr\u1eef tręn thi\u1ebft b\u1ecb c\u1ee7a quý v\u1ecb +how-to-add-documents.take-screenshot=Ch\u1ee5p mŕn hěnh tręn thi\u1ebft b\u1ecb c\u1ee7a quý v\u1ecb +how-to-add-documents.you-can-upload=Quý v\u1ecb có th\u1ec3 t\u1ea3i lęn t\u1ed1i \u0111a {0} t\u1eadp tin . +how-to-add-documents.each-file=M\u1ed7i t\u1eadp tin có th\u1ec3 có kích th\u01b0\u1edbc t\u1ed1i \u0111a lŕ {0} MB. # Upload documents -upload-documents.title=T\u1EA3i l\u00EAn t\u00E0i li\u1EC7u -upload-documents.header=T\u1EA3i l\u00EAn t\u00E0i li\u1EC7u -upload-documents.button-text=T\u00F4i \u0111\u00E3 t\u1EA3i l\u00EAn xong +upload-documents.title=T\u1ea3i lęn tŕi li\u1ec7u +upload-documents.header=T\u1ea3i lęn tŕi li\u1ec7u +upload-documents.button-text=Tôi \u0111ă t\u1ea3i lęn xong # Document submit confirmation -doc-submit-confirmation.title=X\u00E1c nh\u1EADn g\u1EEDi t\u00E0i li\u1EC7u -doc-submit-confirmation.header=S\u1EB5n s\u00E0ng g\u1EEDi t\u00E0i li\u1EC7u c\u1EE7a qu\u00FD v\u1ECB? -doc-submit-confirmation.yes-submit-and-finish=C\u00F3, g\u1EEDi v\u00E0 ho\u00E0n t\u1EA5t -doc-submit-confirmation.no-add-more-documents=Kh\u00F4ng, th\u00EAm c\u00E1c t\u00E0i li\u1EC7u kh\u00E1c +doc-submit-confirmation.title=Xác nh\u1eadn g\u1eedi tŕi li\u1ec7u +doc-submit-confirmation.header=S\u1eb5n sŕng g\u1eedi tŕi li\u1ec7u c\u1ee7a quý v\u1ecb? +doc-submit-confirmation.yes-submit-and-finish=Có, g\u1eedi vŕ hoŕn t\u1ea5t +doc-submit-confirmation.no-add-more-documents=Không, thęm các tŕi li\u1ec7u khác # Final confirmation -final-confirmation.title=\u0111\u00E3 g\u1EEDi t\u00E0i li\u1EC7u -final-confirmation.header=T\u1ED1t l\u1EAFm! T\u00E0i li\u1EC7u c\u1EE7a qu\u00FD v\u1ECB \u0111ang \u0111\u01B0\u1EE3c g\u1EEDi \u0111\u1EBFn DCFS. -final-confirmation.questions=N\u1EBFu qu\u00FD v\u1ECB c\u00F3 th\u1EAFc m\u1EAFc v\u1EC1 \u0111\u01A1n ho\u1EB7c t\u00E0i li\u1EC7u c\u1EE7a m\u00ECnh +final-confirmation.title=\u0111ă g\u1eedi tŕi li\u1ec7u +final-confirmation.header=T\u1ed1t l\u1eafm! Tŕi li\u1ec7u c\u1ee7a quý v\u1ecb \u0111ang \u0111\u01b0\u1ee3c g\u1eedi \u0111\u1ebfn DCFS. +final-confirmation.questions=N\u1ebfu quý v\u1ecb có th\u1eafc m\u1eafc v\u1ec1 \u0111\u01a1n ho\u1eb7c tŕi li\u1ec7u c\u1ee7a měnh final-confirmation.dcfs-phone=\u0110t: 888-524-3578 -final-confirmation.dcfs-call=G\u1ECDi cho DCFS theo s\u1ED1 (888) 524-3578 -final-confirmation.provide-feedback=N\u1EBFu qu\u00FD v\u1ECB c\u1EA3m th\u1EA5y tho\u1EA3i m\u00E1i, h\u00E3y cho ch\u00FAng t\u00F4i bi\u1EBFt th\u00EAm v\u1EC1 tr\u1EA3i nghi\u1EC7m c\u1EE7a qu\u00FD v\u1ECB v\u1EDBi trang web n\u00E0y. -final-confirmation.feedback-input=Vi\u1EC7c t\u1EA3i l\u00EAn t\u00E0i li\u1EC7u c\u1EE7a qu\u00FD v\u1ECB b\u1EB1ng trang web n\u00E0y d\u1EC5 d\u00E0ng hay kh\u00F3 kh\u0103n nh\u01B0 th\u1EBF n\u00E0o? (Kh\u00F4ng b\u1EAFt bu\u1ED9c) -final-confirmation.feedback-input.o1=R\u1EA5t d\u1EC5 -final-confirmation.feedback-input.o2=D\u1EC5 d\u00E0ng -final-confirmation.feedback-input.o3=Kh\u00F4ng d\u1EC5 c\u0169ng kh\u00F4ng kh\u00F3 -final-confirmation.feedback-input.o4=Kh\u00F3 -final-confirmation.feedback-input.o5=R\u1EA5t kh\u00F3 -final-confirmation.additional-comments=Nh\u1EADn x\u00E9t b\u1ED5 sung (Kh\u00F4ng B\u1EAFt Bu\u1ED9c) -final-confirmation.feedback-submit-feedback=G\u1EEDi Ph\u1EA3n H\u1ED3i -final-confirmation.feedback-submitted=C\u00E1m \u01A1n ph\u1EA3n h\u1ED3i c\u1EE7a qu\u00FD v\u1ECB! N\u00F3 s\u1EBD gi\u00FAp c\u1EA3i thi\u1EC7n trang web n\u00E0y cho c\u00E1c \u0111\u01B0\u01A1ng \u0111\u01A1n trong t\u01B0\u01A1ng lai. -final-confirmation.answer-feedback-question=\u0110\u1EA3m b\u1EA3o qu\u00FD v\u1ECB x\u1EBFp h\u1EA1ng +final-confirmation.dcfs-call=G\u1ecdi cho DCFS theo s\u1ed1 (888) 524-3578 +final-confirmation.provide-feedback=N\u1ebfu quý v\u1ecb c\u1ea3m th\u1ea5y tho\u1ea3i mái, hăy cho chúng tôi bi\u1ebft thęm v\u1ec1 tr\u1ea3i nghi\u1ec7m c\u1ee7a quý v\u1ecb v\u1edbi trang web nŕy. +final-confirmation.feedback-input=Vi\u1ec7c t\u1ea3i lęn tŕi li\u1ec7u c\u1ee7a quý v\u1ecb b\u1eb1ng trang web nŕy d\u1ec5 dŕng hay khó kh\u0103n nh\u01b0 th\u1ebf nŕo? (Không b\u1eaft bu\u1ed9c) +final-confirmation.feedback-input.o1=R\u1ea5t d\u1ec5 +final-confirmation.feedback-input.o2=D\u1ec5 dŕng +final-confirmation.feedback-input.o3=Không d\u1ec5 c\u0169ng không khó +final-confirmation.feedback-input.o4=Khó +final-confirmation.feedback-input.o5=R\u1ea5t khó +final-confirmation.additional-comments=Nh\u1eadn xét b\u1ed5 sung (Không B\u1eaft Bu\u1ed9c) +final-confirmation.additional-comments-note=Chú ý: Chúng tôi không th\u1ec3 chia s\u1ebb b\u1ea5t c\u1ee9 gě quý v\u1ecb nh\u1eadp vŕo \u0111ây v\u1edbi ng\u01b0\u1eddi ph\u1ee5 trách h\u1ed3 s\u01a1 c\u1ee7a quý v\u1ecb. +final-confirmation.feedback-submit-feedback=G\u1eedi Ph\u1ea3n H\u1ed3i +final-confirmation.feedback-submitted=Cám \u01a1n ph\u1ea3n h\u1ed3i c\u1ee7a quý v\u1ecb! Nó s\u1ebd giúp c\u1ea3i thi\u1ec7n trang web nŕy cho các \u0111\u01b0\u01a1ng \u0111\u01a1n trong t\u01b0\u01a1ng lai. +final-confirmation.answer-feedback-question=\u0110\u1ea3m b\u1ea3o quý v\u1ecb x\u1ebfp h\u1ea1ng + +# How this works +how-this-works.title=Cách n\u1ed9p \u0111\u01a1n \u0111\u0103ng kí +how-this-works.header=Cách n\u1ed9p \u0111\u01a1n \u0111\u0103ng kí +how-this-works.subtext=M\u1eabu \u0111\u01a1n nŕy ch\u1ec9 c\u1ea7n không t\u1edbi 20 phút \u0111\u1ec3 hoŕn thŕnh. +how-this-works.we-will-ask=Chúng tôi s\u1ebd h\u1ecfi quý v\u1ecb v\u1ec1 +how-this-works.we-will-ask-l1=Thông tin cá nhân +how-this-works.we-will-ask-l2=Nh\u1eefng ng\u01b0\u1eddi \u0111ang s\u1ed1ng chung v\u1edbi quý v\u1ecb +how-this-works.we-will-ask-l3=Thu nh\u1eadp +how-this-works.we-will-ask-l4=Chi phí +how-this-works.submitting-an-incomplete-app=N\u1ed9p \u0111\u01a1n \u0111\u0103ng kí ch\u01b0a \u0111\u1ea7y \u0111\u1ee7 (ch\u1ec9 dŕnh cho SNAP) +how-this-works.submitting-an-incomplete-app-l1=N\u1ebfu b\u1ea1n \u0111ang \u0111\u0103ng ký SNAP, b\u1ea1n s\u1ebd có l\u1ef1a ch\u1ecdn g\u1eedi \u0111\u01a1n \u0111\u0103ng ký không \u0111\u1ea7y \u0111\u1ee7 ch\u1ec9 có tęn, \u0111\u1ecba ch\u1ec9 vŕ ch\u1eef ký c\u1ee7a b\u1ea1n. +how-this-works.submitting-an-incomplete-app-l2=N\u1ebfu b\u1ea1n g\u1eedi \u0111\u01a1n \u0111\u0103ng ký không \u0111\u1ea7y \u0111\u1ee7, b\u1ea1n có th\u1ec3 m\u1ea5t nhi\u1ec1u th\u1eddi gian x\u1eed lý h\u01a1n vŕ lięn l\u1ea1c nhi\u1ec1u h\u01a1n v\u1edbi DCFS. +how-this-works.adding-documents=B\u1ed5 sung tŕi li\u1ec7u +how-this-works.adding-documents-l1=\u1ede ph\u1ea7n cu\u1ed1i c\u1ee7a \u0111\u01a1n \u0111\u0103ng kí, quý v\u1ecb có th\u1ec3 b\u1ed5 sung thęm h\u1ed3 s\u01a1 nh\u01b0 gi\u1ea5y t\u1edd tu\u1ef3 thân kčm \u1ea3nh, phi\u1ebfu l\u01b0\u01a1ng ho\u1eb7c hoá \u0111\u01a1n y t\u1ebf. +how-this-works.adding-documents-l2=Quý v\u1ecb có th\u1ec3 s\u1eed d\u1ee5ng \u0111i\u1ec7n tho\u1ea1i c\u1ee7a měnh \u0111\u1ec3 ch\u1ee5p hěnh gi\u1ea5y t\u1edd ho\u1eb7c t\u1ea3i tŕi li\u1ec7u t\u1eeb thi\u1ebft b\u1ecb c\u1ee7a quý v\u1ecb. +how-this-works.adding-documents-l3=Quý v\u1ecb c\u0169ng hoŕn toŕn có th\u1ec3 quay l\u1ea1i trang ch\u1ee7 \u0111\u1ec3 b\u1ed5 sung thęm tŕi li\u1ec7u sau \u0111ó. +how-this-works.after-you-submit=Sau khi quý v\u1ecb n\u1ed9p \u0111\u01a1n +how-this-works.after-you-submit-l1=Ngŕy n\u1ed9p \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb lŕ ngŕy s\u1edbm nh\u1ea5t mŕ quý v\u1ecb có th\u1ec3 b\u1eaft \u0111\u1ea7u nh\u1eadn phúc l\u1ee3i. N\u1ebfu quý v\u1ecb n\u1ed9p \u0111\u01a1n \u0111\u0103ng kí sau 4:30 pm Central Time ho\u1eb7c vŕo cu\u1ed1i tu\u1ea7n hay ngŕy l\u1ec5, ngŕy n\u1ed9p \u0111\u01a1n s\u1ebd lŕ ngŕy lŕm vi\u1ec7c ti\u1ebfp theo. +how-this-works.after-you-submit-l2=M\u1ed9t s\u1ed1 ng\u01b0\u1eddi c\u0169ng c\u1ea7n ph\u1ea3i t\u1ea1o tŕi kho\u1ea3n HiRE, ho\u1eb7c có m\u1ed9t tŕi kho\u1ea3n HiRE \u0111ang ho\u1ea1t \u0111\u1ed9ng v\u1edbi \u1ee6y ban L\u1ef1c l\u01b0\u1ee3ng Lao \u0111\u1ed9ng Louisiana \u0111\u1ec3 nh\u1eadn tr\u1ee3 c\u1ea5p SNAP. Chúng tôi s\u1ebd thông báo v\u1edbi quý v\u1ecb n\u1ebfu phát hi\u1ec7n có ai \u0111ó trong m\u1eabu \u0111\u01a1n nŕy c\u1ea7n t\u1ea1o tŕi kho\u1ea3n HiRE. +how-this-works.after-you-submit-l3=\u0110a s\u1ed1 các ch\u01b0\u01a1ng trěnh tręn \u0111\u01a1n \u0111\u0103ng kí nŕy \u0111\u1ec1u yęu c\u1ea7u th\u1ef1c hi\u1ec7n ph\u1ecfng v\u1ea5n sau khi quý v\u1ecb n\u1ed9p \u0111\u01a1n. S\u1ebd có m\u1ed9t s\u1ed1 \u0111i\u1ec7n tho\u1ea1i \u0111\u1ec3 quý v\u1ecb g\u1ecdi sau khi quý v\u1ecb \u0111ă n\u1ed9p \u0111\u01a1n \u0111\u0103ng kí nh\u1eb1m h\u1eb9n gi\u1edd ph\u1ecfng v\u1ea5n. +how-this-works.your-information-is-secure=Thông tin c\u1ee7a quý v\u1ecb \u0111\u01b0\u1ee3c b\u1ea3o m\u1eadt vŕ s\u1ebd \u0111\u01b0\u1ee3c x\u1eed lý d\u1ef1a tręn chính sách v\u1ec1 quy\u1ec1n rięng t\u01b0 c\u1ee7a chúng tôi. + +# Timeout Notice +timeout-notice.title=Thông báo h\u1ebft th\u1eddi gian +timeout-notice.header=Sau m\u1ed9t gi\u1edd không ho\u1ea1t \u0111\u1ed9ng, d\u1eef li\u1ec7u c\u1ee7a b\u1ea1n s\u1ebd b\u1ecb xóa +timeout-notice.subtext=

\u0110\u1ec3 b\u1ea3o v\u1ec7 thông tin c\u1ee7a b\u1ea1n, phięn c\u1ee7a b\u1ea1n s\u1ebd h\u1ebft th\u1eddi gian n\u1ebfu b\u1ea1n r\u1eddi kh\u1ecfi \u1ee9ng d\u1ee5ng t\u1eeb 1 gi\u1edd tr\u1edf lęn.

B\u1ea1n không th\u1ec3 l\u01b0u \u1ee9ng d\u1ee5ng c\u1ee7a měnh vŕ quay l\u1ea1i sau.

+ +# Language preferences +language-preference.title=\u01afu tięn ngôn ng\u1eef +language-preference.language-to-read-label=Quý v\u1ecb \u01b0a thích \u0111\u1ecdc ho\u1eb7c vi\u1ebft b\u1eb1ng ngôn ng\u1eef nŕo? +language-preference.language-to-read-help=DCFS s\u1ebd c\u1ed1 g\u1eafng \u0111\u1ec3 cung c\u1ea5p tŕi li\u1ec7u b\u1eb1ng ngôn ng\u1eef \u01b0a thích c\u1ee7a b\u1ea1n. +language-preference.language-to-speak-label=Quý v\u1ecb \u01b0a thích nói b\u1eb1ng ngôn ng\u1eef nŕo? +language-preference.language-to-speak-help=DCFS s\u1ebd c\u1ed1 g\u1eafng \u0111\u1ec3 cung c\u1ea5p m\u1ed9t ng\u01b0\u1eddi nói \u0111\u01b0\u1ee3c ngôn ng\u1eef c\u1ee7a quý v\u1ecb. +language-preference.need-interpreter-label=Quý v\u1ecb c\u1ea7n m\u1ed9t thông d\u1ecbch vięn ngôn ng\u1eef không? +language-preference.need-interpreter-help=DCFS s\u1ebd c\u1ed1 g\u1eafng cung c\u1ea5p quý v\u1ecb v\u1edbi ng\u01b0\u1eddi nói cůng ngôn ng\u1eef, bao g\u1ed3m c\u1ea3 ngôn ng\u1eef ký hi\u1ec7u M\u1ef9 (ASL). +language-preference.english=English +language-preference.spanish=Ti\u1ebfng Tây Ban Nha +language-preference.vietnamese=Ti\u1ebfng Vi\u1ec7t + +# Choose programs +choose-programs.title=Ch\u1ecdn ch\u01b0\u01a1ng trěnh +choose-programs.header=Quý v\u1ecb mu\u1ed1n \u0111\u0103ng ký cho h\u1ed7 tr\u1ee3 nŕo? +choose-programs.snap=Th\u1ef1c ph\u1ea9m (SNAP) +choose-programs.snap-help=Ti\u1ec1n \u0111\u1ec3 mua th\u1ef1c ph\u1ea9m cho quý v\u1ecb vŕ gia \u0111ěnh c\u1ee7a quý v\u1ecb. +choose-programs.cash=H\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t (FITAP ho\u1eb7c KCSP) +choose-programs.cash-help=FITAP: H\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t \u0111\u1ec3 giúp nh\u1eefng ng\u01b0\u1eddi có con \u0111áp \u1ee9ng các nhu c\u1ea7u c\u01a1 b\u1ea3n cho \u0111\u1ebfn khi h\u1ecd có th\u1ec3 t\u1ef1 nuôi s\u1ed1ng b\u1ea3n thân

KCSP: H\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t cho ng\u01b0\u1eddi thân \u0111ang ch\u0103m sóc tr\u1ebb em không th\u1ec3 s\u1ed1ng cůng cha m\u1eb9. +choose-programs.note=

L\u01b0u ý: Nhân vięn xă h\u1ed9i c\u1ee7a b\u1ea1n s\u1ebd xác \u0111\u1ecbnh xem b\u1ea1n có \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia m\u1ed9t ho\u1eb7c c\u1ea3 hai ch\u01b0\u01a1ng trěnh h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t hay không.

N\u1ebfu b\u1ea1n \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n cho c\u1ea3 hai, nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 c\u1ee7a b\u1ea1n s\u1ebd gi\u1ea3i thích nh\u1eefng khác bi\u1ec7t \u0111\u1ec3 b\u1ea1n có th\u1ec3 \u0111\u01b0a ra l\u1ef1a ch\u1ecdn.

+choose-programs.snap-only=

L\u01b0u ý: Hi\u1ec7n t\u1ea1i m\u1eabu \u0111\u01a1n nŕy ch\u1ec9 áp d\u1ee5ng cho tr\u1ee3 c\u1ea5p SNAP. N\u1ebfu quý v\u1ecb c\u1ea7n h\u1ed7 tr\u1ee3 cho các ch\u01b0\u01a1ng trěnh khác, hăy truy c\u1eadp LA CAFÉ \u0111\u1ec3 bi\u1ebft thęm thông tin.

+ +# Expedited SNAP +expedited-snap.title=Thông báo kh\u1ea9n +expedited-snap.header=N\u1ebfu \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n, b\u1ea1n có th\u1ec3 nh\u1eadn \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 th\u1ef1c ph\u1ea9m c\u1ea5p t\u1ed1c (SNAP) sau b\u1ea3y ngŕy ho\u1eb7c ít h\u01a1n +expedited-snap.what-is=Ch\u01b0\u01a1ng trěnh SNAP c\u1ea5p t\u1ed1c lŕ gě? +expedited-snap.what-is.content=SNAP c\u1ea5p t\u1ed1c lŕ ch\u01b0\u01a1ng trěnh giúp quý v\u1ecb có th\u1ec3 nh\u1eadn phúc l\u1ee3i h\u1ed7 tr\u1ee3 th\u1ef1c ph\u1ea9m s\u1edbm h\u01a1n. Nh\u1eefng cá nhân \u0111\u1ee7 tięu chu\u1ea9n nh\u1eadn SNAP c\u1ea5p t\u1ed1c có th\u1ec3 \u0111\u01b0\u1ee3c giao th\u1ebb EBT trong t\u1ed1i \u0111a 7 ngŕy. +expedited-snap.who-qualifies=Ai \u0111\u1ee7 tięu chu\u1ea9n nh\u1eadn SNAP c\u1ea5p t\u1ed1c? +expedited-snap.who-qualifies.content=Quý v\u1ecb có th\u1ec3 \u0111\u1ee7 tięu chu\u1ea9n nh\u1eadn SNAP c\u1ea5p t\u1ed1c n\u1ebfu \u0111áp \u1ee9ng b\u1ea5t kě těnh hu\u1ed1ng nŕo sau \u0111ây: +expedited-snap.who-qualifies.li1=M\u1ee9c l\u01b0\u01a1ng hŕng tháng c\u1ee7a quý v\u1ecb th\u1ea5p h\u01a1n $150 vŕ quý v\u1ecb có t\u1ed1i \u0111a $100 ti\u1ec1n ti\u1ebft ki\u1ec7m cá nhân, ti\u1ec1n ngân hŕng hay ti\u1ec1n m\u1eb7t. +expedited-snap.who-qualifies.li2=Chi phí ti\u1ec1n tr\u1ecd ho\u1eb7c th\u1ebf ch\u1ea5p, \u0111i\u1ec7n n\u01b0\u1edbc sinh ho\u1ea1t nhi\u1ec1u h\u01a1n m\u1ee9c thu nh\u1eadp vŕ ti\u1ebft ki\u1ec7m c\u1ee7a quý v\u1ecb. +expedited-snap.who-qualifies.li3=Quý v\u1ecb lŕ ng\u01b0\u1eddi nh\u1eadp c\u01b0 ho\u1eb7c nông dân th\u1eddi v\u1ee5 hi\u1ec7n không có vi\u1ec7c lŕm vŕ có t\u1ed1i \u0111a $100 ti\u1ec1n ti\u1ebft ki\u1ec7m cá nhân, ti\u1ec1n ngân hŕng hay ti\u1ec1n m\u1eb7t. + +# Signpost +signpost.step=B\u01b0\u1edbc 1 tręn 5 +signpost.title=B\u1ea3ng ch\u1ec9 d\u1eabn +signpost.header=Thông tin c\u01a1 b\u1ea3n +signpost.well-ask-about=Chúng tôi s\u1ebd h\u1ecfi v\u1ec1 +signpost.your-personal-info=Thông tin cá nhân c\u1ee7a b\u1ea1n +signpost.current-living-address=\u0110\u1ecba ch\u1ec9 c\u01b0 ng\u1ee5 hi\u1ec7n t\u1ea1i +signpost.mailing-address=\u0110\u1ecba ch\u1ec9 g\u1eedi th\u01b0 + +# Who's Applying +whos-applying.title=Ai \u0111ang \u0111\u0103ng ký +whos-applying.header=Tr\u01b0\u1edbc khi b\u1ea1n b\u1eaft \u0111\u1ea7u, chúng tôi mu\u1ed1n bi\u1ebft b\u1ea1n \u0111ang s\u1eed d\u1ee5ng \u0111\u01a1n trang web nŕy nh\u01b0 th\u1ebf nŕo. +whos-applying.radio1=Tôi \u0111ang n\u1ed9p \u0111\u01a1n cho chính tôi, cho thŕnh vięn trong gia \u0111ěnh, cho ng\u01b0\u1eddi nŕo \u0111ó trong gia \u0111ěnh tôi vŕ/ho\u1eb7c cho ng\u01b0\u1eddi không ph\u1ea3i lŕ thŕnh vięn trong gia \u0111ěnh. +whos-applying.radio2=Tôi lŕ ng\u01b0\u1eddi h\u1eddp tác trong c\u1ed9ng \u0111\u1ed3ng \u0111\u1ec3 h\u1ed7 tr\u1ee3 khách hŕng. +whos-applying.radio3=Tôi lŕ m\u1ed9t nhân vięn DCFS \u0111ang h\u1ed7 tr\u1ee3 khách hŕng. +whos-applying.radio4=Tôi lŕ m\u1ed9t CSR \u0111ang h\u1ed7 tr\u1ee3 khách hŕng. + +# Applicant Notice +applicant-notice.title=Thông báo cho ng\u01b0\u1eddi n\u1ed9p \u0111\u01a1n +applicant-notice.header=L\u01b0u ý v\u1ec1 các \u0111\u1ed1i t\u01b0\u1ee3ng c\u1ea7n b\u1ed5 sung thông tin +applicant-notice.content=N\u1ebfu quý v\u1ecb \u0111ang \u0111i\u1ec1n \u0111\u01a1n \u0111\u0103ng ký thay cho m\u1ed9t ng\u01b0\u1eddi khác, hăy l\u01b0u ý \u0111i\u1ec1n vŕo nh\u1eefng trang sau \u0111úng thông tin c\u1ee7a ng\u01b0\u1eddi c\u1ea7n \u0111\u01b0\u1ee3c \u0111\u0103ng ký, không ph\u1ea3i thông tin c\u1ee7a quý v\u1ecb. + +# Personal info +personal-info.title=Thông tin cá nhân +personal-info.header=Nói cho chúng tôi bi\u1ebft v\u1ec1 b\u1ea1n +personal-info.firstname=Tęn c\u1ee7a quý v\u1ecb lŕ gě? +personal-info.firstname-help=Nh\u01b0 nó xu\u1ea5t hi\u1ec7n tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a b\u1ea1n +personal-info.lastname=H\u1ecd c\u1ee7a quý v\u1ecb lŕ gě? +personal-info.lastname-help=Nh\u01b0 nó xu\u1ea5t hi\u1ec7n tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a b\u1ea1n. N\u1ebfu b\u1ea1n có 2 h\u1ecd, hăy nh\u1eadp chính xác nh\u01b0 tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a b\u1ea1n (ví d\u1ee5: có d\u1ea5u g\u1ea1ch n\u1ed1i ho\u1eb7c 2 t\u1eeb). +personal-info.othernames=Nh\u1eefng tęn khác b\u1ea1n \u0111ang s\u1eed d\u1ee5ng ho\u1eb7c \u0111ă s\u1eed d\u1ee5ng tr\u01b0\u1edbc \u0111ây +personal-info.othernames-help=Li\u1ec7t kę h\u1ecd tr\u01b0\u1edbc khi \u0111ám c\u01b0\u1edbi, tęn h\u1ee3p pháp \u0111ă thay \u0111\u1ed5i, vŕ tęn \u01b0a thích theo gi\u1edbi tính. +personal-info.birthdate=Ngŕy sinh c\u1ee7a quý v\u1ecb lŕ gě? +personal-info.birthdate-help=Tháng/ Ngŕy/ N\u0103m +personal-info.sex=Gi\u1edbi tính c\u1ee7a b\u1ea1n lŕ gě? +personal-info.sex-help=V\u1ec1 m\u1eb7t pháp lý nh\u01b0 nó xu\u1ea5t hi\u1ec7n tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a b\u1ea1n. Chúng tôi r\u1ea5t ti\u1ebfc r\u1eb1ng câu h\u1ecfi nŕy b\u1ecb h\u1ea1n ch\u1ebf. +personal-info.sex-female=N\u1eef gi\u1edbi +personal-info.sex-male=Nam gi\u1edbi +personal-info.marital-status=Těnh tr\u1ea1ng hôn nhân c\u1ee7a b\u1ea1n nh\u01b0 th\u1ebf nŕo? +personal-info.marital-status-help=Không b\u1eaft bu\u1ed9c. +personal-info.never-married=Không bao gi\u1edd k\u1ebft hôn +personal-info.married-living-with-spouse=\u0110ă l\u1eadp gia \u0111ěnh, s\u1ed1ng chung v\u1edbi v\u1ee3/ch\u1ed3ng +personal-info.married-not-living-with-spouse=\u0110ă k\u1ebft hôn, không s\u1ed1ng chung v\u1edbi v\u1ee3/ch\u1ed3ng +personal-info.legally-separated=Ly thân h\u1ee3p pháp +personal-info.divorced=\u0110ă ly hôn +personal-info.widowed=Góa b\u1ee5a +personal-info.highest-education=Trěnh \u0111\u1ed9 h\u1ecdc v\u1ea5n cao nh\u1ea5t c\u1ee7a b\u1ea1n lŕ gě? +personal-info.highest-education-help=Không b\u1eaft bu\u1ed9c. +personal-info.select-education=Ch\u1ecdn trěnh \u0111\u1ed9 h\u1ecdc v\u1ea5n +personal-info.first-grade=l\u1edbp 1 +personal-info.second-grade=l\u1edbp 2 +personal-info.third-grade=l\u1edbp 3 +personal-info.fourth-grade=l\u1edbp 4 +personal-info.fifth-grade=l\u1edbp 5 +personal-info.sixth-grade=l\u1edbp 6 +personal-info.seventh-grade=l\u1edbp 7 +personal-info.eighth-grade=l\u1edbp 8 +personal-info.ninth-grade=l\u1edbp 9 +personal-info.tenth-grade=l\u1edbp 10 +personal-info.eleventh-grade=l\u1edbp 11 +personal-info.high-school-or-equivalent=B\u1eb1ng t\u1ed1t nghi\u1ec7p trung h\u1ecdc ho\u1eb7c t\u01b0\u01a1ng \u0111\u01b0\u01a1ng (GED) +personal-info.associates-degree=B\u1eb1ng \u0111\u1ea1i h\u1ecdc 2 n\u0103m +personal-info.bachelors-degree=B\u1eb1ng c\u1eed nhân +personal-info.graduate-degree=B\u1eb1ng t\u1ed1t nghi\u1ec7p/Th\u1ea1c s\u1ef9 +personal-info.certificate-or-diploma=Ch\u1ee9ng ch\u1ec9 ho\u1eb7c b\u1eb1ng t\u1ed1t nghi\u1ec7p khác +personal-info.no-formal-education=Không có giáo d\u1ee5c chính quy +personal-info.not-sure=Không ch\u1eafc ch\u1eafn +personal-info.date-of-birth.help.month=mm (tháng) +personal-info.date-of-birth.help.day=dd (ngŕy) +personal-info.date-of-birth.help.year=yyyy (n\u0103m) + +# Contact info +contact-info.title=Thông tin lięn h\u1ec7 +contact-info.header=Chúng tôi s\u1ebd g\u1eedi thông tin c\u1eadp nh\u1eadt vŕ thông báo nh\u1eafc nh\u1edf v\u1ec1 \u0111\u01a1n \u0111\u0103ng ký cho quý v\u1ecb b\u1eb1ng cách nŕo? +contact-info.phone-number=S\u1ed1 \u0111i\u1ec7n tho\u1ea1i c\u1ee7a quý v\u1ecb lŕ gě? +contact-info.phone-number.help=Không b\u1eaft bu\u1ed9c. Nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 c\u1ee7a chúng tôi có th\u1ec3 lięn h\u1ec7 tr\u1ef1c ti\u1ebfp v\u1edbi quý v\u1ecb qua s\u1ed1 \u0111i\u1ec7n tho\u1ea1i nŕy. N\u1ebfu quý v\u1ecb không cung c\u1ea5p s\u1ed1 \u0111i\u1ec7n tho\u1ea1i, ti\u1ebfn trěnh d\u1ecbch v\u1ee5 có th\u1ec3 b\u1ecb ch\u1eadm tr\u1ec5. +contact-info.deaf-or-hoh=Quý v\u1ecb có khi\u1ebfm thính ho\u1eb7c m\u1eafc các lo\u1ea1i b\u1ec7nh suy gi\u1ea3m thính l\u1ef1c hay không? +contact-info.deaf-contact-preference=N\u1ebfu khi\u1ebfm thính ho\u1eb7c m\u1eafc các lo\u1ea1i b\u1ec7nh suy gi\u1ea3m thính l\u1ef1c, quý v\u1ecb mu\u1ed1n s\u1eed d\u1ee5ng ph\u01b0\u01a1ng th\u1ee9c lięn l\u1ea1c nŕo? +contact-info.deaf-contact-preference.placeholder=Ch\u1ecdn ph\u01b0\u01a1ng th\u1ee9c lięn l\u1ea1c +contact-info.deaf-contact-preference.option1=D\u1ecbch v\u1ee5 phięn d\u1ecbch cho ng\u01b0\u1eddi khi\u1ebfm thính +contact-info.deaf-contact-preference.option2=D\u1ecbch v\u1ee5 chuy\u1ec3n gi\u1ecdng nói thŕnh v\u0103n b\u1ea3n (TTY) +contact-info.email-address=\u0110\u1ecba ch\u1ec9 email c\u1ee7a quý v\u1ecb lŕ gě? +contact-info.email-address.help=Không b\u1eaft bu\u1ed9c. +contact-info.email-address.check-all-that-apply=Không b\u1eaft bu\u1ed9c. Ch\u1ecdn t\u1ea5t c\u1ea3 các m\u1ee5c. +contact-info.reminders=Chúng tôi s\u1ebd g\u1eedi thông tin c\u1eadp nh\u1eadt vŕ thông báo nh\u1eafc nh\u1edf v\u1ec1 \u0111\u01a1n \u0111\u0103ng ký cho quý v\u1ecb b\u1eb1ng cách nŕo? +contact-info.text=B\u1eb1ng tin nh\u1eafn +contact-info.email=B\u1eb1ng Email +contact-info.message-rates=DCFS có th\u1ec3 s\u1ebd g\u1eedi tin nh\u1eafn vŕ/ho\u1eb7c email cho quý v\u1ecb \u0111\u1ec3 trao \u0111\u1ed5i v\u1ec1 \u0111\u01a1n \u0111\u0103ng ký. H\u1ecd s\u1ebd ch\u1ec9 g\u1eedi tin nh\u1eafn vŕ/ho\u1eb7c email khi quý v\u1ecb tích vŕo ô vuông bęn tręn. Quý v\u1ecb s\u1ebd ph\u1ea3i t\u1ef1 tr\u1ea3 phí tin nh\u1eafn ho\u1eb7c phí d\u1eef li\u1ec7u cho nhŕ m\u1ea1ng c\u1ee7a měnh. Quý v\u1ecb có th\u1ec3 t\u1eeb ch\u1ed1i d\u1ecbch v\u1ee5 vŕ ng\u1eebng nh\u1eadn tin nh\u1eafn b\u1eb1ng cách tr\u1ea3 l\u1eddi tin nh\u1eafn v\u1edbi n\u1ed9i dung "STOP", ho\u1eb7c b\u1ea5m vŕo link h\u1ee7y \u0111\u0103ng ký có trong email. + +# Shared Household Messages + +# Multiple person household +multiple-person-household.title=H\u1ed9 gia \u0111ěnh có nhi\u1ec1u ng\u01b0\u1eddi \u1edf +multiple-person-household.header=B\u1ea1n có s\u1ed1ng v\u1edbi b\u1ea5t k\u1ef3 ng\u01b0\u1eddi nŕo trong s\u1ed1 nh\u1eefng ng\u01b0\u1eddi nŕy không? +multiple-person-household.content.l1=Con cái c\u1ee7a b\u1ea1n +multiple-person-household.content.l2=Thŕnh vięn trong gia \u0111ěnh +multiple-person-household.content.l3=M\u1ed9t ng\u01b0\u1eddi b\u1ea1n \u0111\u1eddi ch\u01b0a k\u1ebft hôn mŕ b\u1ea1n có con cái v\u1edbi h\u1ecd +multiple-person-household.content.l4=B\u1ea1n cůng phňng mŕ h\u1ecd cůng mua vŕ n\u1ea5u \u0103n chung +multiple-person-household.no-its-just-me=Không, ch\u1ec9 có tôi thôi + +# Household signpost +household-signpost.header=Thông tin h\u1ed9 gia \u0111ěnh +household-signpost.step=B\u01b0\u1edbc 2 tręn 5 +household-signpost.everyone-you-live-with=M\u1ecdi ng\u01b0\u1eddi b\u1ea1n s\u1ed1ng cůng +household-signpost.special-situations=Nh\u1eefng těnh hu\u1ed1ng \u0111\u1eb7c bi\u1ec7t + +# Household info +household-info.title=Thông tin ng\u01b0\u1eddi s\u1ed1ng cůng +household-info.header=Thęm m\u1ed9t ng\u01b0\u1eddi s\u1ed1ng cůng b\u1ea1n +household-info.first-name-question=Tęn c\u1ee7a h\u1ecd lŕ gě? +household-info.last-name-question=H\u1ecd c\u1ee7a h\u1ecd lŕ gě? +household-info.name-help=Nh\u01b0 nó xu\u1ea5t hi\u1ec7n tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a h\u1ecd +household-info.other-names-question=Nh\u1eefng tęn khác h\u1ecd hi\u1ec7n \u0111ang s\u1eed d\u1ee5ng ho\u1eb7c \u0111ă s\u1eed d\u1ee5ng trong quá kh\u1ee9 +household-info.other-names-help=Không b\u1eaft bu\u1ed9c. Li\u1ec7t kę h\u1ecd tr\u01b0\u1edbc khi l\u1ea5y ch\u1ed3ng, nh\u1eefng l\u1ea7n \u0111\u1ed5i tęn h\u1ee3p pháp, vŕ cách x\u01b0ng hô theo gi\u1edbi tính mong mu\u1ed1n. +household-info.relationship-question=M\u1ed1i quan h\u1ec7 c\u1ee7a h\u1ecd v\u1edbi b\u1ea1n lŕ gě? +household-info.relationship-placeholder=Ch\u1ecdn m\u1ed1i quan h\u1ec7 +household-info.relationship.child=Con c\u1ee7a tôi +household-info.relationship.step-child=Con rięng c\u1ee7a tôi +household-info.relationship.spouse=V\u1ee3/ch\u1ed3ng c\u1ee7a tôi (ví d\u1ee5 v\u1ee3, ch\u1ed3ng) +household-info.relationship.partner=B\u1ea1n těnh c\u1ee7a tôi (ví d\u1ee5 nh\u01b0 b\u1ea1n gái, b\u1ea1n trai) +household-info.relationship.sibling=Anh ch\u1ecb em c\u1ee7a tôi +household-info.relationship.step-sibling=Anh ch\u1ecb em rięng c\u1ee7a cha/m\u1eb9 +household-info.relationship.half-sibling=Anh ch\u1ecb em cůng cha/m\u1eb9 khác cha/m\u1eb9 c\u1ee7a tôi +household-info.relationship.parent=Cha m\u1eb9 ho\u1eb7c ng\u01b0\u1eddi giám h\u1ed9 c\u1ee7a tôi +household-info.relationship.grandparent=Ông bŕ tôi +household-info.relationship.childs-parent=Ph\u1ee5 huynh c\u1ee7a con tôi +household-info.relationship.aunt-or-uncle=Cô ho\u1eb7c chú c\u1ee7a tôi +household-info.relationship.niece-or-nephew=Cháu gái ho\u1eb7c cháu trai c\u1ee7a tôi +household-info.relationship.roommate=B\u1ea1n cůng phňng +household-info.relationship.friend=B\u1ea1n tôi +household-info.relationship.grandchild=Cháu tôi +household-info.relationship.other=Khác +household-info.birthday-question=H\u1ecd \u0111\u01b0\u1ee3c sinh ra khi nŕo? +household-info.sex=Gi\u1edbi tính c\u1ee7a h\u1ecd lŕ gě? +household-info.sex-helper=Tęn h\u1ee3p pháp theo c\u0103n c\u01b0\u1edbc công dân. Chúng tôi r\u1ea5t ti\u1ebfc khi câu h\u1ecfi nŕy b\u1ecb gi\u1edbi h\u1ea1n. +household-info.marital-status=Těnh tr\u1ea1ng hôn nhân c\u1ee7a h\u1ecd lŕ gě? +household-info.education=Trěnh \u0111\u1ed9 h\u1ecdc v\u1ea5n cao nh\u1ea5t c\u1ee7a h\u1ecd lŕ gě? + + +# Household list +household-list.title=Danh sách thŕnh vięn trong h\u1ed9 gia \u0111ěnh +household-list.header=\u0110ây có ph\u1ea3i lŕ t\u1ea5t c\u1ea3 nh\u1eefng ng\u01b0\u1eddi s\u1ed1ng cůng b\u1ea1n không? +household-list.subheader=Bao g\u1ed3m c\u1ea3 tr\u1ebb em vŕ t\u1ea5t c\u1ea3 nh\u1eefng ng\u01b0\u1eddi s\u1ed1ng cůng b\u1ea1n, ngay c\u1ea3 khi h\u1ecd không th\u01b0\u1eddng xuyęn \u1edf \u0111ó. +household-list.learn-more=Těm hi\u1ec3u thęm v\u1ec1 ng\u01b0\u1eddi b\u1ea1n nęn \u0111i\u1ec1n thęm +household-list.learn-more-l1=Gia \u0111ěnh b\u1ea1n s\u1ed1ng cůng: N\u1ebfu b\u1ea1n s\u1ed1ng cůng h\u1ecd, b\u1ea1n ph\u1ea3i bao g\u1ed3m con cái d\u01b0\u1edbi 22 tu\u1ed5i, v\u1ee3 ch\u1ed3ng vŕ cha m\u1eb9. +household-list.learn-more-l2=B\u1ea1n cůng phňng: Ch\u1ec9 bao g\u1ed3m nh\u1eefng ng\u01b0\u1eddi b\u1ea1n cůng phňng mŕ b\u1ea1n mua vŕ chu\u1ea9n b\u1ecb b\u1eefa \u0103n cůng. +household-list.learn-more-l3=60+/khuy\u1ebft t\u1eadt: Nh\u1eefng ng\u01b0\u1eddi tręn 60 tu\u1ed5i/khuy\u1ebft t\u1eadt vŕ s\u1ed1ng cůng ng\u01b0\u1eddi khác có th\u1ec3 ch\u1ecdn \u0111\u0103ng ký rięng. +household-list.learn-more-l4=Ng\u01b0\u1eddi nh\u1eadp c\u01b0: B\u1ea5t k\u1ef3 ng\u01b0\u1eddi nh\u1eadp c\u01b0 nŕo c\u0169ng có th\u1ec3 ch\u1ecdn không tham gia vŕ s\u1ebd không b\u1ecb h\u1ecfi v\u1ec1 těnh tr\u1ea1ng nh\u1eadp c\u01b0 c\u1ee7a h\u1ecd. H\u1ecd v\u1eabn c\u1ea7n ph\u1ea3i \u0111\u01b0\u1ee3c \u0111\u01b0a vŕo \u1ee9ng d\u1ee5ng nŕy. +household-list.learn-more-l5=Ly thân/ly hôn: Trong tr\u01b0\u1eddng h\u1ee3p ly thân, ly hôn, ch\u1ec9 tính ng\u01b0\u1eddi cňn l\u1ea1i n\u1ebfu h\u1ecd s\u1ed1ng cůng b\u1ea1n. Tr\u1ebb em không th\u1ec3 tham gia nhi\u1ec1u v\u1ee5 vi\u1ec7c cůng m\u1ed9t lúc. +household-list.learn-more-l6=Bŕ m\u1eb9 mang thai: Không \u0111\u1ec3 tr\u1ebb ch\u01b0a sinh vŕo \u0111\u01a1n \u0111\u0103ng ký nŕy. +household-list.your-household=H\u1ed9 gia \u0111ěnh c\u1ee7a b\u1ea1n +household-list.thats-you=(chính lŕ b\u1ea1n!) +household-list.add=Thęm m\u1ed9t ng\u01b0\u1eddi khác +household-list.continue=Vâng, \u0111ây lŕ t\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi + +# Household delete confirmation +household-member-delete.title=Xóa xác nh\u1eadn thŕnh vięn trong h\u1ed9 gia \u0111ěnh +household-member-delete.header=Quý v\u1ecb có ch\u1eafc ch\u1eafn mu\u1ed1n xóa {0} kh\u1ecfi h\u1ed9 gia \u0111ěnh quý v\u1ecb không? + + +# SSN form +ssn-form.title=S\u1ed1 an sinh xă h\u1ed9i +ssn-form.header=S\u1ed1 An Sinh Xă H\u1ed9i (SSN) +ssn-form.subheader=N\u1ebfu b\u1ea1n ho\u1eb7c ai \u0111ó trong gia \u0111ěnh b\u1ea1n có S\u1ed1 An sinh Xă h\u1ed9i (SSN), chúng tôi th\u1ef1c s\u1ef1 khuyęn b\u1ea1n nęn \u0111\u01b0a s\u1ed1 \u0111ó vŕo \u0111ây. Không c\u1ea7n ph\u1ea3i có SSN \u0111\u1ed1i v\u1edbi nh\u1eefng ng\u01b0\u1eddi không ph\u1ea3i lŕ công dân ho\u1eb7c thŕnh vięn h\u1ed9 gia \u0111ěnh không n\u1ed9p \u0111\u01a1n xin tr\u1ee3 c\u1ea5p. Těm hi\u1ec3u lý do t\u1ea1i sao chúng tôi yęu c\u1ea7u SSN. +ssn-form.ssn-question=S\u1ed1 an sinh xă h\u1ed9i c\u1ee7a ({0}) c\u1ee7a quý v\u1ecb lŕ gě? +ssn-form-household.ssn-question=S\u1ed1 An Sinh Xă H\u1ed9i c\u1ee7a {0} lŕ gě? +ssn-form.note=

L\u01b0u ý: N\u1ebfu quý v\u1ecb không có s\u1ed1 an sinh xă h\u1ed9i nh\u01b0ng sau \u0111ó l\u1ea1i \u0111\u01b0\u1ee3c xác \u0111\u1ecbnh lŕ \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn SNAP, quý v\u1ecb s\u1ebd \u0111\u01b0\u1ee3c nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 c\u1ee7a quý v\u1ecb c\u1ea5p cho m\u1ed9t s\u1ed1 an sinh xă h\u1ed9i t\u1ea1m th\u1eddi.

Vui lňng h\u1ecfi nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 v\u1ec1 s\u1ed1 an sinh xă h\u1ed9i t\u1ea1m th\u1eddi c\u1ee7a quý v\u1ecb trong th\u1eddi gian ph\u1ecfng v\u1ea5n \u0111\u1ec3 l\u1ea5y thông tin.

+ +# SSN faqs +ssn-faqs.title=Câu h\u1ecfi th\u01b0\u1eddng g\u1eb7p v\u1ec1 s\u1ed1 an sinh xă h\u1ed9i +ssn-faqs.header=T\u1ea1i sao chúng tôi yęu c\u1ea7u S\u1ed1 An sinh Xă h\u1ed9i (SSN) +ssn-faqs.accordion1=Tôi có c\u1ea7n cung c\u1ea5p S\u1ed1 An sinh Xă h\u1ed9i (SSN) cho tôi vŕ nh\u1eefng ng\u01b0\u1eddi tôi s\u1ed1ng cůng không? +ssn-faqs.accordion2=T\u1ea1i sao tôi c\u1ea7n SSN? +ssn-faqs.accordion3=T\u1ed5 ch\u1ee9c s\u1ebd lŕm gě v\u1edbi mă s\u1ed1 SSN c\u1ee7a tôi c\u0169ng nh\u01b0 các thông tin khác mŕ tôi cung c\u1ea5p? +ssn-faqs.accordion1.expanded=Ch\u1ec9 nh\u1eefng ng\u01b0\u1eddi trong h\u1ed9 gia \u0111ěnh b\u1ea1n mu\u1ed1n nh\u1eadn tr\u1ee3 c\u1ea5p SNAP m\u1edbi c\u1ea7n cung c\u1ea5p cho chúng tôi SSN c\u1ee7a h\u1ecd. N\u1ebfu b\u1ea1n không th\u1ec3 nh\u1edb SSN ho\u1eb7c ai \u0111ó ch\u01b0a có SSN c\u1ee7a h\u1ecd, b\u1ea1n có th\u1ec3 \u0111\u1ec3 tr\u1ed1ng bây gi\u1edd. Chúng tôi s\u1ebd c\u1ea7n SSN c\u1ee7a m\u1ecdi ng\u01b0\u1eddi ho\u1eb7c m\u1ed9t lý do chính \u0111áng t\u1ea1i sao ai \u0111ó không có SSN tr\u01b0\u1edbc khi chúng tôi có th\u1ec3 quy\u1ebft \u0111\u1ecbnh xem b\u1ea1n có th\u1ec3 nh\u1eadn SNAP hay không. +ssn-faqs.accordion2.expanded=Lu\u1eadt yęu c\u1ea7u t\u1ea5t c\u1ea3 nh\u1eefng ng\u01b0\u1eddi nh\u1eadn tr\u1ee3 c\u1ea5p SNAP ph\u1ea3i có SSN ho\u1eb7c có lý do chính \u0111áng \u0111\u1ec3 không có SSN (ch\u1eb3ng h\u1ea1n nh\u01b0 lŕ tr\u1ebb s\u01a1 sinh). Tęn lu\u1eadt cho phép chúng tôi yęu c\u1ea7u SSN lŕ \u0110\u1ea1o lu\u1eadt Th\u1ef1c ph\u1ea9m vŕ Dinh d\u01b0\u1ee1ng n\u0103m 2008, \u0111ă \u0111\u01b0\u1ee3c s\u1eeda \u0111\u1ed5i, 7 USC 2011\u20132036. +ssn-faqs.accordion3.expanded=\u0110ây lŕ cách chúng tôi s\u1ebd s\u1eed d\u1ee5ng thông tin, bao g\u1ed3m t\u1ea5t c\u1ea3 mă s\u1ed1 SSN mŕ quý v\u1ecb cung c\u1ea5p: +ssn-faqs.accordion3.expanded.li1=Chúng tôi s\u1ebd không s\u1eed d\u1ee5ng thông tin an sinh xă h\u1ed9i c\u1ee7a quý v\u1ecb \u0111\u1ec3 lŕm vi\u1ec7c v\u1edbi C\u01a1 quan Th\u1ef1c thi Di trú vŕ H\u1ea3i quan Hoa K\u1ef3 (ICE). Tham gia SNAP s\u1ebd không gây b\u1ea5t l\u1ee3i cho vi\u1ec7c n\u1ed9p \u0111\u01a1n xin th\u1ebb xanh ho\u1eb7c quy\u1ec1n công dân c\u1ee7a quý v\u1ecb. +ssn-faqs.accordion3.expanded.li2=Chúng tôi s\u1ebd ki\u1ec3m tra chéo v\u1edbi các c\u01a1 s\u1edf d\u1eef li\u1ec7u khác \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o xác th\u1ef1c vŕ xem có thông tin nŕo khác v\u1ec1 quý v\u1ecb hay không. Vi\u1ec7c nŕy s\u1ebd giúp chúng tôi quy\u1ebft \u0111\u1ecbnh có nęn h\u1ed7 tr\u1ee3 SNAP cho quý v\u1ecb. \nChúng tôi důng thông tin quý v\u1ecb cung c\u1ea5p \u0111\u1ec3 qu\u1ea3n lý SNAP vŕ ki\u1ec3m tra xem chúng tôi \u0111ă v\u1eadn hŕnh SNAP chu\u1ea9n hay ch\u01b0a. +ssn-faqs.accordion3.expanded.li3=Chúng tôi có th\u1ec3 chia s\u1ebb thông tin v\u1edbi các c\u01a1 quan Ti\u1ec3u bang ho\u1eb7c Lięn bang khác \u0111\u1ec3 quy\u1ebft \u0111\u1ecbnh vi\u1ec7c h\u1ed7 tr\u1ee3 vŕ ti\u1ebfp t\u1ee5c cung c\u1ea5p SNAP cho quý v\u1ecb. +ssn-faqs.accordion3.expanded.li4=Chúng tôi có th\u1ec3 chia s\u1ebb thông tin v\u1edbi các c\u01a1 quan Ti\u1ec3u bang ho\u1eb7c Lięn bang khác \u0111\u1ec3 quy\u1ebft \u0111\u1ecbnh vi\u1ec7c h\u1ed7 tr\u1ee3 vŕ ti\u1ebfp t\u1ee5c cung c\u1ea5p SNAP cho quý v\u1ecb. +ssn-faqs.accordion3.expanded.li5=Chúng tôi có th\u1ec3 \u0111\u01b0a thông tin cho các nhân vięn ch\u1ea5p pháp \u0111\u1ec3 giúp h\u1ecd b\u1eaft các cá nhân l\u1ea9n tr\u1ed1n pháp lu\u1eadt. +ssn-faqs.accordion3.expanded.li6=Trong tr\u01b0\u1eddng h\u1ee3p chúng tôi cung c\u1ea5p v\u01b0\u1ee3t m\u1ee9c phúc l\u1ee3i SNAP cho quý v\u1ecb, chúng tôi có th\u1ec3 \u0111\u01b0a thông tin quý v\u1ecb cung c\u1ea5p cho các c\u01a1 quan thu h\u1ed3i n\u1ee3 Ti\u1ec3u bang, Lięn bang vŕ t\u01b0 nhân. \u0110i\u1ec1u nŕy lŕ \u0111\u1ec3 h\u1ecd có th\u1ec3 h\u1ee3p tác v\u1edbi quý v\u1ecb trong vi\u1ec7c hoŕn tr\u1ea3 các phúc l\u1ee3i b\u1ecb d\u01b0. + +# Home Address +home-address.title=\u0110\u1ecba ch\u1ec9 nhŕ +home-address.header=Hi\u1ec7n t\u1ea1i quý v\u1ecb \u0111ang s\u1ed1ng \u1edf \u0111âu? +home-address.no-permanent-address=Tôi không có \u0111\u1ecba ch\u1ec9 th\u01b0\u1eddng trú +address.street-address-1=*Tęn \u0111\u01b0\u1eddng lŕ gě? +address.street-address-2=S\u1ed1 c\u0103n h\u1ed9 lŕ gě? +address.city=*Tęn thŕnh ph\u1ed1 lŕ gě? +address.state=*Tęn ti\u1ec3u bang lŕ gě? +address.zip=*Mă b\u01b0u chính lŕ gě? + +# Mailing address +mailing-address.title=\u0110\u1ecba ch\u1ec9 g\u1eedi th\u01b0 +mailing-address.header=*DCFS có th\u1ec3 g\u1eedi th\u01b0 cho quý v\u1ecb \u0111\u1ebfn \u0111âu? +mailing-address.same-address=G\u1eedi \u0111\u1ebfn \u0111\u1ecba ch\u1ec9 nhŕ hi\u1ec7n t\u1ea1i c\u1ee7a tôi + +address.subtext=Câu có d\u1ea5u hoa th\u1ecb (*) lŕ câu h\u1ecfi b\u1eaft bu\u1ed9c. + +where-to-send-mail.title=G\u1eedi th\u01b0 \u0111\u1ebfn \u0111âu +where-to-send-mail.header=Quý v\u1ecb có \u0111\u1ecba ch\u1ec9 hňm th\u01b0 \u0111\u1ec3 nh\u1eadn th\u01b0 hay không? +where-to-send-mail.subtext=DCFS c\u1ea7n m\u1ed9t \u0111\u1ecba ch\u1ec9 \u0111\u1ec3 g\u1eedi th\u01b0 cho quý v\u1ecb trong vňng 3 tháng t\u1edbi. Có th\u1ec3 důng \u0111\u1ecba ch\u1ec9 nhŕ c\u1ee7a quý v\u1ecb bč, ng\u01b0\u1eddi thân ho\u1eb7c h\u1ed9p th\u01b0 b\u01b0u \u0111i\u1ec7n. +where-to-send-mail.add-address=Thęm \u0111\u1ecba ch\u1ec9 g\u1eedi th\u01b0 +where-to-send-mail.continue-without=B\u1ecf qua vŕ ti\u1ebfp t\u1ee5c + +# Special situations +special-situations.title=B\u01b0\u1edbc ti\u1ebfp theo +special-situations.header=Ti\u1ebfp theo, chúng ta s\u1ebd h\u1ecfi v\u1ec1 nh\u1eefng těnh hu\u1ed1ng \u0111\u1eb7c bi\u1ec7t +special-situations.p1=Chúng tôi s\u1ebd xem xét \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb thu\u1ed9c tr\u01b0\u1eddng h\u1ee3p \u0111\u1eb7c bi\u1ec7t nŕo khác. +special-situations-household.p1=Chúng tôi s\u1ebd xem li\u1ec7u có tr\u01b0\u1eddng h\u1ee3p \u0111\u1eb7c bi\u1ec7t nŕo \u0111\u1ed1i v\u1edbi b\u1ea5t k\u1ef3 ng\u01b0\u1eddi nŕo trong \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a b\u1ea1n hay không. + +# School +school.title=Tr\u01b0\u1eddng h\u1ecdc +school.header=Có ai trong h\u1ed9 gia \u0111ěnh b\u1ea1n hi\u1ec7n \u0111ang \u0111i h\u1ecdc, toŕn th\u1eddi gian hay bán th\u1eddi gian không? +school.content.p1=Bao g\u1ed3m t\u1ea5t c\u1ea3 nh\u1eefng ai \u0111\u0103ng ký ít nh\u1ea5t m\u1ed9t n\u1eeda th\u1eddi gian c\u1ee7a h\u1ecd vŕo "m\u1ed9t c\u01a1 s\u1edf giáo d\u1ee5c b\u1eadc cao". +school.content.p2=\u0110i\u1ec1u \u0111ó s\u1ebd bao g\u1ed3m: +school.content.li1=M\u1ed9t ch\u01b0\u01a1ng trěnh gi\u1ea3ng d\u1ea1y thông th\u01b0\u1eddng t\u1ea1i m\u1ed9t tr\u01b0\u1eddng cao \u0111\u1eb3ng ho\u1eb7c \u0111\u1ea1i h\u1ecdc c\u1ea5p b\u1eb1ng +school.content.li2=Tr\u01b0\u1eddng kinh doanh, k\u1ef9 thu\u1eadt, th\u01b0\u01a1ng m\u1ea1i ho\u1eb7c d\u1ea1y ngh\u1ec1 th\u01b0\u1eddng yęu c\u1ea7u b\u1eb1ng t\u1ed1t nghi\u1ec7p trung h\u1ecdc ho\u1eb7c t\u01b0\u01a1ng \u0111\u01b0\u01a1ng (GED) +school-who.title=Ng\u01b0\u1eddi \u0111i h\u1ecdc +school-who.header=Ai \u0111ang \u0111i h\u1ecdc? + +# Pregnancy +pregnancy.title=Mang thai +pregnancy.header=Có ai trong h\u1ed9 gia \u0111ěnh b\u1ea1n \u0111ang mang thai không? +pregnancy-who.title=Ng\u01b0\u1eddi mang thai +pregnancy-who.header=Ai \u0111ang mang thai? + +# Out of state benefits +out-of-state-benefits.title=Phúc l\u1ee3i ngoŕi ti\u1ec3u bang +out-of-state-benefits.header=Có ai trong h\u1ed9 gia \u0111ěnh b\u1ea1n nh\u1eadn \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t ho\u1eb7c tr\u1ee3 c\u1ea5p SNAP t\u1eeb ti\u1ec3u bang khác không? +out-of-state-benefits-who.title=Ng\u01b0\u1eddi nh\u1eadn phúc l\u1ee3i ngoŕi ti\u1ec3u bang +out-of-state-benefits-who.header=Ai \u0111ă nh\u1eadn \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t ho\u1eb7c tr\u1ee3 c\u1ea5p SNAP t\u1eeb ti\u1ec3u bang khác? + +# Household prepare food +household-prepare-food.title=Chu\u1ea9n b\u1ecb th\u1ee9c \u0103n +household-prepare-food.header=M\u1ecdi ng\u01b0\u1eddi trong gia \u0111ěnh b\u1ea1n có mua vŕ chu\u1ea9n b\u1ecb \u0111\u1ed3 \u0103n cůng b\u1ea1n không? +household-prepare-food-who.title=Ng\u01b0\u1eddi chu\u1ea9n b\u1ecb th\u1ee9c \u0103n +household-prepare-food-who.header=Ai trong gia \u0111ěnh b\u1ea1n mua vŕ chu\u1ea9n b\u1ecb th\u1ee9c \u0103n cůng v\u1edbi b\u1ea1n? + +# Seasonal farmworker +seasonal-farmworker.title=Công nhân trang tr\u1ea1i theo th\u1eddi v\u1ee5 +seasonal-farmworker.header=Có ai trong h\u1ed9 gia \u0111ěnh b\u1ea1n lŕ ng\u01b0\u1eddi nh\u1eadp c\u01b0 ho\u1eb7c công nhân nông tr\u1ea1i th\u1eddi v\u1ee5 không? + +# Citizenship +citizenship.title=Quy\u1ec1n công dân +citizenship.header=T\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi trong gia \u0111ěnh quý v\u1ecb có ph\u1ea3i lŕ công dân Hoa K\u1ef3 không? +citizenship.note=Vi\u1ec7c \u0111\u0103ng ký ho\u1eb7c nh\u1eadn SNAP s\u1ebd không \u1ea3nh h\u01b0\u1edfng těnh tr\u1ea1ng nh\u1eadp c\u01b0 c\u1ee7a quý v\u1ecb. +citizenship.content=Ch\u1ec9 nh\u1eefng ng\u01b0\u1eddi trong h\u1ed9 gia \u0111ěnh quý v\u1ecb mu\u1ed1n nh\u1eadn tr\u1ee3 c\u1ea5p SNAP m\u1edbi c\u1ea7n cung c\u1ea5p cho chúng tôi těnh tr\u1ea1ng di chú vŕ nh\u1eadp c\u01b0 c\u1ee7a h\u1ecd. +citizenship.why-provide=T\u1ea1i sao tôi c\u1ea7n cung c\u1ea5p thông tin nŕy? +citizenship.l1=Chúng tôi có th\u1ec3 c\u1ea7n ki\u1ec3m tra thông tin nŕy v\u1edbi C\u01a1 quan Di trú vŕ Nh\u1eadp t\u1ecbch Hoa K\u1ef3 (USCIS) \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o thông tin \u0111ó chính xác. Thông tin chi ti\u1ebft t\u1eeb USCIS có th\u1ec3 \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn vi\u1ec7c b\u1ea1n có th\u1ec3 nh\u1eadn SNAP hay không vŕ s\u1ed1 ti\u1ec1n b\u1ea1n nh\u1eadn \u0111\u01b0\u1ee3c. +citizenship.l2=Chúng tôi s\u1ebd không s\u1eed d\u1ee5ng thông tin an sinh xă h\u1ed9i c\u1ee7a quý v\u1ecb \u0111\u1ec3 lŕm vi\u1ec7c v\u1edbi C\u01a1 quan Th\u1ef1c thi Di trú vŕ H\u1ea3i quan Hoa K\u1ef3 (ICE). Tham gia SNAP s\u1ebd không gây b\u1ea5t l\u1ee3i cho vi\u1ec7c n\u1ed9p \u0111\u01a1n xin th\u1ebb xanh ho\u1eb7c quy\u1ec1n công dân c\u1ee7a quý v\u1ecb. +citizenship.l3=Vi\u1ec7c n\u1ed9p \u0111\u01a1n xin ho\u1eb7c nh\u1eadn SNAP s\u1ebd không \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn těnh tr\u1ea1ng nh\u1eadp c\u01b0 c\u1ee7a b\u1ea1n ho\u1eb7c b\u1ea5t k\u1ef3 ai trong nhŕ b\u1ea1n. + +# Non-citizen +non-citizen.title=Ng\u01b0\u1eddi không ph\u1ea3i công dân +non-citizen.header=Ai không ph\u1ea3i lŕ công dân Hoa K\u1ef3? + +# Citizenship number +citizenship-number.title=S\u1ed1 công dân +citizenship-number.header=Trong h\u1ed9 gia \u0111ěnh c\u1ee7a b\u1ea1n có bao nhięu ng\u01b0\u1eddi thu\u1ed9c m\u1ed9t trong các nhóm sau \u0111ây?\n  +citizenship-number.subheader=\u0110\u1ebfm s\u1ed1 ng\u01b0\u1eddi trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb thu\u1ed9c m\u1ed9t trong các tr\u01b0\u1eddng h\u1ee3p sau. T\u1ea5t c\u1ea3 nh\u1eefng ng\u01b0\u1eddi nŕy \u0111\u1ec1u \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn tr\u1ee3 c\u1ea5p SNAP. +citizenship-number.status1=Công dân Hoa K\u1ef3 +citizenship-number.status2=Ng\u01b0\u1eddi th\u01b0\u1eddng trú h\u1ee3p pháp ho\u1eb7c có th\u1ebb xanh trong b\u1ea5t c\u1ee9 th\u1eddi h\u1ea1n nŕo +citizenship-number.status3=S\u1edf h\u1eefu ho\u1eb7c \u0111ang \u0111\u0103ng ký
T-Visa ho\u1eb7c U-Visa +citizenship-number.status4=Ng\u01b0\u1eddi t\u1ecb n\u1ea1n +citizenship-number.status5=\u0110\u01b0\u1ee3c h\u1ed7 tr\u1ee3 b\u1edfi \u0110\u1ea1o lu\u1eadt ch\u1ed1ng b\u1ea1o hŕnh \u0111\u1ed1i v\u1edbi ph\u1ee5 n\u1eef (VAWA) +citizenship-number.status6=Ng\u01b0\u1eddi \u0111\u01b0\u1ee3c \u0111\u1eb7c xá trong ít nh\u1ea5t 1 n\u0103m ho\u1eb7c công dân Ukraine \u0111\u01b0\u1ee3c \u0111\u1eb7c xá trong b\u1ea5t k\u1ef3 kho\u1ea3ng th\u1eddi gian nŕo +citizenship-number.status7=Công dân Afghanistan nh\u1eadp c\u1ea3nh nh\u1edd th\u1ecb th\u1ef1c nh\u1eadp c\u01b0 \u0111\u1eb7c bi\u1ec7t (SIV), \u0111\u1eb7c xá cho ng\u01b0\u1eddi nh\u1eadp c\u01b0 \u0111\u1eb7c bi\u1ec7t (SQ/SI) ho\u1eb7c các hěnh th\u1ee9c t\u1ea1m tha nhân \u0111\u1ea1o khác +citizenship-number.status8=Ng\u01b0\u1eddi nh\u1eadp c\u1ea3nh t\u1eeb Cuba ho\u1eb7c Haiti +citizenship-number.status9=Ng\u01b0\u1eddi Hmong/ng\u01b0\u1eddi n\u01b0\u1edbc Lŕo ho\u1eb7c ng\u01b0\u1eddi Hoa K\u1ef3 g\u1ed1c \u1ea4n \u0110\u1ed9 sinh ra \u1edf Canada +citizenship-number.people={0} ng\u01b0\u1eddi + +# Veteran +veteran.title=C\u1ef1u chi\u1ebfn binh +veteran.header=Có ai lŕ c\u1ef1u chi\u1ebfn binh M\u1ef9 không? +veteran.content-header=C\u1ef1u chi\u1ebfn binh Hoa K\u1ef3 lŕ ng\u01b0\u1eddi: +veteran.content-l1=T\u1eebng ph\u1ee5c v\u1ee5 trong L\u1ef1c l\u01b0\u1ee3ng V\u0169 trang Hoa K\u1ef3 (ch\u1eb3ng h\u1ea1n nh\u01b0 Quân \u0111\u1ed9i, Th\u1ee7y quân l\u1ee5c chi\u1ebfn, H\u1ea3i quân, Không quân, L\u1ef1c l\u01b0\u1ee3ng Không gian, C\u1ea3nh sát bi\u1ec3n ho\u1eb7c V\u1ec7 binh Qu\u1ed1c gia) +veteran.content-l2=T\u1eebng ph\u1ee5c v\u1ee5 trong l\u1ef1c l\u01b0\u1ee3ng d\u1ef1 b\u1ecb c\u1ee7a L\u1ef1c l\u01b0\u1ee3ng V\u0169 trang +veteran.content-l3=\u0110ă \u0111\u01b0\u1ee3c xu\u1ea5t ng\u0169 ho\u1eb7c tr\u1ea3 t\u1ef1 do, b\u1ea5t k\u1ec3 \u0111i\u1ec1u ki\u1ec7n +veteran-who.title=C\u1ef1u chi\u1ebfn binh +veteran-who.header=Ai lŕ C\u1ef1u chi\u1ebfn binh Hoa K\u1ef3? + +# Foster +foster.title=Nh\u1eadn nuôi +foster.header=Có ai lŕ con nuôi ho\u1eb7c ng\u01b0\u1eddi l\u1edbn \u0111\u01b0\u1ee3c nuôi d\u01b0\u1ee1ng không? +foster-who.title=Ng\u01b0\u1eddi \u0111\u01b0\u1ee3c nh\u1eadn nuôi +foster-who.header=Ai lŕ tr\u1ebb em \u0111\u01b0\u1ee3c nh\u1eadn nuôi ho\u1eb7c ng\u01b0\u1eddi c\u1ea7n \u0111\u01b0\u1ee3c ch\u0103m sóc? + +# Foster aged out +foster-aged-out.title=Quá tu\u1ed5i nh\u1eadn nuôi +foster-aged-out.header=Có ai \u0111\u01b0\u1ee3c ch\u0103m sóc nuôi d\u01b0\u1ee1ng cho \u0111\u1ebfn khi h\u1ecd \u0111\u01b0\u1ee3c 18 tu\u1ed5i không? +foster-aged-out-who.title=Ng\u01b0\u1eddi quá tu\u1ed5i nh\u1eadn nuôi +foster-aged-out-who.header=Ai lŕ ng\u01b0\u1eddi \u0111\u01b0\u1ee3c nh\u1eadn nuôi \u0111\u1ebfn n\u0103m 18 tu\u1ed5i? + +# Homelessness +homeless.title=Vô gia c\u01b0 +homeless.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb \u0111ang lŕ ng\u01b0\u1eddi vô gia c\u01b0 hay không? +homeless-who.title=Ng\u01b0\u1eddi vô gia c\u01b0 +homeless-who.header=Ng\u01b0\u1eddi vô gia c\u01b0 trong h\u1ed9 gia \u0111ěnh quý v\u1ecb lŕ ai? + + +# Phone number nudge +phone-number-nudge.title=S\u1ed1 \u0111i\u1ec7n tho\u1ea1i +phone-number-nudge.header=Quý v\u1ecb có ch\u1eafc ch\u1eafn không mu\u1ed1n cung c\u1ea5p s\u1ed1 \u0111i\u1ec7n tho\u1ea1i c\u1ee7a měnh không? +phone-number-nudge.p1=Nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 có th\u1ec3 s\u1ebd c\u1ea7n lięn h\u1ec7 v\u1edbi quý v\u1ecb qua \u0111i\u1ec7n tho\u1ea1i \u0111\u1ec3 trao \u0111\u1ed5i v\u1ec1 \u0111\u01a1n \u0111\u0103ng ký. N\u1ebfu không có s\u1ed1 \u0111i\u1ec7n tho\u1ea1i cá nhân, quý v\u1ecb có th\u1ec3 nh\u1eadp s\u1ed1 \u0111i\u1ec7n tho\u1ea1i c\u1ee7a quý v\u1ecb bč ho\u1eb7c thŕnh vięn gia \u0111ěnh. +phone-number-nudge.add-phone-number=Thęm s\u1ed1 \u0111i\u1ec7n tho\u1ea1i +phone-number-nudge.skip-phone-number=B\u1ecf qua vŕ ti\u1ebfp t\u1ee5c + +# Employment income questions +employment-status.title=Těnh tr\u1ea1ng vi\u1ec7c lŕm +employment-status.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb ki\u1ebfm ti\u1ec1n t\u1eeb vi\u1ec7c \u0111i lŕm ho\u1eb7c công vi\u1ec7c t\u1ef1 ch\u1ee7 không? +employment-status.p1=Các ví d\u1ee5 v\u1ec1 công vi\u1ec7c t\u1ef1 ch\u1ee7 bao g\u1ed3m: +employment-status.li1=Lái xe cho Uber, Lyft, Doordash, v.v. +employment-status.li2=T\u1ef1 \u0111i\u1ec1u hŕnh công vi\u1ec7c kinh doanh +employment-status.li3=Có m\u1ed9t c\u1eeda hŕng tr\u1ef1c tuy\u1ebfn +employment-status.li4=Nh\u1eadn t\u1edd khai thu\u1ebf 1099-MISC vŕo cu\u1ed1i n\u0103m +employment-status.li5=Lŕm th\u1ee3 c\u1eaft tóc, ng\u01b0\u1eddi d\u1eaft chó \u0111i d\u1ea1o ho\u1eb7c các công vi\u1ec7c cung c\u1ea5p d\u1ecbch v\u1ee5 \u0111\u1ed9c l\u1eadp khác +employment-status.more-info=Thông tin thęm v\u1ec1 ngh\u1ec1 t\u1ef1 ch\u1ee7 +employment-status.more-info.expanded.p1=M\u1ed9t ng\u01b0\u1eddi có th\u1ec3 \u0111\u01b0\u1ee3c coi lŕ lŕm ngh\u1ec1 t\u1ef1 ch\u1ee7 n\u1ebfu: +employment-status.more-info.expanded.li1=Thu nh\u1eadp t\u1eeb vi\u1ec7c kinh doanh c\u1ee7a không ph\u1ea3i lŕ ti\u1ec1n l\u01b0\u01a1ng \u0111\u01b0\u1ee3c ai \u0111ó tr\u1ea3 cho. +employment-status.more-info.expanded.li2=Nh\u1eadn \u0111\u01b0\u1ee3c bi\u1ec3u m\u1eabu thu\u1ebf 1099-MISC t\u1eeb công ty ho\u1eb7c cá nhân vŕo cu\u1ed1i n\u0103m. +employment-status.more-info.expanded.li3=S\u1edf h\u1eefu ho\u1eb7c \u0111i\u1ec1u hŕnh doanh nghi\u1ec7p rięng. +employment-status.more-info.expanded.li4=Không nh\u1eadn \u0111\u01b0\u1ee3c tr\u1ee3 c\u1ea5p vi\u1ec7c lŕm ho\u1eb7c \u0111óng góp thu\u1ebf t\u1eeb cá nhân ho\u1eb7c công ty. +employment-status.more-info.expanded.p2=Chúng tôi khuy\u1ebfn ngh\u1ecb: n\u1ebfu quý v\u1ecb cho r\u1eb1ng ai \u0111ó trong \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb có th\u1ec3 \u0111\u01b0\u1ee3c coi lŕ ng\u01b0\u1eddi lŕm ngh\u1ec1 t\u1ef1 ch\u1ee7, hăy tr\u1ea3 l\u1eddi CÓ vŕ th\u1ea3o lu\u1eadn nh\u1eefng chi ti\u1ebft nŕy v\u1edbi nhân vięn c\u1ee7a quý v\u1ecb trong cu\u1ed9c ph\u1ecfng v\u1ea5n. + +# Income by job +income-by-job.title=Thu nh\u1eadp theo công vi\u1ec7c +income-by-job.header=Hăy tính t\u1ed5ng thu nh\u1eadp hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh quý v\u1ecb +income-by-job.subheader=Bao g\u1ed3m t\u1ea5t c\u1ea3 thu nh\u1eadp t\u1eeb vi\u1ec7c lŕm, quŕ t\u1eb7ng, kho\u1ea3n vay vŕ tr\u1ee3 c\u1ea5p ti\u1ec1n m\u1eb7t nh\u01b0 an sinh xă h\u1ed9i, tr\u1ee3 c\u1ea5p khuy\u1ebft t\u1eadt, h\u01b0u trí ho\u1eb7c d\u01b0\u1ee1ng lăo vŕ th\u1ea5t nghi\u1ec7p. +income-by-job.enter-directly=Tôi \u0111ă bi\u1ebft thu nh\u1eadp tr\u01b0\u1edbc thu\u1ebf hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh měnh - tôi mu\u1ed1n \u0111i\u1ec1n tr\u1ef1c ti\u1ebfp. + +# Household annual income +household-annual-income.title=Thu nh\u1eadp hŕng tháng c\u1ee7a c\u1ea3 h\u1ed9 gia \u0111ěnh +household-annual-income.header=Thu nh\u1eadp tr\u01b0\u1edbc thu\u1ebf hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh quý v\u1ecb lŕ bao nhięu? +household-annual-income.subheader=Cung c\u1ea5p thu nh\u1eadp tr\u01b0\u1edbc thu\u1ebf. Chúng tôi bi\u1ebft thông tin nŕy không d\u1ec5 tính toán. N\u1ebfu quý v\u1ecb không bi\u1ebft s\u1ed1 ti\u1ec1n chính xác, ch\u1ec9 c\u1ea7n \u01b0\u1edbc tính. + +# Income who +income-who.title=Ng\u01b0\u1eddi t\u1ea1o thu nh\u1eadp +income-who.header=Quý v\u1ecb mu\u1ed1n \u0111i\u1ec1n thu nh\u1eadp c\u1ee7a thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh? + +# Employer name +employer-name.title=Tęn c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng lao \u0111\u1ed9ng +employer-name.householdMember.header=\u0110i\u1ec1n công vi\u1ec7c c\u1ee7a {0} +employer-name.self.header=\u0110i\u1ec1n công vi\u1ec7c c\u1ee7a quý v\u1ecb +employer-name.question=Tęn c\u1ee7a ng\u01b0\u1eddi s\u1eed d\u1ee5ng lao \u0111\u1ed9ng lŕ gě? +employer-name.question.helptext=N\u1ebfu lŕ công vi\u1ec7c t\u1ef1 ch\u1ee7, \u0111i\u1ec1n mô t\u1ea3 công vi\u1ec7c (Ví d\u1ee5: "B\u1ea3o m\u1eabu"). + +# Self employment +self-employment.title=Công vi\u1ec7c t\u1ef1 ch\u1ee7 +self-employment.header=Công vi\u1ec7c c\u1ee7a {0} lŕ t\u1ef1 do hay t\u1ef1 ch\u1ee7? +self-employment.p1=Các ví d\u1ee5 v\u1ec1 công vi\u1ec7c t\u1ef1 ch\u1ee7 bao g\u1ed3m: +self-employment.li1=Lái xe cho Uber, Lyft, Doordash, v.v. +self-employment.li2=T\u1ef1 \u0111i\u1ec1u hŕnh công vi\u1ec7c kinh doanh +self-employment.li3=Có m\u1ed9t c\u1eeda hŕng tr\u1ef1c tuy\u1ebfn +self-employment.li4=Nh\u1eadn t\u1edd khai thu\u1ebf 1099-MISC vŕo cu\u1ed1i n\u0103m +self-employment.li5=Lŕm th\u1ee3 c\u1eaft tóc, ng\u01b0\u1eddi d\u1eaft chó \u0111i d\u1ea1o ho\u1eb7c các công vi\u1ec7c cung c\u1ea5p d\u1ecbch v\u1ee5 \u0111\u1ed9c l\u1eadp khác +self-employment.more-info=Thông tin thęm v\u1ec1 ngh\u1ec1 t\u1ef1 ch\u1ee7 + +# Job paid by hour +job-paid-by-hour.title=Tr\u1ea3 l\u01b0\u01a1ng theo gi\u1edd +job-paid-by-hour-self.header=Quý v\u1ecb có \u0111\u01b0\u1ee3c tr\u1ea3 l\u01b0\u01a1ng theo gi\u1edd hay không? +job-paid-by-hour-househould.header={0} có \u0111\u01b0\u1ee3c tr\u1ea3 theo gi\u1edd hay không? +job-paid-by-hour.link=Tôi không bi\u1ebft nh\u1eefng thông tin nŕy + +# Room rental +household-room-rental.title=Thuę phňng +household-room-rental.header=Có ai trong h\u1ed9 gia \u0111ěnh b\u1ea1n thuę phňng không? +household-room-rental-who.title=Ng\u01b0\u1eddi thuę phňng +household-room-rental-who.header=Ai lŕ ng\u01b0\u1eddi thuę phňng? + +# Meals +household-meals.title=Các b\u1eefa \u0103n +household-meals.header=Có ai trong h\u1ed9 gia \u0111ěnh b\u1ea1n tr\u1ea3 ti\u1ec1n cho b\u1eefa \u0103n c\u1ee7a h\u1ecd nh\u01b0 m\u1ed9t ph\u1ea7n c\u1ee7a vi\u1ec7c s\u1eafp x\u1ebfp cu\u1ed9c s\u1ed1ng c\u1ee7a h\u1ecd không? +household-meals.subtext=

\u0110i\u1ec1u nŕy có th\u1ec3 bao g\u1ed3m:

  • Ng\u01b0\u1eddi tr\u1ea3 ti\u1ec1n \u0103n \u1edf hŕng tháng
  • Ng\u01b0\u1eddi nh\u1eadn ít nh\u1ea5t 1 b\u1eefa \u0103n nh\u01b0 m\u1ed9t ph\u1ea7n ti\u1ec1n thuę nhŕ
  • Ng\u01b0\u1eddi nh\u1eadn h\u01a1n m\u1ed9t n\u1eeda b\u1eefa \u0103n t\u1eeb m\u1ed9t t\u1ed5 ch\u1ee9c

+household-meals-who.title=Ng\u01b0\u1eddi tr\u1ea3 ti\u1ec1n các b\u1eefa \u0103n +household-meals-who.header=Ai lŕ ng\u01b0\u1eddi tr\u1ea3 ti\u1ec1n cho các b\u1eefa \u0103n theo th\u1ecfa thu\u1eadn sinh ho\u1ea1t? + +# Review contact info +review-contact-info.title=Xem l\u1ea1i thông tin lięn l\u1ea1c +review-contact-info.header=Hăy ki\u1ec3m tra l\u1ea1i thông tin c\u1ee7a quý v\u1ecb +review-contact-info.name=Tęn +review-contact-info.mailing-address=\u0110\u1ecba ch\u1ec9 g\u1eedi th\u01b0 +review-contact-info.contact-information=Thông tin lięn l\u1ea1c +review-contact-info.this-looks-correct=Trông có v\u1ebb chính xác +review-contact-info.edit=Ch\u1ec9nh s\u1eeda thông tin c\u1ee7a tôi + +# Income signpost +income-signpost.step=B\u01b0\u1edbc 3 tręn 5 +income-signpost.header=Thu nh\u1eadp & Vi\u1ec7c lŕm +income-signpost.current-jobs=Công vi\u1ec7c hi\u1ec7n t\u1ea1i +income-signpost.additional-income=Thu nh\u1eadp thęm +income-signpost.money-on-hand=Ti\u1ec1n m\u1eb7t có s\u1eb5n + +# Job search +job-search.title=Těm ki\u1ebfm vi\u1ec7c lŕm +job-search.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb hi\u1ec7n \u0111ang těm vi\u1ec7c lŕm không? + +# Job search who +job-search-who.title = Ng\u01b0\u1eddi těm ki\u1ebfm vi\u1ec7c lŕm +job-search-who.header=Ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb lŕ ng\u01b0\u1eddi \u0111ang těm vi\u1ec7c lŕm? + +# Work disqualifications +work-disqualifications.title=Không \u0111\u1ee7 tięu chu\u1ea9n lŕm vi\u1ec7c +work-disqualifications.header=Trong 2 tháng qua, có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb lŕm m\u1ed9t trong nh\u1eefng \u0111i\u1ec1u sau không? +work-disqualifications.subtext=

  • Ngh\u1ec9 lŕm
  • B\u1ecf vi\u1ec7c
  • T\u1eeb ch\u1ed1i l\u1eddi m\u1eddi lŕm vi\u1ec7c
  • Yęu c\u1ea7u lŕm vi\u1ec7c ít gi\u1edd h\u01a1n
  • \u0110ěnh công
  • +
+ +#Sensitive Questions +sensitive-questions.title=Câu h\u1ecfi nh\u1ea1y c\u1ea3m +sensitive-questions.header=Ti\u1ebfp theo, chúng tôi có nh\u1eefng câu h\u1ecfi v\u1ec1 nh\u1eefng těnh hu\u1ed1ng gây khó kh\u0103n cho công vi\u1ec7c. +sensitive-questions.subheader=Chúng tôi xin l\u1ed7i vě \u0111ă h\u1ecfi v\u1ec1 nh\u1eefng ch\u1ee7 \u0111\u1ec1 nh\u1ea1y c\u1ea3m nŕy. Chia s\u1ebb thông tin v\u1ec1 b\u1ea5t k\u1ef3 rŕo c\u1ea3n nŕo trong công vi\u1ec7c s\u1ebd mang l\u1ea1i cho b\u1ea1n c\u01a1 h\u1ed9i t\u1ed1t nh\u1ea5t \u0111\u1ec3 nh\u1eadn \u0111\u01b0\u1ee3c phúc l\u1ee3i. +personal-situations.title=Těnh tr\u1ea1ng cá nhân +personal-situations.header=Có b\u1ea5t k\u1ef3 těnh tr\u1ea1ng khó kh\u0103n nŕo cho ai trong gia \u0111ěnh quý v\u1ecb không th\u1ec3 \u0111i lŕm không? +personal-situations.subheader=\u0110ây có th\u1ec3 lŕ \u0111i\u1ec1u khi\u1ebfn h\u1ecd không th\u1ec3 lŕm vi\u1ec7c ho\u1eb7c h\u1ea1n ch\u1ebf th\u1eddi l\u01b0\u1ee3ng h\u1ecd có th\u1ec3 lŕm vi\u1ec7c. +personal-situations.content.l1=Vô gia c\u01b0 +personal-situations.content.l2=V\u1ea5n \u0111\u1ec1 v\u1edbi ma túy ho\u1eb7c r\u01b0\u1ee3u +personal-situations.content.l3=Quá trěnh t\u1eebng b\u1ea1o hŕnh gia \u0111ěnh +personal-situations.content.l4=Có m\u1ed9t v\u1ea5n \u0111\u1ec1 v\u1ec1 th\u1ec3 ch\u1ea5t, tinh th\u1ea7n, ho\u1eb7c có v\u1ea5n \u0111\u1ec1 cá nhân hay khuy\u1ebft t\u1eadt khác + +personal-situations-who.title=Těnh tr\u1ea1ng cá nhân +personal-situations-who.header=Ai có hoŕn c\u1ea3nh cá nhân khó \u0111\u1ec3 lŕm vi\u1ec7c? + +personal-situations-which.title=Těnh tr\u1ea1ng cá nhân nŕo? +personal-situations-which.subheader=Áp d\u1ee5ng těnh tr\u1ea1ng cá nhân nŕo cho {0}? +personal-situations.which.option1=Vô gia c\u01b0 +personal-situations.which.option2=V\u1ea5n \u0111\u1ec1 v\u1edbi ma túy ho\u1eb7c r\u01b0\u1ee3u +personal-situations.which.option3=Quá trěnh t\u1eebng b\u1ea1o hŕnh gia \u0111ěnh +personal-situations.which.option4=Có m\u1ed9t v\u1ea5n \u0111\u1ec1 v\u1ec1 th\u1ec3 ch\u1ea5t, tinh th\u1ea7n, ho\u1eb7c có v\u1ea5n \u0111\u1ec1 cá nhân hay khuy\u1ebft t\u1eadt khác +personal-situations.which.option5=Lý do khác + +domestic-violence.title=N\u1ea1n nhân b\u1ea1o l\u1ef1c gia \u0111ěnh +domestic-violence.header=Có ai trong gia \u0111ěnh b\u1ea1n c\u1ea7n thoát kh\u1ecfi těnh tr\u1ea1ng b\u1ecb ng\u01b0\u1ee3c \u0111ăi không? +domestic-violence.subheader=N\u1ebfu quý v\u1ecb lŕ n\u1ea1n nhân c\u1ee7a b\u1ea1o l\u1ef1c gia \u0111ěnh ho\u1eb7c lo l\u1eafng cho s\u1ef1 an toŕn c\u1ee7a měnh, hăy g\u1ecdi \u0111\u1ebfn \u0111\u01b0\u1eddng dây nóng c\u1ee7a Trung tâm B\u1ea1o l\u1ef1c Gia \u0111ěnh t\u1ea1i Louisiana theo s\u1ed1 1-888-411-1333 \u0111\u1ec3 \u0111\u01b0\u1ee3c h\u1ed7 tr\u1ee3 mi\u1ec5n phí vŕ b\u1ea3o m\u1eadt 24 gi\u1edd. + +criminal-justice-warning.title=C\u1ea3nh báo lięn quan \u0111\u1ebfn t\u01b0 pháp hěnh s\u1ef1 +criminal-justice-warning.header=Ti\u1ebfp theo, chúng tôi có các câu h\u1ecfi v\u1ec1 s\u1ef1 tham gia vŕo h\u1ec7 th\u1ed1ng t\u01b0 pháp hěnh s\u1ef1 +criminal-justice-warning.subheader=Chúng tôi r\u1ea5t ti\u1ebfc ph\u1ea3i h\u1ecfi v\u1ec1 nh\u1eefng ch\u1ee7 \u0111\u1ec1 nh\u1ea1y c\u1ea3m nŕy. Thông tin nŕy lŕ c\u1ea7n thi\u1ebft \u0111\u1ec3 giúp xác \u0111\u1ecbnh kh\u1ea3 n\u0103ng h\u1ed9i \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn phúc l\u1ee3i. + +criminal-justice.title=T\u01b0 pháp hěnh s\u1ef1 +criminal-justice.header=Có b\u1ea5t k\u1ef3 těnh hu\u1ed1ng nŕo trong s\u1ed1 nŕy x\u1ea3y ra v\u1edbi b\u1ea5t k\u1ef3 ai trong gia \u0111ěnh b\u1ea1n không? +criminal-justice-content.l1=\u0110ă b\u1ecb k\u1ebft án vě vi ph\u1ea1m các quy \u0111\u1ecbnh v\u1ec1 ch\u01b0\u01a1ng trěnh SNAP, h\u1ed7 tr\u1ee3 ti\u1ec1n m\u1eb7t ho\u1eb7c SSI +criminal-justice-content.l2=\u0110ă b\u1ecb k\u1ebft án v\u1ec1 tr\u1ecdng t\u1ed9i +criminal-justice-content.l3=Hi\u1ec7n \u0111ang b\u1ecb qu\u1ea3n ch\u1ebf ho\u1eb7c t\u1ea1m tha + +job-hourly-wage.title=L\u01b0\u01a1ng theo gi\u1edd +job-hourly-wage.header=L\u01b0\u01a1ng theo gi\u1edd c\u1ee7a {0} lŕ bao nhięu? + +job-hours-per-week.title=Gi\u1edd/tu\u1ea7n +job-hours-per-week-self.header=Quý v\u1ecb lŕm bao nhięu gi\u1edd m\u1ed9t tu\u1ea7n? +job-hours-per-week-household.header={0} lŕm bao nhięu gi\u1edd m\u1ed9t tu\u1ea7n? +job-hours-per-week-household.subtext=Chúng tôi bi\u1ebft \u0111i\u1ec1u nŕy có th\u1ec3 khó tr\u1ea3 l\u1eddi, quý v\u1ecb ch\u1ec9 c\u1ea7n \u01b0\u1edbc tính d\u1ef1a tręn công vi\u1ec7c c\u1ee7a {0}trong 30 ngŕy qua. +job-hours-per-week-self.subtext=Chúng tôi bi\u1ebft \u0111i\u1ec1u nŕy có th\u1ec3 khó tr\u1ea3 l\u1eddi, quý v\u1ecb ch\u1ec9 c\u1ea7n \u01b0\u1edbc tính d\u1ef1a tręn công vi\u1ec7c c\u1ee7a měnh trong 30 ngŕy qua. + +job-pay-period.title=K\u1ef3 thanh toán +job-pay-period-self.header=Quý v\u1ecb \u0111\u01b0\u1ee3c thanh toán l\u01b0\u01a1ng bao lâu m\u1ed9t l\u1ea7n? +job-pay-period-household.header={0} \u0111\u01b0\u1ee3c thanh toán l\u01b0\u01a1ng bao lâu m\u1ed9t l\u1ea7n? +job-pay-period.every-week=M\u1ed7i tu\u1ea7n +job-pay-period.every-two-weeks=M\u1ed7i 2 tu\u1ea7n +job-pay-period.twice-a-month=Hai l\u1ea7n m\u1ed9t tháng +job-pay-period.every-month=M\u1ed7i tháng +job-pay-period.it-varies=Tůy lúc + +job-pay-amount.title=S\u1ed1 ti\u1ec1n m\u1ed7i k\u1ef3 thanh toán +job-pay-amount.fixed.header=M\u1ee9c l\u01b0\u01a1ng c\u1ee7a {0} lŕ bao nhięu? +job-pay-amount.variable.header=Công vi\u1ec7c nŕy \u0111\u01b0\u1ee3c tr\u1ea3 l\u01b0\u01a1ng bao nhięu trong 30 ngŕy qua? +job-pay-amount.subtext=Cung c\u1ea5p thu nh\u1eadp tr\u01b0\u1edbc thu\u1ebf. Chúng tôi bi\u1ebft thông tin nŕy không d\u1ec5 tính toán. N\u1ebfu quý v\u1ecb không bi\u1ebft s\u1ed1 ti\u1ec1n chính xác, ch\u1ec9 c\u1ea7n \u01b0\u1edbc tính. + +income-confirmation.title=Xác nh\u1eadn thu nh\u1eadp +income-confirmation.header=\u0110ă rő! Quý v\u1ecb s\u1eafp hoŕn thŕnh ph\u1ea7n thu nh\u1eadp r\u1ed3i. +income-confirmation.subtext=Quý v\u1ecb có mu\u1ed1n b\u1ed5 sung m\u1ed9t công vi\u1ec7c khác cho h\u1ed9 gia \u0111ěnh quý v\u1ecb không? + +income-list.title=Danh sách thu nh\u1eadp +income-list.header=Tuy\u1ec7t v\u1eddi! Quý v\u1ecb có mu\u1ed1n b\u1ed5 sung thęm công vi\u1ec7c nŕo khác cho h\u1ed9 gia \u0111ěnh không? + +# Income +additional-income.title=Thu nh\u1eadp thęm +additional-income.header=Có ai trong h\u1ed9 gia \u0111ěnh có thu nh\u1eadp t\u1eeb b\u1ea5t k\u1ef3 ngu\u1ed3n nŕo d\u01b0\u1edbi \u0111ây không? +additional-income.subtext=Ch\u1ecdn t\u1ea5t c\u1ea3 nh\u1eefng câu tr\u1ea3 l\u1eddi \u0111úng. Quý v\u1ecb không c\u1ea7n ph\u1ea3i báo cáo nh\u1eefng kho\u1ea3n thu nh\u1eadp ch\u01b0a nh\u1eadn \u0111\u01b0\u1ee3c. +additional-income.choice1=Thu nh\u1eadp An sinh B\u1ed5 sung (SSI) +additional-income.choice2=An ninh xă h\u1ed9i +additional-income.choice3=Th\u1ea5t nghi\u1ec7p +additional-income.choice4=B\u1ed3i th\u01b0\u1eddng lao \u0111\u1ed9ng +additional-income.choice5=Tr\u1ee3 c\u1ea5p nuôi con +additional-income.choice6=Phúc l\u1ee3i c\u1ef1u chi\u1ebfn binh +additional-income.choice7=\u0110óng góp t\u1eeb quý v\u1ecb bč vŕ gia \u0111ěnh + +money-on-hand.title=Ti\u1ec1n m\u1eb7t có s\u1eb5n +money-on-hand.header=Nh\u1eefng ng\u01b0\u1eddi trong \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb có bao nhięu ti\u1ec1n m\u1eb7t có s\u1eb5n? +money-on-hand.subtext=

Ti\u1ec1n m\u1eb7t có s\u1eb5n bao g\u1ed3m t\u1ea5t c\u1ea3 kho\u1ea3n ti\u1ec1n m\u1eb7t, tŕi kho\u1ea3n văng lai vŕ tŕi kho\u1ea3n ti\u1ebft ki\u1ec7m.

Thông tin nŕy s\u1ebd không \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn s\u1ed1 ti\u1ec1n tr\u1ee3 c\u1ea5p c\u1ee7a quý v\u1ecb vŕ ch\u1ec9 \u0111\u01b0\u1ee3c s\u1eed d\u1ee5ng \u0111\u1ec3 xem xét li\u1ec7u quý v\u1ecb có \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn d\u1ecbch v\u1ee5 xét duy\u1ec7t \u01b0u tięn hay không.

Nh\u1eadp '0' n\u1ebfu quý v\u1ecb không có.

+ +income-list.subtext=Chúng tôi c\u1ea7n công vi\u1ec7c t\u1ef1 ch\u1ee7, công vi\u1ec7c lŕm t\u1ef1 do, công vi\u1ec7c theo h\u1ee3p \u0111\u1ed3ng, công vi\u1ec7c toŕn th\u1eddi gian vŕ bán th\u1eddi gian cho t\u1ea5t c\u1ea3 m\u1ecdi ng\u01b0\u1eddi, k\u1ec3 c\u1ea3 sinh vięn. +income-list.monthly-income=Thu nh\u1eadp hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh quý v\u1ecb +income-list.continue=Tôi \u0111ă \u0111i\u1ec1n h\u1ebft t\u1ea5t c\u1ea3 vi\u1ec7c lŕm +income-list.box-title=Thu nh\u1eadp hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh quý v\u1ecb +income-list.total-income=T\u1ed5ng thu nh\u1eadp hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh +income-list.total-monthly-pay=T\u1ed5ng thu nh\u1eadp hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh +income-list.no-jobs-added=Không có công vi\u1ec7c nŕo \u0111\u01b0\u1ee3c b\u1ed5 sung +income-list.thats-you=(chính lŕ b\u1ea1n!) +income-list.delete-job=xóa công vi\u1ec7c +income-list.edit-job=ch\u1ec9nh s\u1eeda công vi\u1ec7c +income-list.add-job=+ B\u1ed5 sung m\u1ed9t công vi\u1ec7c + +income-delete-confirmation.header=Quý v\u1ecb có ch\u1eafc ch\u1eafn mu\u1ed1n xóa {0} kh\u1ecfi công vi\u1ec7c c\u1ee7a {1} hay không? +income-delete-confirmation.no=Không, tôi mu\u1ed1n gi\u1eef l\u1ea1i +income-delete-confirmation.title=Xóa thu nh\u1eadp c\u1ee7a thŕnh vięn trong h\u1ed9 gia \u0111ěnh +income-delete-confirmation.yes=Có, xóa \u0111i + +household-income-total.add-by-job=Quý v\u1ecb có mu\u1ed1n b\u1ed5 sung thu nh\u1eadp hŕng tháng c\u1ee7a h\u1ed9 gia \u0111ěnh theo công vi\u1ec7c không? Vi\u1ec7c nŕy có th\u1ec3 giúp nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 hi\u1ec3u rő h\u01a1n vŕ h\u1ed7 tr\u1ee3 nhi\u1ec1u h\u01a1n cho \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb. +household-income-total.no=Không, ti\u1ebfp theo +household-income-total.yes=Có, b\u1ed5 sung thu nh\u1eadp theo công vi\u1ec7c + +# Expenses +expenses-signpost.title=B\u1ea3ng ch\u1ec9 d\u1eabn v\u1ec1 chi phí +expenses-signpost.step=B\u01b0\u1edbc 4 tręn 5 +expenses-signpost.header=Chi phí vŕ các kho\u1ea3n kh\u1ea5u tr\u1eeb +expenses-signpost.expense=Chi phí nhŕ c\u1eeda +expenses-signpost.addl-expense=Chi phí b\u1ed5 sung + +home-expenses.title=Chi phí nhŕ c\u1eeda +home-expenses.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb ph\u1ea3i tr\u1ea3 b\u1ea5t k\u1ef3 chi phí nŕo sau \u0111ây không? +home-expenses.rent=Ti\u1ec1n thuę +home-expenses.mortgage=Ti\u1ec1n th\u1ebf ch\u1ea5p +home-expenses.homeinsurance=B\u1ea3o hi\u1ec3m ch\u1ee7 nhŕ +home-expenses.tax=Thu\u1ebf b\u1ea5t \u0111\u1ed9ng s\u1ea3n +home-expenses.condo-fees=Phí chung c\u01b0 +home-expenses.lot-rent=Ti\u1ec1n thuę lô \u0111\u1ea5t +home-expenses.flood-insurance=B\u1ea3o hi\u1ec3m l\u0169 l\u1ee5t +home-expenses.other=Khác + +utilities.title=Chi phí ti\u1ec7n ích +utilities.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb ph\u1ea3i tr\u1ea3 ti\u1ec1n cho b\u1ea5t k\u1ef3 ti\u1ec7n ích nŕo sau \u0111ây không? +utilities.subheader=Ch\u1ecdn t\u1ea5t c\u1ea3 nh\u1eefng \u0111áp án chính xác, cho dů kho\u1ea3n phí \u0111ó v\u1eabn ch\u01b0a \u0111\u01b0\u1ee3c thanh toán trong tháng nŕy. +utilities.heating=Máy s\u01b0\u1edfi +utilities.cooling=Máy l\u1ea1nh +utilities.electricity=\u0110i\u1ec7n +utilities.water=N\u01b0\u1edbc +utilities.phone=\u0110i\u1ec7n tho\u1ea1i bŕn/di \u0111\u1ed9ng +utilities.garbage=\u0110\u1ed5 rác +utilities.sewer=C\u1ed1ng +utilities.cooking-fuel=Nhięn li\u1ec7u n\u1ea5u \u0103n +utilities.other=Khác + +home-expenses.question=H\u1ed9 gia \u0111ěnh quý v\u1ecb ph\u1ea3i thanh toán bao nhięu cho {0} m\u1ed7i tháng? +home-expenses.question.other=H\u1ed9 gia \u0111ěnh quý v\u1ecb ph\u1ea3i tr\u1ea3 bao nhięu cho các chi phí khác trong nhŕ m\u1ed7i tháng? +utilities-expenses.question.other=H\u1ed9 gia \u0111ěnh quý v\u1ecb ph\u1ea3i tr\u1ea3 bao nhięu cho các ti\u1ec7n ích khác m\u1ed7i tháng? + + +dependentcare.title=Ch\u0103m sóc ng\u01b0\u1eddi ph\u1ee5 thu\u1ed9c +dependentcare.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb ph\u1ea3i tr\u1ea3 ti\u1ec1n cho vi\u1ec7c ch\u0103m sóc tr\u1ebb em ho\u1eb7c ng\u01b0\u1eddi ph\u1ee5 thu\u1ed9c không? +dependentcare.subheader=

Ví d\u1ee5:

  • Phí c\u1ea5p d\u01b0\u1ee1ng con cái
  • Thuę ng\u01b0\u1eddi gi\u1eef tr\u1ebb
  • H\u1ecdc phí nhŕ tr\u1ebb
  • Ch\u0103m sóc sau gi\u1edd h\u1ecdc
  • Trung tâm d\u01b0\u1ee1ng lăo
  • Tr\u1ea1i hč
+ +dependentcare-expenses.title=S\u1ed1 ti\u1ec1n ch\u0103m sóc ph\u1ee5 thu\u1ed9c +dependentcare-expenses.header=Nh\u1eefng ng\u01b0\u1eddi trong \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb ph\u1ea3i tr\u1ea3 bao nhięu ti\u1ec1n cho vi\u1ec7c ch\u0103m sóc tr\u1ebb em ho\u1eb7c ng\u01b0\u1eddi ph\u1ee5 thu\u1ed9c m\u1ed7i tháng? +dependentcare-expenses.subheader=

N\u1ebfu b\u1ea1n cůng phňng c\u1ee7a quý v\u1ecb không tham gia \u0111\u0103ng ký cůng quý v\u1ecb, ch\u1ec9 li\u1ec7t kę s\u1ed1 ti\u1ec1n nh\u1eefng ng\u01b0\u1eddi trong \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb tr\u1ea3.

Nh\u1eadp '0' n\u1ebfu không có ai.

+ +insurance-expenses.title=Chi phí b\u1ea3o hi\u1ec3m +insurance-expenses.header=Có ai trong h\u1ed9 gia \u0111ěnh quý v\u1ecb tr\u1ea3 ti\u1ec1n b\u1ea3o hi\u1ec3m y t\u1ebf ho\u1eb7c các chi phí y t\u1ebf khác không? +insurance-expenses.subheader=Hăy cho chúng tôi bi\u1ebft n\u1ebfu quý v\u1ecb ph\u1ea3i t\u1ef1 chi tr\u1ea3 cho b\u1ea5t k\u1ef3 chi phí y t\u1ebf nŕo sau \u0111ây. +insurance-expenses.medical-insurance-premium=Phí b\u1ea3o hi\u1ec3m y t\u1ebf +insurance-expenses.dental-insurance-premium=Phí b\u1ea3o hi\u1ec3m nha khoa +insurance-expenses.vision-insurance-premium=Phí b\u1ea3o hi\u1ec3m th\u1ecb l\u1ef1c +insurance-expenses.medical-bills=Hóa \u0111\u01a1n y t\u1ebf ho\u1eb7c kho\u1ea3n \u0111\u1ed3ng thanh toán +insurance-expenses.none=Không có \u0111áp án nŕo nh\u01b0 tręn + +insurance-expenses-amount.header=Nh\u1eefng ng\u01b0\u1eddi trong \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb ph\u1ea3i tr\u1ea3 bao nhięu ti\u1ec1n cho {0}? +insurance-expenses-amount.subheader=N\u1ebfu hi\u1ec7n t\u1ea1i quý v\u1ecb không có thông tin v\u1ec1 nh\u1eefng câu h\u1ecfi nŕy, t\u1ea1m th\u1eddi hăy b\u1ecf qua. Nhân vięn DCFS s\u1ebd h\u1ecfi l\u1ea1i quý v\u1ecb v\u1ec1 v\u1ea5n \u0111\u1ec1 nŕy sau. + +elderlycare.title=Ch\u0103m sóc ng\u01b0\u1eddi cao tu\u1ed5i +elderlycare.header=Nh\u1eefng ng\u01b0\u1eddi t\u1eeb 60 tu\u1ed5i tr\u1edf lęn ho\u1eb7c \u0111ang nh\u1eadn tr\u1ee3 c\u1ea5p khuy\u1ebft t\u1eadt có ph\u1ea3i tr\u1ea3 tręn $35 các kho\u1ea3n phí y t\u1ebf m\u1ed7i tháng không? +elderlycare.subheader=

Ch\u1ec9 bao g\u1ed3m các chi phí không \u0111\u01b0\u1ee3c hoŕn tr\u1ea3.

+elderlycare.body=

Ví d\u1ee5:

  • Chi phí y t\u1ebf ho\u1eb7c nha khoa t\u1ef1 chi tr\u1ea3
  • Chi phí di chuy\u1ec3n \u0111\u1ebfn vŕ v\u1ec1 t\u1eeb các cu\u1ed9c h\u1eb9n th\u0103m khám
  • Thu\u1ed1c không kę \u0111\u01a1n
  • V\u1eadt t\u01b0 không kę \u0111\u01a1n
  • Nh\u1eadp vi\u1ec7n ho\u1eb7c \u0111i\u1ec1u d\u01b0\u1ee1ng
  • Chi phí lięn quan cho nhân vięn ch\u0103m sóc
+ +elderlycare-amount.title=S\u1ed1 ti\u1ec1n ch\u0103m sóc ng\u01b0\u1eddi cao tu\u1ed5i +elderlycare-amount.header=Nh\u1eefng ng\u01b0\u1eddi t\u1eeb 60 tu\u1ed5i tr\u1edf lęn ho\u1eb7c \u0111ang nh\u1eadn tr\u1ee3 c\u1ea5p khuy\u1ebft t\u1eadt ph\u1ea3i tr\u1ea3 bao nhięu chi phí y t\u1ebf m\u1ed7i tháng? +elderlycare-amount.subheader=Ch\u1ec9 bao g\u1ed3m các chi phí không \u0111\u01b0\u1ee3c hoŕn tr\u1ea3. + +#Final Signpost +final-signpost.title=B\u1ea3ng ch\u1ec9 d\u1eabn cu\u1ed1i cůng +final-signpost.step=B\u01b0\u1edbc 5 tręn 5 +final-signpost.header=G\u1eedi \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a b\u1ea1n +final-signpost.boxedcontent=Chúng tôi s\u1ebd h\u1ecfi v\u1ec1 +final-signpost.content-1=\u0110\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n +final-signpost.content-2=\u0110\u0103ng ký b\u1ea7u c\u1eed +final-signpost.content-3=Ch\u1ee7ng t\u1ed9c vŕ dân t\u1ed9c +final-signpost.content-4=\u0110\u1ed3ng ý các \u0111i\u1ec1u kho\u1ea3n + +authorized-rep.title=\u0110\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n +authorized-rep.header=Quý v\u1ecb có mu\u1ed1n ch\u1ec9 \u0111\u1ecbnh ai \u0111ó lŕm ng\u01b0\u1eddi \u0111\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n c\u1ee7a quý v\u1ecb không? +authorized-rep.subheader=Ng\u01b0\u1eddi nŕy có th\u1ec3 giúp \u0111\u1ee1 quý v\u1ecb v\u1ec1 các quy\u1ec1n l\u1ee3i c\u1ee7a quý v\u1ecb ho\u1eb7c hŕnh \u0111\u1ed9ng thay m\u1eb7t quý v\u1ecb. + +authorized-rep-communication.title=\u1ee6y quy\u1ec1n giao ti\u1ebfp cho \u0110\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n +authorized-rep-communication.header=Quý v\u1ecb có mu\u1ed1n ng\u01b0\u1eddi \u0111\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n c\u1ee7a quý v\u1ecb thay m\u1eb7t quý v\u1ecb lięn l\u1ea1c v\u1edbi DCFS không? +authorized-rep-communication.subheader=Ng\u01b0\u1eddi nŕy có th\u1ec3: +authorized-rep-communication.content-1=Nói thay cho quý v\u1ecb trong ph\u1ecfng v\u1ea5n +authorized-rep-communication.content-2=Giúp quý v\u1ecb hoŕn thŕnh các bi\u1ec3u m\u1eabu +authorized-rep-communication.content-3=Nói chuy\u1ec7n v\u1edbi nhŕ cung c\u1ea5p d\u1ecbch v\u1ee5 + +authorized-rep-mail.title=Th\u01b0 g\u1eedi \u0110\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n +authorized-rep-mail.header=Quý v\u1ecb có mu\u1ed1n ng\u01b0\u1eddi \u0111\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n c\u1ee7a quý v\u1ecb nh\u1eadn th\u01b0 vŕ thông báo thay cho quý v\u1ecb không? +authorized-rep-mail.subheader=Ng\u01b0\u1eddi nŕy có th\u1ec3: +authorized-rep-mail.content-1=Nh\u1eadn th\u01b0 v\u1ec1 phúc l\u1ee3i c\u1ee7a quý v\u1ecb +authorized-rep-mail.content-2=Nh\u1eadn thông báo qua th\u01b0 ho\u1eb7c \u0111i\u1ec7n tho\u1ea1i + +authorized-rep-spending.title=Kh\u1ea3 n\u0103ng chi tr\u1ea3 c\u1ee7a \u0110\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n +authorized-rep-spending.header=Quý v\u1ecb có mu\u1ed1n ng\u01b0\u1eddi \u0111\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n thay m\u1eb7t s\u1eed d\u1ee5ng tŕi kho\u1ea3n phúc l\u1ee3i c\u1ee7a quý v\u1ecb hay không? +authorized-rep-spending.subheader=Ng\u01b0\u1eddi nŕy có th\u1ec3: +authorized-rep-spending.content-1=Nh\u1eadn th\u1ebb EBT rięng \u0111\u01b0\u1ee3c k\u1ebft n\u1ed1i v\u1edbi tŕi kho\u1ea3n phúc l\u1ee3i c\u1ee7a quý v\u1ecb +authorized-rep-spending.content-2=Mua \u0111\u1ed3 cho quý v\u1ecb b\u1eb1ng th\u1ebb c\u1ee7a h\u1ecd + +authorized-rep-contact-info.title=Thông tin lięn h\u1ec7 c\u1ee7a \u0110\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n +authorized-rep-contact-info.header=Thęm thông tin lięn h\u1ec7 c\u1ee7a ng\u01b0\u1eddi \u0111\u1ea1i di\u1ec7n \u0111\u01b0\u1ee3c \u1ee7y quy\u1ec1n c\u1ee7a quý v\u1ecb +authorized-rep-contact-info.subheader=Chúng tôi c\u1ea7n g\u1eedi thông tin nŕy \u0111\u1ebfn DCFS. Câu có d\u1ea5u hoa th\u1ecb (*) lŕ câu h\u1ecfi b\u1eaft bu\u1ed9c. +authorized-rep-contact-info.firstname-question=Tęn c\u1ee7a h\u1ecd lŕ gě? +authorized-rep-contact-info.name-helptext=Nh\u01b0 nó xu\u1ea5t hi\u1ec7n tręn gi\u1ea5y t\u1edd tůy thân c\u1ee7a h\u1ecd +authorized-rep-contact-info.lastname-question=H\u1ecd c\u1ee7a h\u1ecd lŕ gě? +authorized-rep-contact-info.othername-question=Nh\u1eefng tęn khác h\u1ecd hi\u1ec7n \u0111ang s\u1eed d\u1ee5ng ho\u1eb7c \u0111ă s\u1eed d\u1ee5ng trong quá kh\u1ee9 +authorized-rep-contact-info.othername-helptext=Không b\u1eaft bu\u1ed9c. Li\u1ec7t kę h\u1ecd tr\u01b0\u1edbc khi l\u1ea5y ch\u1ed3ng, nh\u1eefng l\u1ea7n \u0111\u1ed5i tęn h\u1ee3p pháp, vŕ cách x\u01b0ng hô theo gi\u1edbi tính mong mu\u1ed1n. +authorized-rep-contact-info.streetAddress1=Tęn \u0111\u01b0\u1eddng lŕ gě? +authorized-rep-contact-info.streetAddress2=S\u1ed1 c\u0103n h\u1ed9 lŕ gě? +authorized-rep-contact-info.city=Tęn thŕnh ph\u1ed1 lŕ gě? +authorized-rep-contact-info.state=Tęn ti\u1ec3u bang lŕ gě? +authorized-rep-contact-info.zipCode=Mă b\u01b0u chính lŕ gě? +authorized-rep-contact-info.phone-number=S\u1ed1 \u0111i\u1ec7n tho\u1ea1i lŕ bao nhięu? +authorized-rep-contact-info.phone-number.help=Không b\u1eaft bu\u1ed9c. Nhân vięn ph\u1ee5 trách h\u1ed3 s\u01a1 c\u1ee7a chúng tôi có th\u1ec3 lięn h\u1ec7 tr\u1ef1c ti\u1ebfp v\u1edbi h\u1ecd qua s\u1ed1 \u0111i\u1ec7n tho\u1ea1i nŕy. N\u1ebfu quý v\u1ecb không cung c\u1ea5p s\u1ed1 \u0111i\u1ec7n tho\u1ea1i, ti\u1ebfn trěnh d\u1ecbch v\u1ee5 có th\u1ec3 b\u1ecb ch\u1eadm tr\u1ec5. + +medicaid.title=Tr\u1ee3 c\u1ea5p y t\u1ebf +medicaid.header=Quý v\u1ecb có c\u1ea7n b\u1ea3o hi\u1ec3m y t\u1ebf chi mi\u1ec5n phí hay không? +medicaid.subheader=Chúng tôi có th\u1ec3 chia s\u1ebb thông tin c\u1ee7a quý v\u1ecb t\u1eeb \u0111\u01a1n \u0111\u0103ng ký nŕy v\u1edbi B\u1ed9 Y t\u1ebf Louisiana (LDH). LDH s\u1ebd l\u1ecdc ra nh\u1eefng ai \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n \u0111\u0103ng ký vŕ g\u1eedi cho quý v\u1ecb m\u1ed9t lá th\u01b0 cung c\u1ea5p thęm thông tin v\u1ec1 ch\u01b0\u01a1ng trěnh Tr\u1ee3 c\u1ea5p y t\u1ebf. Tr\u1ebb em vŕ ng\u01b0\u1eddi l\u1edbn (d\u01b0\u1edbi 65 tu\u1ed5i không có Medicare) có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia. +medicaid.yes=Vâng, hăy chia s\u1ebb thông tin c\u1ee7a tôi +medicaid.no=Không, \u0111\u1eebng chia s\u1ebb thông tin c\u1ee7a tôi + +voter-registration.title=\u0110\u0103ng ký b\u1ecf phi\u1ebfu +voter-registration.header=N\u1ebfu quý v\u1ecb ch\u01b0a \u0111\u0103ng ký b\u1ecf phi\u1ebfu t\u1ea1i n\u01a1i quý v\u1ecb \u0111ang s\u1ed1ng, quý v\u1ecb có mu\u1ed1n \u0111\u0103ng ký b\u1ecf phi\u1ebfu t\u1ea1i \u0111ây ngay hôm nay không? +voter-registration.subheader=Vi\u1ec7c n\u1ed9p \u0111\u01a1n \u0111\u0103ng ký ho\u1eb7c t\u1eeb ch\u1ed1i \u0111\u0103ng ký b\u1ecf phi\u1ebfu s\u1ebd không \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn s\u1ed1 ti\u1ec1n tr\u1ee3 c\u1ea5p mŕ c\u01a1 quan nŕy s\u1ebd cung c\u1ea5p cho quý v\u1ecb. +voter-registration.yes=Có, tôi mu\u1ed1n \u0111\u0103ng ký b\u1ecf phi\u1ebfu +voter-registration.no=Không, tôi không mu\u1ed1n ho\u1eb7c không c\u1ea7n ph\u1ea3i \u0111\u0103ng ký b\u1ecf phi\u1ebfu ngay bây gi\u1edd +vote-registration.expanded.header1=\u0110i\u1ec1u nŕy có \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn s\u1ed1 ti\u1ec1n tr\u1ee3 c\u1ea5p tôi có th\u1ec3 nh\u1eadn \u0111\u01b0\u1ee3c không? +vote-registration.expanded.body1=Vi\u1ec7c n\u1ed9p \u0111\u01a1n \u0111\u0103ng ký ho\u1eb7c t\u1eeb ch\u1ed1i \u0111\u0103ng ký b\u1ecf phi\u1ebfu s\u1ebd không \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn s\u1ed1 ti\u1ec1n tr\u1ee3 c\u1ea5p mŕ c\u01a1 quan nŕy s\u1ebd cung c\u1ea5p cho quý v\u1ecb. +vote-registration.expanded.header2=Li\u1ec7u có ai \u0111ang c\u1ed1 g\u1eafng ng\u0103n c\u1ea3n quy\u1ec1n b\u1ecf phi\u1ebfu c\u1ee7a quý v\u1ecb hay không? +vote-registration.expanded.body2=N\u1ebfu quý v\u1ecb c\u1ea3m th\u1ea5y r\u1eb1ng ai \u0111ó \u0111ă can thi\u1ec7p vŕo quy\u1ec1n \u0111\u0103ng ký ho\u1eb7c t\u1eeb ch\u1ed1i \u0111\u0103ng ký b\u1ecf phi\u1ebfu c\u1ee7a quý v\u1ecb, quy\u1ec1n rięng t\u01b0 c\u1ee7a quý v\u1ecb trong vi\u1ec7c quy\u1ebft \u0111\u1ecbnh \u0111\u0103ng ký hay n\u1ed9p \u0111\u01a1n \u0111\u0103ng ký b\u1ecf phi\u1ebfu, ho\u1eb7c quy\u1ec1n ch\u1ecdn \u0111\u1ea3ng chính tr\u1ecb c\u1ee7a rięng quý v\u1ecb ho\u1eb7c s\u1edf thích chính tr\u1ecb khác, quý v\u1ecb có th\u1ec3 n\u1ed9p \u0111\u01a1n khi\u1ebfu n\u1ea1i lęn B\u1ed9 tr\u01b0\u1edfng Ngo\u1ea1i giao Louisiana, \u1ee6y vięn B\u1ea7u c\u1eed, P.O. Box 94125, Baton Rouge, LA 70804-9125 ho\u1eb7c b\u1eb1ng cách g\u1ecdi (225) 922-0900 ho\u1eb7c 1-800-883-2805 . + +voter-registration-help.title=Tr\u1ee3 giúp \u0111\u0103ng ký b\u1ecf phi\u1ebfu +voter-registration-help.header=Quý v\u1ecb có mu\u1ed1n \u0111\u01b0\u1ee3c tr\u1ee3 giúp \u0111i\u1ec1n \u0111\u01a1n \u0111\u1ec3 \u0111\u0103ng ký b\u1ecf phi\u1ebfu không? +voter-registration-help.subheader=N\u1ebfu quý v\u1ecb mu\u1ed1n \u0111\u01b0\u1ee3c tr\u1ee3 giúp \u0111i\u1ec1n m\u1eabu \u0111\u01a1n \u0111\u0103ng ký c\u1eed tri, chúng tôi s\u1ebd giúp quý v\u1ecb.

Quy\u1ebft \u0111\u1ecbnh těm ho\u1eb7c ch\u1ea5p nh\u1eadn giúp \u0111\u1ee1 hay không lŕ c\u1ee7a quý v\u1ecb. Quý v\u1ecb có th\u1ec3 t\u1ef1 měnh \u0111i\u1ec1n vŕo m\u1eabu \u0111\u01a1n. +voter-registration-help.yes=Vâng, tôi mu\u1ed1n \u0111\u01b0\u1ee3c giúp \u0111\u1ee1 +voter-registration-help.no=Không, tôi không c\u1ea7n giúp \u0111\u1ee1 + +race-ethnicity.title=Ch\u1ee7ng t\u1ed9c vŕ dân t\u1ed9c +race-ethnicity-ask.header=Chúng tôi có th\u1ec3 h\u1ecfi v\u1ec1 ch\u1ee7ng t\u1ed9c vŕ s\u1eafc t\u1ed9c c\u1ee7a b\u1ea1n không? +race-ethnicity-ask.subheader=Vi\u1ec7c cung c\u1ea5p ch\u1ee7ng t\u1ed9c vŕ s\u1eafc t\u1ed9c c\u1ee7a b\u1ea1n lŕ tůy ch\u1ecdn vŕ s\u1ebd không \u1ea3nh h\u01b0\u1edfng \u0111\u1ebfn \u0111\u01a1n \u0111\u0103ng ký cá nhân c\u1ee7a b\u1ea1n.

Chúng tôi s\u1ebd s\u1eed d\u1ee5ng thông tin nŕy \u0111\u1ec3 \u0111ánh giá tính công b\u1eb1ng c\u1ee7a SNAP vŕ \u0111\u01a1n \u0111\u0103ng ký Phúc l\u1ee3i Louisiana, \u0111\u1ed3ng th\u1eddi chúng tôi yęu c\u1ea7u b\u1ea1n cung c\u1ea5p thông tin \u0111ó \u0111\u1ec3 \u0111\u1ea3m b\u1ea3o r\u1eb1ng b\u1ea1n \u0111\u01b0\u1ee3c \u0111\u1ea1i di\u1ec7n chính xác. +race-ethnicity-ask.yes=Vâng, ti\u1ebfp t\u1ee5c +race-ethnicity-ask.no=Không, b\u1ecf qua câu h\u1ecfi nŕy + +ethnicity-selection.title=L\u1ef1a ch\u1ecdn dân t\u1ed9c +ethnicity-selection.header=B\u1ea1n xác \u0111\u1ecbnh měnh thu\u1ed9c dân t\u1ed9c nŕo? +ethnicity-selection.subheader=Ch\u1ecdn m\u1ed9t. +ethnicity-selection.option1=Tây Ban Nha ho\u1eb7c Latino +ethnicity-selection.option2=Không ph\u1ea3i g\u1ed1c Tây Ban Nha ho\u1eb7c La tinh + +race-selection.title=L\u1ef1a ch\u1ecdn ch\u1ee7ng t\u1ed9c +race-selection.header=B\u1ea1n xác \u0111\u1ecbnh měnh thu\u1ed9c ch\u1ee7ng t\u1ed9c nŕo? +race-selection.subheader=\u0110ánh d\u1ea5u t\u1ea5t c\u1ea3 nh\u1eefng gě áp d\u1ee5ng. +race-selection.option1=Ng\u01b0\u1eddi M\u1ef9 da \u0111\u1ecf ho\u1eb7c th\u1ed5 dân Alaska +race-selection.option2=Châu Á +race-selection.option3=Ng\u01b0\u1eddi da \u0111en ho\u1eb7c ng\u01b0\u1eddi M\u1ef9 g\u1ed1c Phi +race-selection.option4=Ng\u01b0\u1eddi Hawaii b\u1ea3n x\u1ee9 ho\u1eb7c ng\u01b0\u1eddi \u0111\u1ea3o Thái Běnh D\u01b0\u01a1ng khác +race-selection.option5=Tr\u1eafng + +legal-title=Th\u1ee7 t\u1ee5c pháp lí +legal-header1=Nh\u1eefng th\u1ee9 h\u1ee3p pháp +legal-subheader=Th\u1ecfa thu\u1eadn chung +legal-main-body=M\u1edf r\u1ed9ng các ô bęn d\u01b0\u1edbi \u0111\u1ec3 xem l\u1ea1i các \u0111i\u1ec1u kho\u1ea3n. \u0110ánh d\u1ea5u vŕo các ô có \u0111i\u1ec1u kho\u1ea3n mŕ quý v\u1ecb \u0111\u1ed3ng ý. Quý v\u1ecb s\u1ebd ký tęn vŕo trang ti\u1ebfp theo. +legal-expanded.header1=Quy\u1ec1n vŕ trách nhi\u1ec7m c\u1ee7a b\u1ea1n +legal-expanded.body1=

Khi nh\u1eadn \u0111\u01b0\u1ee3c phúc l\u1ee3i t\u1eeb B\u1ed9 D\u1ecbch v\u1ee5 Gia \u0111ěnh vŕ Tr\u1ebb em Louisiana, quý v\u1ecb có m\u1ed9t s\u1ed1 quy\u1ec1n vŕ trách nhi\u1ec7m nh\u1ea5t \u0111\u1ecbnh nh\u01b0 \u0111\u01b0\u1ee3c gi\u1ea3i thích bęn d\u01b0\u1edbi.

Quy\u1ec1n c\u1ee7a quý v\u1ecb lŕ gě?

  • Không b\u1ecb phân bi\u1ec7t \u0111\u1ed1i x\u1eed - T\u1ed5 ch\u1ee9c nŕy c\u1ea5m hŕnh vi phân bi\u1ec7t \u0111\u1ed1i x\u1eed d\u1ef1a tręn ch\u1ee7ng t\u1ed9c, mŕu da, quę quán qu\u1ed1c t\u1ecbch, tu\u1ed5i tác, khuy\u1ebft t\u1eadt, gi\u1edbi tính, vŕ trong m\u1ed9t s\u1ed1 tr\u01b0\u1eddng h\u1ee3p lŕ khác bi\u1ec7t v\u1ec1 tôn giáo ho\u1eb7c quan \u0111i\u1ec3m chính tr\u1ecb. B\u1ed9 Nông nghi\u1ec7p Hoa K\u1ef3 c\u0169ng c\u1ea5m hŕnh vi phân bi\u1ec7t \u0111\u1ed1i x\u1eed \u0111\u1ed1i v\u1edbi khách hŕng, nhân vięn vŕ ng\u01b0\u1eddi n\u1ed9p \u0111\u01a1n xin vi\u1ec7c d\u1ef1a tręn ch\u1ee7ng t\u1ed9c, mŕu da, quę quán, tu\u1ed5i tác, khuy\u1ebft t\u1eadt, gi\u1edbi tính, b\u1ea3n d\u1ea1ng gi\u1edbi, tôn giáo, thů oán, vŕ n\u1ebfu có, quan \u0111i\u1ec3m chính tr\u1ecb, těnh tr\u1ea1ng hôn nhân, těnh tr\u1ea1ng gia \u0111ěnh ho\u1eb7c cha m\u1eb9, khuynh h\u01b0\u1edbng těnh d\u1ee5c, toŕn b\u1ed9 ho\u1eb7c m\u1ed9t ph\u1ea7n thu nh\u1eadp c\u1ee7a m\u1ed9t cá nhân có \u0111\u01b0\u1ee3c t\u1eeb b\u1ea5t k\u1ef3 ch\u01b0\u01a1ng trěnh h\u1ed7 tr\u1ee3 công c\u1ed9ng nŕo ho\u1eb7c thông tin di truy\u1ec1n \u0111\u01b0\u1ee3c b\u1ea3o v\u1ec7 trong vi\u1ec7c lŕm ho\u1eb7c trong b\u1ea5t k\u1ef3 ch\u01b0\u01a1ng trěnh ho\u1eb7c ho\u1ea1t \u0111\u1ed9ng nŕo do B\u1ed9 th\u1ef1c hi\u1ec7n ho\u1eb7c tŕi tr\u1ee3. (Không ph\u1ea3i t\u1ea5t c\u1ea3 các c\u01a1 s\u1edf b\u1ecb c\u1ea5m \u0111\u1ec1u áp d\u1ee5ng cho t\u1ea5t c\u1ea3 các ch\u01b0\u01a1ng trěnh vŕ/ho\u1eb7c ho\u1ea1t \u0111\u1ed9ng vi\u1ec7c lŕm) Ng\u01b0\u1eddi khuy\u1ebft t\u1eadt c\u1ea7n ph\u01b0\u01a1ng ti\u1ec7n giao ti\u1ebfp thay th\u1ebf \u0111\u1ec3 bi\u1ebft thông tin ch\u01b0\u01a1ng trěnh (ví d\u1ee5: ch\u1eef n\u1ed5i Braille, ch\u1eef in l\u1edbn, b\u0103ng ghi âm, Ngôn ng\u1eef ký hi\u1ec7u Hoa K\u1ef3, v.v.), nęn lięn h\u1ec7 v\u1edbi C\u01a1 quan (Ti\u1ec3u bang ho\u1eb7c \u0111\u1ecba ph\u01b0\u01a1ng) n\u01a1i h\u1ecd n\u1ed9p \u0111\u01a1n xin tr\u1ee3 c\u1ea5p. Nh\u1eefng ng\u01b0\u1eddi b\u1ecb khi\u1ebfm thính, lăng tai ho\u1eb7c b\u1ecb khuy\u1ebft t\u1eadt v\u1ec1 ngôn ng\u1eef có th\u1ec3 lięn h\u1ec7 v\u1edbi USDA thông qua D\u1ecbch v\u1ee5 Phięn d\u1ecbch cho ng\u01b0\u1eddi khi\u1ebfm thính Lięn bang theo s\u1ed1 (800) 877-8339. Ngoŕi ra, thông tin ch\u01b0\u01a1ng trěnh có th\u1ec3 \u0111\u01b0\u1ee3c cung c\u1ea5p b\u1eb1ng các ngôn ng\u1eef khác ngoŕi ti\u1ebfng Anh. \u0110\u1ec3 g\u1eedi khi\u1ebfu n\u1ea1i v\u1ec1 s\u1ef1 phân bi\u1ec7t \u0111\u1ed1i x\u1eed c\u1ee7a ch\u01b0\u01a1ng trěnh, hăy hoŕn thŕnh M\u1eabu Khi\u1ebfu n\u1ea1i Phân bi\u1ec7t \u0111\u1ed1i x\u1eed trong Ch\u01b0\u01a1ng trěnh USDA, (AD-3027), truy c\u1eadp tr\u1ef1c tuy\u1ebfn t\u1ea1i http://www.ascr.usda.gov/complaint_filing_cust.html, ho\u1eb7c t\u1ea1i b\u1ea5t k\u1ef3 v\u0103n phňng USDA nŕo, ho\u1eb7c vi\u1ebft m\u1ed9t lá th\u01b0 g\u1eedi t\u1edbi USDA vŕ cung c\u1ea5p t\u1ea5t c\u1ea3 thông tin mŕ bi\u1ec3u m\u1eabu yęu c\u1ea7u trong th\u01b0. \u0110\u1ec3 nh\u1eadn m\u1ed9t b\u1ea3n sao m\u1eabu \u0111\u01a1n khi\u1ebfu n\u1ea1i, hăy g\u1ecdi (866) 632-9992. G\u1eedi bi\u1ec3u m\u1eabu ho\u1eb7c lá th\u01b0 \u0111ă \u0111i\u1ec1n \u0111\u1ea7y \u0111\u1ee7 c\u1ee7a quý v\u1ecb t\u1edbi USDA b\u1eb1ng cách:
    • 1. Th\u01b0: V\u0103n phňng Tr\u1ee3 lý B\u1ed9 tr\u01b0\u1edfng Dân quy\u1ec1n thu\u1ed9c B\u1ed9 Nông nghi\u1ec7p Hoa K\u1ef3
      1400 Independence Avenue, SW Washington, D.C. 20250-94102.
    • 2. Fax: (202) 690-7442; ho\u1eb7c
    • 3. Email: program.intake@usda.gov.
    \u0110\u1ec3 bi\u1ebft thông tin khác lięn quan \u0111\u1ebfn Ch\u01b0\u01a1ng trěnh H\u1ed7 tr\u1ee3 Dinh d\u01b0\u1ee1ng B\u1ed5 sung (SNAP), m\u1ecdi ng\u01b0\u1eddi nęn lięn h\u1ec7 v\u1edbi \u0111\u01b0\u1eddng dây nóng SNAP c\u1ee7a USDA theo s\u1ed1 (800) 221-5689, c\u0169ng b\u1eb1ng ti\u1ebfng Tây Ban Nha ho\u1eb7c g\u1ecdi t\u1edbi \u0110\u01b0\u1eddng dây nóng/Thông tin Ti\u1ec3u bang (nh\u1ea5p vŕo lięn k\u1ebft \u0111\u1ec3 xem danh sách các s\u1ed1 \u0111i\u1ec7n tho\u1ea1i \u0111\u01b0\u1eddng dây nóng theo Ti\u1ec3u bang); có th\u1ec3 truy c\u1eadp tr\u1ef1c tuy\u1ebfn t\u1ea1i http://www.fns.usda. gov/snap/contact_info/hotlines.htm. \u0110\u1ec3 n\u1ed9p \u0111\u01a1n khi\u1ebfu n\u1ea1i v\u1ec1 hŕnh vi phân bi\u1ec7t \u0111\u1ed1i x\u1eed lięn quan \u0111\u1ebfn m\u1ed9t ch\u01b0\u01a1ng trěnh nh\u1eadn h\u1ed7 tr\u1ee3 tŕi chính c\u1ee7a Lięn bang thông qua B\u1ed9 Y t\u1ebf vŕ D\u1ecbch v\u1ee5 Nhân sinh Hoa K\u1ef3 (HHS), hăy vi\u1ebft: HHS Director, Office for Civil Rights, Room 515-F, 200 Independence Avenue, S.W., Washington, D.C. 20201 ho\u1eb7c g\u1ecdi (202) 619-0403 (trao \u0111\u1ed5i qua cu\u1ed9c g\u1ecdi tho\u1ea1i) ho\u1eb7c (800) 537-7697 (phięn d\u1ecbch cho ng\u01b0\u1eddi khi\u1ebfm thính). T\u1ed5 ch\u1ee9c nŕy lŕ nhŕ cung c\u1ea5p c\u01a1 h\u1ed9i gia \u0111ěnh běnh \u0111\u1eb3ng.
  • Khi\u1ebfu n\u1ea1i - Khi\u1ebfu n\u1ea1i v\u1ec1 ch\u01b0\u01a1ng trěnh có th\u1ec3 \u0111\u01b0\u1ee3c g\u1eedi t\u1edbi B\u1ed9 D\u1ecbch v\u1ee5 Tr\u1ebb em vŕ Gia \u0111ěnh (DCFS) b\u1eb1ng cách g\u1eedi email t\u1edbi LAHELPU.DCFS@LA.GOV ho\u1eb7c b\u1eb1ng cách g\u1ecdi t\u1edbi s\u1ed1 225-342-2342. Quý v\u1ecb có th\u1ec3 n\u1ed9p \u0111\u01a1n khi\u1ebfu n\u1ea1i v\u1ec1 quy\u1ec1n dân s\u1ef1 lęn B\u1ed9 D\u1ecbch v\u1ee5 Gia \u0111ěnh vŕ Tr\u1ebb em (DCFS) b\u1eb1ng cách \u0111i\u1ec1n vŕo M\u1eabu Khi\u1ebfu n\u1ea1i Dân quy\u1ec1n DCFS. N\u1ed9p \u0111\u01a1n cho v\u0103n phňng \u0111\u1ecba ph\u01b0\u01a1ng; g\u1eedi nó \u0111\u1ebfn B\u1ed9 ph\u1eadn Dân quy\u1ec1n DCFS, \u0110\u1ecba ch\u1ec9 h\u1ed9 gia \u0111ěnhp th\u01b0 b\u01b0u \u0111i\u1ec7n lŕ 1887, Baton Rouge, LA 70821; email DCFS.BureauofCivilRights@LA.GOV, ho\u1eb7c; g\u1ecdi (225) 342-0309. Quý v\u1ecb có th\u1ec3 n\u1ed9p \u0111\u01a1n khi\u1ebfu n\u1ea1i v\u1ec1 quy\u1ec1n dân s\u1ef1 v\u1edbi DCFS vŕ USDA ho\u1eb7c ch\u1ec9 DCFS.
  • \u0110i\u1ec1u tr\u1ea7n công b\u1eb1ng - N\u1ebfu quý v\u1ecb không \u0111\u1ed3ng ý v\u1edbi b\u1ea5t k\u1ef3 quy\u1ebft \u0111\u1ecbnh nŕo \u0111\u01b0\u1ee3c \u0111\u01b0a ra \u0111\u1ed1i v\u1edbi tr\u01b0\u1eddng h\u1ee3p c\u1ee7a měnh, quý v\u1ecb có quy\u1ec1n yęu c\u1ea7u xem xét l\u1ea1i tr\u01b0\u1eddng h\u1ee3p c\u1ee7a měnh. Quý v\u1ecb có th\u1ec3 yęu c\u1ea7u m\u1ed9t phięn \u0111i\u1ec1u tr\u1ea7n công b\u1eb1ng b\u1eb1ng v\u0103n b\u1ea3n, tr\u1ef1c ti\u1ebfp ho\u1eb7c b\u1eb1ng cách g\u1ecdi \u0111\u1ebfn v\u0103n phňng. Quý v\u1ecb có quy\u1ec1n xem thông tin tr\u01b0\u1eddng h\u1ee3p c\u1ee7a měnh tr\u01b0\u1edbc phięn \u0111i\u1ec1u tr\u1ea7n.

Trách nhi\u1ec7m c\u1ee7a quý v\u1ecb lŕ gě?

  • H\u1ee3p tác - Quý v\u1ecb ph\u1ea3i h\u1ee3p tác b\u1eb1ng cách cung c\u1ea5p thông tin chúng tôi c\u1ea7n \u0111\u1ec3 xác \u0111\u1ecbnh kh\u1ea3 n\u0103ng \u0111\u1ea1t \u0111i\u1ec1u ki\u1ec7n nh\u1eadn phúc l\u1ee3i c\u1ee7a quý v\u1ecb vŕ nh\u1eefng ng\u01b0\u1eddi khác mŕ quý v\u1ecb \u0111ang n\u1ed9p \u0111\u01a1n xin tr\u1ee3 c\u1ea5p. Quý v\u1ecb c\u0169ng ph\u1ea3i cung c\u1ea5p b\u1eb1ng ch\u1ee9ng v\u1ec1 thông tin quý v\u1ecb báo cáo. Quý v\u1ecb s\u1ebd ph\u1ea3i h\u1ee3p tác n\u1ebfu chúng tôi c\u1ea7n c\u1eed ng\u01b0\u1eddi \u0111\u1ebfn th\u0103m vŕ xem xét h\u1ed9 gia \u0111ěnh gia \u0111ěnh có \u0111\u1ea1t \u0111i\u1ec1u ki\u1ec7n hay không. N\u1ebfu tr\u01b0\u1eddng h\u1ee3p c\u1ee7a quý v\u1ecb \u0111\u01b0\u1ee3c các nhân vięn \u0111ánh giá c\u1ee7a ti\u1ec3u bang ho\u1eb7c lięn bang ch\u1ecdn \u0111\u1ec3 \u0111ánh giá ki\u1ec3m soát ch\u1ea5t l\u01b0\u1ee3ng, thě quý v\u1ecb ph\u1ea3i h\u1ee3p tác v\u1edbi h\u1ecd.

Báo cáo thay \u0111\u1ed5i

N\u1ebfu quý v\u1ecb nh\u1eadn \u0111\u01b0\u1ee3c tr\u1ee3 c\u1ea5p SNAP, quý v\u1ecb ph\u1ea3i báo cáo:

  • Khi thu nh\u1eadp t\u0103ng lęn ho\u1eb7c n\u1ebfu ai \u0111ó có thu nh\u1eadp chuy\u1ec3n \u0111\u1ebfn \u1edf t\u1ea1i nhŕ, hăy c\u1ed9ng s\u1ed1 ti\u1ec1n thu nh\u1eadp ki\u1ebfm \u0111\u01b0\u1ee3c vŕ không ki\u1ebfm \u0111\u01b0\u1ee3c cho t\u1ea5t c\u1ea3 các thŕnh vięn h\u1ed9 gia \u0111ěnh gia \u0111ěnh. N\u1ebfu s\u1ed1 ti\u1ec1n nŕy l\u1edbn h\u01a1n 130% M\u1ee9c Nghčo Lięn bang \u0111\u1ed1i v\u1edbi quy mô h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb \u0111\u01b0\u1ee3c hi\u1ec3n th\u1ecb trong thông báo SNAP g\u1ea7n \u0111ây nh\u1ea5t c\u1ee7a quý v\u1ecb, thě thay \u0111\u1ed5i nŕy ph\u1ea3i \u0111\u01b0\u1ee3c báo cáo cho DCFS.
  • N\u1ebfu h\u1ed9 gia \u0111ěnh gia \u0111ěnh c\u1ee7a quý v\u1ecb nh\u1eadn \u0111\u01b0\u1ee3c ti\u1ec1n th\u1eafng x\u1ed5 s\u1ed1 ho\u1eb7c c\u1edd b\u1ea1c t\u1eeb $4.250,00 tr\u1edf lęn, th\u1eafng trong m\u1ed9t trň ch\u01a1i tr\u01b0\u1edbc thu\u1ebf ho\u1eb7c kho\u1ea3n kh\u1ea5u tr\u1eeb.
  • N\u1ebfu quý v\u1ecb nh\u1eadn \u0111\u01b0\u1ee3c FITAP, quý v\u1ecb ph\u1ea3i tuân theo các yęu c\u1ea7u báo cáo \u0111\u01b0\u1ee3c gi\u1ea3i thích trong Th\u1ecfa thu\u1eadn Gia \u0111ěnh Thŕnh công c\u1ee7a quý v\u1ecb vŕ báo cáo nh\u1eefng thay \u0111\u1ed5i nŕy trong vňng 10 ngŕy k\u1ec3 t\u1eeb khi quý v\u1ecb bi\u1ebft v\u1ec1 s\u1ef1 thay \u0111\u1ed5i vŕ báo cáo trong vňng 10 ngŕy n\u1ebfu \u0111\u1ee9a tr\u1ebb \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn tr\u1ee3 c\u1ea5p FITAP v\u1eeba chuy\u1ec3n ra kh\u1ecfi nhŕ c\u1ee7a quý v\u1ecb.
  • N\u1ebfu quý v\u1ecb \u0111ang nh\u1eadn tr\u1ee3 c\u1ea5p Sau FITAP, quý v\u1ecb c\u0169ng ph\u1ea3i báo cáo trong vňng 10 ngŕy n\u1ebfu quý v\u1ecb ng\u1eebng lŕm vi\u1ec7c, n\u1ebfu \u0111\u1ee9a tr\u1ebb duy nh\u1ea5t trong nhŕ chuy\u1ec3n ra kh\u1ecfi nhŕ vŕ n\u1ebfu quý v\u1ecb chuy\u1ec3n ra kh\u1ecfi ti\u1ec3u bang.
  • N\u1ebfu quý v\u1ecb nh\u1eadn \u0111\u01b0\u1ee3c KCSP, quý v\u1ecb ph\u1ea3i báo cáo trong vňng 10 ngŕy n\u1ebfu \u0111\u1ee9a tr\u1ebb duy nh\u1ea5t \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn tr\u1ee3 c\u1ea5p KCSP chuy\u1ec3n ra kh\u1ecfi nhŕ c\u1ee7a quý v\u1ecb.
  • N\u1ebfu quý v\u1ecb không nh\u1eadn \u0111\u01b0\u1ee3c tr\u1ee3 c\u1ea5p SNAP vŕ \u0111ang nh\u1eadn FITAP, KCSP ho\u1eb7c CCAP, quý v\u1ecb ph\u1ea3i báo cáo trong vňng 10 ngŕy n\u1ebfu: Có s\u1ef1 thay \u0111\u1ed5i v\u1ec1 ngu\u1ed3n c\u1ee7a b\u1ea5t k\u1ef3 kho\u1ea3n thu nh\u1eadp nŕo nh\u1eadn \u0111\u01b0\u1ee3c trong h\u1ed9 gia \u0111ěnh (\u0110i\u1ec1u nŕy bao g\u1ed3m nh\u1eefng thay \u0111\u1ed5i v\u1ec1 ng\u01b0\u1eddi s\u1eed d\u1ee5ng lao \u0111\u1ed9ng vŕ các ngu\u1ed3n thu nh\u1eadp nh\u01b0 h\u1ed7 tr\u1ee3 nuôi con, An sinh xă h\u1ed9 gia \u0111ěnhi, SSI, v.v.), s\u1ed1 ti\u1ec1n thu nh\u1eadp không ki\u1ebfm \u0111\u01b0\u1ee3c c\u1ee7a h\u1ed9 gia \u0111ěnh thay \u0111\u1ed5i h\u01a1n $100 m\u1ed7i tháng, s\u1ed1 ti\u1ec1n thu nh\u1eadp ki\u1ebfm \u0111\u01b0\u1ee3c c\u1ee7a h\u1ed9 gia \u0111ěnh thay \u0111\u1ed5i h\u01a1n $100 m\u1ed7i tháng, có ng\u01b0\u1eddi chuy\u1ec3n \u0111\u1ebfn ho\u1eb7c ra kh\u1ecfi h\u1ed9 gia \u0111ěnh, ho\u1eb7c quý v\u1ecb chuy\u1ec3n \u0111i.
  • \u0110\u1ed1i v\u1edbi FITAP ho\u1eb7c KCSP, quý v\u1ecb ph\u1ea3i báo cáo trong vňng 10 ngŕy b\u1ea5t k\u1ef3 thay \u0111\u1ed5i nŕo v\u1ec1: Vi\u1ec7c \u0111i h\u1ecdc c\u1ee7a b\u1ea5t k\u1ef3 ng\u01b0\u1eddi 18 tu\u1ed5i nŕo trong h\u1ed9 gia \u0111ěnh vŕ těnh tr\u1ea1ng hôn nhân c\u1ee7a b\u1ea5t k\u1ef3 ai trong h\u1ed9 gia \u0111ěnh.
+legal-agree=Tôi \u0111\u1ed3ng ý v\u1edbi các \u0111i\u1ec1u kho\u1ea3n +legal-expanded.header2=M\u1ee9c x\u1eed ph\u1ea1t khi c\u1ed1 těnh \u0111\u01b0a thông tin sai s\u1ef1 th\u1eadt +legal-expanded.body2=

X\u1eed ph\u1ea1t

N\u1ebfu quý v\u1ecb c\u1ed1 těnh báo cáo thông tin không chính xác, các phúc l\u1ee3i SNAP, FITAP ho\u1eb7c KCSP c\u1ee7a quý v\u1ecb có th\u1ec3 b\u1ecb t\u1eeb ch\u1ed1i, gi\u1ea3m b\u1edbt ho\u1eb7c ch\u1ea5m d\u1ee9t vŕ quý v\u1ecb có th\u1ec3 b\u1ecb truy t\u1ed1 hěnh s\u1ef1.

Hěnh ph\u1ea1t nŕo \u0111\u01b0\u1ee3c áp d\u1ee5ng trong SNAP?

N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb th\u1ef1c hi\u1ec7n nh\u1eefng \u0111i\u1ec1u sau:

  • \u1ea8n thông tin ho\u1eb7c cung c\u1ea5p thông tin sai l\u1ec7ch
  • Trao \u0111\u1ed5i ho\u1eb7c bán phúc l\u1ee3i SNAP ho\u1eb7c th\u1ebb EBT
  • S\u1eed d\u1ee5ng phúc l\u1ee3i SNAP \u0111\u1ec3 mua các m\u1eb7t hŕng không h\u1ee3p cách, ch\u1eb3ng h\u1ea1n nh\u01b0 r\u01b0\u1ee3u ho\u1eb7c thu\u1ed1c lá
  • S\u1eed d\u1ee5ng Phúc l\u1ee3i SNAP c\u1ee7a ng\u01b0\u1eddi khác
  • Thanh toán cho th\u1ef1c ph\u1ea9m mua b\u1eb1ng tín d\u1ee5ng b\u1eb1ng phúc l\u1ee3i SNAP
  • Quý v\u1ecb s\u1ebd b\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP:

    • 1 n\u0103m cho l\u1ea7n vi ph\u1ea1m \u0111\u1ea7u tięn
    • 2 n\u0103m cho l\u1ea7n vi ph\u1ea1m th\u1ee9 hai
    • V\u0129nh vi\u1ec5n cho l\u1ea7n vi ph\u1ea1m th\u1ee9 ba

    Quý v\u1ecb c\u0169ng có th\u1ec3 b\u1ecb ph\u1ea1t t\u1edbi 250.000 USD ho\u1eb7c b\u1ecb ph\u1ea1t tů t\u1edbi 20 n\u0103m ho\u1eb7c c\u1ea3 hai. Quý v\u1ecb c\u0169ng có th\u1ec3 b\u1ecb c\u1ea5m nh\u1eadn SNAP thęm 18 tháng n\u1ebfu tňa án ra l\u1ec7nh.

    N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb th\u1ef1c hi\u1ec7n nh\u1eefng \u0111i\u1ec1u sau:

    • \u0110\u1ed5i tr\u1ee3 c\u1ea5p SNAP \u0111\u1ec3 l\u1ea5y ma túy b\u1ea5t h\u1ee3p pháp vŕ b\u1ecb tňa án k\u1ebft t\u1ed9i

    Quý v\u1ecb s\u1ebd b\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP:

    • 2 n\u0103m cho l\u1ea7n vi ph\u1ea1m \u0111\u1ea7u tięn
    • V\u0129nh vi\u1ec5n cho l\u1ea7n vi ph\u1ea1m th\u1ee9 hai

    N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb th\u1ef1c hi\u1ec7n nh\u1eefng \u0111i\u1ec1u sau:

    • \u0110\u1ed5i tr\u1ee3 c\u1ea5p SNAP \u0111\u1ec3 l\u1ea5y súng, \u0111\u1ea1n d\u01b0\u1ee3c ho\u1eb7c ch\u1ea5t n\u1ed5 vŕ b\u1ecb tňa án k\u1ebft t\u1ed9i
    • Trao \u0111\u1ed5i, mua ho\u1eb7c bán phúc l\u1ee3i SNAP t\u1eeb $500 tr\u1edf lęn vŕ b\u1ecb tňa án k\u1ebft t\u1ed9i

    Quý v\u1ecb s\u1ebd:

    • Quý v\u1ecb s\u1ebd b\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP v\u0129nh vi\u1ec5n

    N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb lŕm nh\u1eefng \u0111i\u1ec1u sau:

    • Cung c\u1ea5p thông tin sai l\u1ec7ch v\u1ec1 quý v\u1ecb lŕ ai ho\u1eb7c n\u01a1i quý v\u1ecb s\u1ed1ng \u0111\u1ec3 nh\u1eadn tr\u1ee3 c\u1ea5p trong nhi\u1ec1u tr\u01b0\u1eddng h\u1ee3p cůng m\u1ed9t lúc

    Quý v\u1ecb s\u1ebd:

    • B\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP trong 10 n\u0103m

    Nh\u1eefng hěnh ph\u1ea1t nŕo \u0111\u01b0\u1ee3c áp d\u1ee5ng trong FITAP vŕ KCSP?

    N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb th\u1ef1c hi\u1ec7n nh\u1eefng \u0111i\u1ec1u sau:

    Quý v\u1ecb s\u1ebd:

    • Gi\u1ea5u thông tin ho\u1eb7c cung c\u1ea5p thông tin sai l\u1ec7ch

    Quý v\u1ecb s\u1ebd:

    B\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP:

    • 1 n\u0103m cho l\u1ea7n vi ph\u1ea1m \u0111\u1ea7u tięn
    • 2 n\u0103m cho l\u1ea7n vi ph\u1ea1m th\u1ee9 hai
    • V\u0129nh vi\u1ec5n \u0111\u1ed1i v\u1edbi l\u1ea7n vi ph\u1ea1m th\u1ee9 ba

    Quý v\u1ecb c\u0169ng có th\u1ec3 b\u1ecb ph\u1ea1t t\u1edbi 50.000 USD ho\u1eb7c b\u1ecb ph\u1ea1t tů lęn t\u1edbi 20 n\u0103m ho\u1eb7c c\u1ea3 hai.

    N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb th\u1ef1c hi\u1ec7n nh\u1eefng vi\u1ec7c sau:

    • S\u1eed d\u1ee5ng th\u1ebb EBT c\u1ee7a quý v\u1ecb
      • trong c\u1eeda hŕng r\u01b0\u1ee3u,
      • trong sňng b\u1ea1c ho\u1eb7c c\u01a1 s\u1edf \u0111ánh b\u1ea1c,
      • trong c\u01a1 s\u1edf bán l\u1ebb s\u1ea3n xu\u1ea5t ch\u01b0\u01a1ng trěnh gi\u1ea3i trí dŕnh cho ng\u01b0\u1eddi l\u1edbn trong \u0111ó ng\u01b0\u1eddi bi\u1ec3u di\u1ec5n c\u1edfi qu\u1ea7n áo ho\u1eb7c bi\u1ec3u di\u1ec5n trong těnh tr\u1ea1ng không m\u1eb7c qu\u1ea7n áo vě m\u1ee5c \u0111ích gi\u1ea3i trí ho\u1eb7c
      • t\u1ea1i b\u1ea5t k\u1ef3 hi\u1ec7u sách dŕnh cho ng\u01b0\u1eddi l\u1edbn nŕo, b\u1ea5t k\u1ef3 c\u1eeda hŕng \u0111\u1ed3 důng dŕnh cho ng\u01b0\u1eddi l\u1edbn nŕo ho\u1eb7c b\u1ea5t k\u1ef3 c\u01a1 s\u1edf kinh doanh có khuynh h\u01b0\u1edbng těnh d\u1ee5c nŕo,
      • cho b\u1ea5t k\u1ef3 hěnh x\u0103m, x\u1ecf khuyęn, ho\u1eb7c c\u01a1 s\u1edf ngh\u1ec7 thu\u1eadt tręn c\u01a1 th\u1ec3,
      • t\u1ea1i b\u1ea5t k\u1ef3 ti\u1ec7m lŕm móng nŕo,
      • t\u1ea1i b\u1ea5t k\u1ef3 c\u1eeda hŕng trang s\u1ee9c nŕo,
      • t\u1ea1i b\u1ea5t k\u1ef3 khu gi\u1ea3i trí ho\u1eb7c trň ch\u01a1i \u0111i\u1ec7n t\u1eed nŕo,
      • t\u1ea1i b\u1ea5t k\u1ef3 công ty b\u1ea3o lănh t\u1ea1i ngo\u1ea1i nŕo,
      • t\u1ea1i b\u1ea5t k\u1ef3 câu l\u1ea1c b\u1ed9 \u0111ęm, quán bar, quán r\u01b0\u1ee3u ho\u1eb7c quán r\u01b0\u1ee3u nŕo,
      • tręn b\u1ea5t k\u1ef3 tŕu du l\u1ecbch nŕo,
      • t\u1ea1i b\u1ea5t k\u1ef3 ho\u1ea1t \u0111\u1ed9ng kinh doanh tâm linh nŕo; ho\u1eb7c
      • t\u1ea1i b\u1ea5t k\u1ef3 c\u01a1 s\u1edf nŕo không cho phép ng\u01b0\u1eddi d\u01b0\u1edbi 18 tu\u1ed5i, ho\u1eb7c
      • t\u1ea1i máy ATM \u1edf b\u1ea5t k\u1ef3 c\u01a1 s\u1edf nŕo trong s\u1ed1 nŕy,
    • S\u1eed d\u1ee5ng th\u1ebb EBT c\u1ee7a quý v\u1ecb
      • t\u1ea1i b\u1ea5t k\u1ef3 nhŕ bán l\u1ebb nŕo \u0111\u1ed1i v\u1edbi vi\u1ec7c mua \u0111\u1ed3 u\u1ed1ng có c\u1ed3n,
      • t\u1ea1i b\u1ea5t k\u1ef3 nhŕ bán l\u1ebb nŕo \u0111\u1ec3 mua s\u1ea3n ph\u1ea9m thu\u1ed1c lá, ho\u1eb7c
      • t\u1ea1i b\u1ea5t k\u1ef3 nhŕ bán l\u1ebb nŕo \u0111\u1ec3 mua vé s\u1ed1,
      • t\u1ea1i b\u1ea5t k\u1ef3 nhŕ bán l\u1ebb nŕo \u0111\u1ec3 mua \u0111\u1ed3 trang s\u1ee9c.

    Quý v\u1ecb s\u1ebd:

    B\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP trong:

    • 1 n\u0103m \u0111\u1ed1i v\u1edbi l\u1ea7n vi ph\u1ea1m \u0111\u1ea7u tięn
    • 2 n\u0103m \u0111\u1ed1i v\u1edbi l\u1ea7n vi ph\u1ea1m th\u1ee9 hai
    • V\u0129nh vi\u1ec5n \u0111\u1ed1i v\u1edbi l\u1ea7n vi ph\u1ea1m th\u1ee9 ba

    N\u1ebfu quý v\u1ecb ho\u1eb7c b\u1ea5t k\u1ef3 thŕnh vięn nŕo trong h\u1ed9 gia \u0111ěnh c\u1ee7a quý v\u1ecb th\u1ef1c hi\u1ec7n nh\u1eefng \u0111i\u1ec1u sau:

    • Cung c\u1ea5p thông tin sai l\u1ec7ch v\u1ec1 n\u01a1i quý v\u1ecb s\u1ed1ng \u0111\u1ec3 nh\u1eadn tr\u1ee3 c\u1ea5p \u1edf hai ti\u1ec3u bang tr\u1edf lęn cůng m\u1ed9t lúc

    Quý v\u1ecb s\u1ebd:

    • Quý v\u1ecb s\u1ebd b\u1ecb thu h\u1ed3i phúc l\u1ee3i SNAP trong 10 n\u0103m
    +legal-expanded.header3=Quy ch\u1ebf s\u1eeda \u0111\u1ed5i c\u1ee7a Louisiana 46:56 - Các ch\u01b0\u01a1ng trěnh chia s\u1ebb quy\u1ec1n truy c\u1eadp d\u1eef li\u1ec7u tr\u01b0\u1eddng h\u1ee3p +legal-expanded.body3=

    Quy\u1ec1n nŕy cho phép các khu v\u1ef1c ch\u01b0\u01a1ng trěnh trong B\u1ed9 chia s\u1ebb quy\u1ec1n truy c\u1eadp vŕo h\u1ed3 s\u01a1 v\u1ee5 vi\u1ec7c c\u1ee7a nhau khi c\u1ea7n thi\u1ebft cho vi\u1ec7c qu\u1ea3n lý các ch\u01b0\u01a1ng trěnh t\u01b0\u01a1ng \u1ee9ng, tr\u1eeb khi b\u1ecb c\u1ea5m b\u1edfi lu\u1eadt pháp ho\u1eb7c quy \u0111\u1ecbnh lięn bang.

    +legal-expanded.header4=Tuyęn b\u1ed1 không phân bi\u1ec7t \u0111\u1ed1i x\u1eed c\u1ee7a USDA +legal-expanded.body4=

    Theo lu\u1eadt dân quy\u1ec1n lięn bang vŕ các quy \u0111\u1ecbnh vŕ chính sách v\u1ec1 quy\u1ec1n dân s\u1ef1 c\u1ee7a B\u1ed9 Nông nghi\u1ec7p Hoa K\u1ef3 (USDA), t\u1ed5 ch\u1ee9c nŕy b\u1ecb c\u1ea5m phân bi\u1ec7t \u0111\u1ed1i x\u1eed d\u1ef1a tręn ch\u1ee7ng t\u1ed9c, mŕu da, ngu\u1ed3n g\u1ed1c qu\u1ed1c gia, gi\u1edbi tính (bao g\u1ed3m c\u1ea3 b\u1ea3n d\u1ea1ng gi\u1edbi vŕ khuynh h\u01b0\u1edbng těnh d\u1ee5c), khuy\u1ebft t\u1eadt, tu\u1ed5i tác ho\u1eb7c tr\u1ea3 thů ho\u1eb7c tr\u1ea3 \u0111\u0169a ho\u1ea1t \u0111\u1ed9ng dân quy\u1ec1n tr\u01b0\u1edbc \u0111ây.

    Thông tin v\u1ec1 ch\u01b0\u01a1ng trěnh có th\u1ec3 \u0111\u01b0\u1ee3c cung c\u1ea5p b\u1eb1ng các ngôn ng\u1eef khác ngoŕi ti\u1ebfng Anh. Ng\u01b0\u1eddi khuy\u1ebft t\u1eadt c\u1ea7n các ph\u01b0\u01a1ng ti\u1ec7n lięn l\u1ea1c thay th\u1ebf \u0111\u1ec3 l\u1ea5y thông tin ch\u01b0\u01a1ng trěnh (ví d\u1ee5: ch\u1eef n\u1ed5i Braille, ch\u1eef in l\u1edbn, b\u0103ng ghi âm, Ngôn ng\u1eef ký hi\u1ec7u Hoa K\u1ef3), nęn lięn h\u1ec7 v\u1edbi c\u01a1 quan ti\u1ec3u bang ho\u1eb7c \u0111\u1ecba ph\u01b0\u01a1ng ch\u1ecbu trách nhi\u1ec7m qu\u1ea3n lý ch\u01b0\u01a1ng trěnh ho\u1eb7c Trung tâm TARGET c\u1ee7a USDA theo s\u1ed1 (202) 720- 2600 (tho\u1ea1i vŕ TTY) ho\u1eb7c lięn h\u1ec7 v\u1edbi USDA thông qua D\u1ecbch v\u1ee5 Phięn d\u1ecbch cho ng\u01b0\u1eddi khi\u1ebfm thính Lięn bang theo s\u1ed1 (800) 877-8339.

    \u0110\u1ec3 g\u1eedi khi\u1ebfu n\u1ea1i v\u1ec1 phân bi\u1ec7t \u0111\u1ed1i x\u1eed trong ch\u01b0\u01a1ng trěnh, Ng\u01b0\u1eddi khi\u1ebfu n\u1ea1i ph\u1ea3i \u0111i\u1ec1n vŕo M\u1eabu AD-3027, Ch\u01b0\u01a1ng trěnh USDA M\u1eabu \u0111\u01a1n Khi\u1ebfu n\u1ea1i Phân bi\u1ec7t \u0111\u1ed1i x\u1eed có th\u1ec3 l\u1ea5y tr\u1ef1c tuy\u1ebfn t\u1ea1i: https://www.usda.gov/sites/default/files/documents/ad-3027.pdf, t\u1eeb b\u1ea5t k\u1ef3 v\u0103n phňng USDA nŕo, b\u1eb1ng cách g\u1ecdi \u0111\u1ebfn s\u1ed1 (866) 632-9992 ho\u1eb7c b\u1eb1ng cách vi\u1ebft th\u01b0 g\u1eedi t\u1edbi USDA. Th\u01b0 ph\u1ea3i có tęn, \u0111\u1ecba ch\u1ec9, s\u1ed1 \u0111i\u1ec7n tho\u1ea1i c\u1ee7a ng\u01b0\u1eddi khi\u1ebfu n\u1ea1i vŕ mô t\u1ea3 b\u1eb1ng v\u0103n b\u1ea3n v\u1ec1 hŕnh \u0111\u1ed9ng b\u1ecb cáo bu\u1ed9c phân bi\u1ec7t \u0111\u1ed1i x\u1eed v\u1edbi \u0111\u1ee7 chi ti\u1ebft \u0111\u1ec3 thông báo cho Tr\u1ee3 lý B\u1ed9 tr\u01b0\u1edfng v\u1ec1 Dân quy\u1ec1n (ASCR) v\u1ec1 tính ch\u1ea5t vŕ ngŕy tháng c\u1ee7a hŕnh vi vi ph\u1ea1m dân quy\u1ec1n b\u1ecb cáo bu\u1ed9c. Bi\u1ec3u m\u1eabu ho\u1eb7c th\u01b0 AD-3027 \u0111ă hoŕn thŕnh ph\u1ea3i \u0111\u01b0\u1ee3c g\u1eedi t\u1edbi USDA tr\u01b0\u1edbc:

    1. Th\u01b0: B\u1ed9 Nông nghi\u1ec7p Hoa K\u1ef3
    V\u0103n phňng Tr\u1ee3 lý B\u1ed9 tr\u01b0\u1edfng Dân quy\u1ec1n
    1400 Independence Avenue, SW
    Washington, D.C. 20250-9410;
    ho\u1eb7c

    2. Fax: (833) 256-1665 ho\u1eb7c (202) 690-7442

    3. Email: Program.Intake@usda.gov

    T\u1ed5 ch\u1ee9c nŕy lŕ nhŕ cung c\u1ea5p c\u01a1 h\u1ed9i běnh \u0111\u1eb3ng.

    + +signature-title=Ch\u1eef ký +signature-header=Nh\u1eadp tęn pháp lý \u0111\u1ea7y \u0111\u1ee7 c\u1ee7a b\u1ea1n vŕo \u0111ây \u0111\u1ec3 ký vŕo \u0111\u01a1n \u0111\u0103ng ký nŕy. +signature-subheader=B\u1eb1ng ký tęn tręn \u0111\u01a1n nŕy, quý v\u1ecb \u0111\u1ed3ng ý r\u1eb1ng quý v\u1ecb mu\u1ed1n \u0111\u0103ng ký nh\u1eadn tr\u1ee3 c\u1ea5p, r\u1eb1ng quý v\u1ecb \u0111ă trung th\u1ef1c trong \u0111\u01a1n nŕy, vŕ r\u1eb1ng quý v\u1ecb \u0111ă \u0111\u1ecdc vŕ \u0111\u1ed3ng ý v\u1edbi các \u0111i\u1ec1u kho\u1ea3n tręn trang tr\u01b0\u1edbc. +signature-submit=G\u1eedi \u0111\u01a1n \u0111\u0103ng ký + + +# Confirmation +confirmation.title=Xác nh\u1eadn +confirmation.header=Xong r\u1ed3i! \u0110\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb \u0111ă \u0111\u01b0\u1ee3c g\u1eedi \u0111i. +confirmation.subtext=\u0110\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb \u0111ă \u0111\u01b0\u1ee3c g\u1eedi vŕo {0}. +confirmation.helpful-resources=Tŕi li\u1ec7u h\u1eefu ích +confirmation.helpful-resources.l1=Quay l\u1ea1i benefits.dcfs.la.gov \u0111\u1ec3 g\u1eedi m\u1ecdi tŕi li\u1ec7u mŕ DCFS yęu c\u1ea7u. +confirmation.helpful-resources.l2=T\u1ea1o tŕi kho\u1ea3n t\u1ea1i LA CAFÉ \u0111\u1ec3 qu\u1ea3n lý phúc l\u1ee3i c\u1ee7a quý v\u1ecb. +confirmation.next-steps=Các b\u01b0\u1edbc ti\u1ebfp theo +confirmation.p1_html=Quý v\u1ecb ph\u1ea3i hoŕn thŕnh m\u1ed9t cu\u1ed9c ph\u1ecfng v\u1ea5n. Quý v\u1ecb s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c th\u01b0 h\u1eb9n tr\u01b0\u1edbc {0} kčm theo thông tin chi ti\u1ebft v\u1ec1 cu\u1ed9c ph\u1ecfng v\u1ea5n c\u1ee7a quý v\u1ecb.

    N\u1ebfu \u0111\u1ebfn lúc \u0111ó quý v\u1ecb không nh\u1eadn \u0111\u01b0\u1ee3c th\u01b0, vui lňng g\u1ecdi \u0111\u1ebfn s\u1ed1 \u0111i\u1ec7n tho\u1ea1i mi\u1ec5n phí c\u01b0\u1edbc sau \u0111ây (833) 323-7482 trong kho\u1ea3ng th\u1eddi gian t\u1eeb Th\u1ee9 Hai - Th\u1ee9 Sáu, 8 gi\u1edd sáng - 2 gi\u1edd chi\u1ec1u \u0111\u1ec3 \u0111\u1eb7t l\u1ecbch ph\u1ecfng v\u1ea5n. +confirmation.looking_for_job_html=Quý v\u1ecb c\u1ea7n t\u1ea1o tŕi kho\u1ea3n HiRE. T\u1ea1o tŕi kho\u1ea3n HiRE tręn Louisiana Works \u0111\u1ec3 nh\u1eadn tr\u1ee3 c\u1ea5p SNAP. +confirmation.p2_html=Trong vňng 30 ngŕy t\u1edbi, d\u1ef1 ki\u1ebfn s\u1ebd nh\u1eadn \u0111\u01b0\u1ee3c th\u01b0 v\u1ec1 \u0111\u01a1n \u0111\u0103ng ký c\u1ee7a quý v\u1ecb. Lá th\u01b0 s\u1ebd cho quý v\u1ecb bi\u1ebft li\u1ec7u quý v\u1ecb có \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n hay không. +confirmation.p3=Hăy g\u1ecdi LAHelpU theo s\u1ed1 (888) 524-3578 n\u1ebfu quý v\u1ecb có b\u1ea5t k\u1ef3 câu h\u1ecfi nŕo v\u1ec1 \u0111\u01a1n \u0111\u0103ng ký tr\u1ef1c tuy\u1ebfn c\u1ee7a měnh. +confirmation-feedback.how-easy=Vi\u1ec7c \u0111i\u1ec1n \u0111\u01a1n \u0111\u0103ng ký tr\u1ef1c tuy\u1ebfn b\u1eb1ng trang web nŕy có d\u1ec5 dŕng không, hay khó kh\u0103n nh\u01b0 th\u1ebf nŕo? (Không b\u1eaft bu\u1ed9c) + + +# WIC/ECE - these are placeholders for translations, feel free to change the key names +looking-for-assistance=Quý v\u1ecb có \u0111ang těm ki\u1ebfm s\u1ef1 h\u1ed7 tr\u1ee3 v\u1edbi các ch\u01b0\u01a1ng trěnh khác không? +already-started=Quý v\u1ecb \u0111ă b\u1eaft \u0111\u1ea7u \u0111i\u1ec1n \u0111\u01a1n ch\u01b0a? +upload-requested-docs=T\u1ea3i tŕi li\u1ec7u \u0111\u01b0\u1ee3c yęu c\u1ea7u lęn DCFS +parish.header=Hi\u1ec7n t\u1ea1i quý v\u1ecb \u0111ang s\u1ed1ng \u1edf giáo x\u1ee9 nŕo? +parish.subheader=Ch\u1ecdn giáo x\u1ee9 n\u01a1i quý v\u1ecb sinh s\u1ed1ng. +parish.select=Ch\u1ecdn giáo x\u1ee9 c\u1ee7a quý v\u1ecb + +you-might-qualify-childcare=Quý v\u1ecb có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em mi\u1ec5n phí +by-answering=Thông qua 4 câu tr\u1ea3 l\u1eddi n\u1eefa, chúng tôi có th\u1ec3 ki\u1ec3m tra xem quý v\u1ecb có \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia ch\u01b0\u01a1ng trěnh Ph\u1ee5 n\u1eef, Tr\u1ebb s\u01a1 sinh vŕ Tr\u1ebb em (WIC) ho\u1eb7c Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em hay không. +reveal-header-1=Ch\u01b0\u01a1ng trěnh Ph\u1ee5 n\u1eef, Tr\u1ebb s\u01a1 sinh vŕ Tr\u1ebb em (WIC) lŕ gě? +reveal-content-1=Ch\u01b0\u01a1ng trěnh Ph\u1ee5 n\u1eef, Tr\u1ebb s\u01a1 sinh vŕ Tr\u1ebb em (WIC) cung c\u1ea5p ki\u1ebfn th\u1ee9c v\u1ec1 dinh d\u01b0\u1ee1ng, h\u01b0\u1edbng d\u1eabn ch\u0103m sóc s\u1ee9c kh\u1ecfe vŕ th\u1ebb EBT \u0111\u1ec3 thanh toán cho th\u1ef1c ph\u1ea9m lŕnh m\u1ea1nh. Ph\u1ee5 n\u1eef mang thai, ph\u1ee5 n\u1eef mang thai trong 6 tháng qua, tr\u1ebb s\u01a1 sinh vŕ tr\u1ebb em d\u01b0\u1edbi 5 tu\u1ed5i \u0111\u1ec1u có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n. +reveal-header-2=Ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em (ECE) lŕ gě? +reveal-content-2=Ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em (ECE) h\u1ed7 tr\u1ee3 giáo d\u1ee5c cho ph\u1ee5 huynh l\u1eabn tr\u1ebb nh\u1ecf vŕ c\u1ea3 ch\u0103m sóc tr\u1ebb em. ECE bao g\u1ed3m các ch\u01b0\u01a1ng trěnh Head Start vŕ Early Head Start dŕnh cho tr\u1ebb em d\u01b0\u1edbi 5 tu\u1ed5i vŕ ph\u1ee5 n\u1eef mang thai. +im-interested=Tôi quan tâm +continue-with-snap-only=Tôi ch\u1ec9 c\u1ea7n SNAP + +what-type=Quý v\u1ecb mu\u1ed1n \u0111\u0103ng ký cho h\u1ed7 tr\u1ee3 nŕo? +food-wic=Th\u1ef1c ph\u1ea9m (WIC) +food-wic-subheader=Ti\u1ec1n \u0111\u1ec3 mua th\u1ef1c ph\u1ea9m t\u1ed1t cho s\u1ee9c kh\u1ecfe c\u1ee7a quý v\u1ecb vŕ gia \u0111ěnh +free-childcare=Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em mi\u1ec5n phí (ECE) +free-childcare-subheader=Giáo d\u1ee5c vŕ ch\u0103m sóc s\u1ee9c kh\u1ecfe cho tr\u1ebb nh\u1ecf vŕ ph\u1ee5 huynh + +all-working=T\u1ea4T C\u1ea2 ng\u01b0\u1eddi l\u1edbn trong h\u1ed9 gia \u0111ěnh có \u0111ang lŕm vi\u1ec7c, \u0111i h\u1ecdc, tham gia ch\u01b0\u01a1ng trěnh \u0111ŕo t\u1ea1o ho\u1eb7c \u0111ang těm vi\u1ec7c lŕm nŕo hay không? +only-count-adults=Ch\u1ec9 tính ng\u01b0\u1eddi l\u1edbn lŕ ng\u01b0\u1eddi giám h\u1ed9 h\u1ee3p pháp. +household-composition-exclusions=Thŕnh ph\u1ea7n h\u1ed9 gia \u0111ěnh không bao g\u1ed3m: cô, chú, con \u0111ă tr\u01b0\u1edfng thŕnh, ông bŕ, v.v. + +any-iep=Có tr\u1ebb em nŕo trong h\u1ed9 gia \u0111ěnh quý v\u1ecb tham gia Ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c Cá nhân (IEP) vě khuy\u1ebft t\u1eadt không? +any-iep-exclusions=\u0110i\u1ec1u nŕy không bao g\u1ed3m tr\u1ebb em tham gia Ch\u01b0\u01a1ng trěnh N\u0103ng khi\u1ebfu ho\u1eb7c Tŕi n\u0103ng. + +foster-or-kinship=Có tr\u1ebb em nŕo trong gia \u0111ěnh quý v\u1ecb tham gia vŕo ch\u01b0\u01a1ng trěnh ch\u0103m sóc nuôi d\u01b0\u1ee1ng ho\u1eb7c tr\u1ee3 c\u1ea5p h\u1ecd hŕng không? + +can-we-share-nola=Chúng tôi có th\u1ec3 chia s\u1ebb d\u1eef li\u1ec7u SNAP c\u1ee7a quý v\u1ecb v\u1edbi NOLA P.S. không? +use-to-start-app=Chúng tôi có th\u1ec3 s\u1eed d\u1ee5ng thông tin SNAP c\u1ee7a quý v\u1ecb \u0111\u1ec3 b\u1eaft \u0111\u1ea7u \u0111\u0103ng ký ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em mi\u1ec5n phí v\u1edbi Tr\u01b0\u1eddng Công l\u1eadp NOLA (P.S.). +nolaps-contact-you=NOLA P.S. s\u1ebd lięn h\u1ec7 v\u1edbi quý v\u1ecb \u0111\u1ec3 hoŕn t\u1ea5t quá trěnh \u0111\u0103ng ký. +share-nolaps-button=Chia s\u1ebb d\u1eef li\u1ec7u c\u1ee7a tôi cho NOLA P.S. + +if-youre-approved=N\u1ebfu \u0111\u01b0\u1ee3c ch\u1ea5p thu\u1eadn nh\u1eadn SNAP, quý v\u1ecb c\u0169ng \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn WIC. +wic-will-contact=Nhân vięn WIC s\u1ebd lięn h\u1ec7 v\u1edbi quý v\u1ecb \u0111\u1ec3 hoŕn t\u1ea5t quy trěnh \u0111\u0103ng ký. + +thank-you=C\u1ea3m \u01a1n quý v\u1ecb vě \u0111ă cung c\u1ea5p thông tin +you-can-finish-up=Quý v\u1ecb có th\u1ec3 hoŕn t\u1ea5t \u0111\u01a1n \u0111\u0103ng ký SNAP c\u1ee7a měnh vŕ ti\u1ebfp t\u1ee5c các b\u01b0\u1edbc ti\u1ebfp theo cho t\u1ea5t c\u1ea3 các ch\u01b0\u01a1ng trěnh \u1edf ph\u1ea7n cu\u1ed1i. + +based-on-your-answers=D\u1ef1a tręn câu tr\u1ea3 l\u1eddi c\u1ee7a quý v\u1ecb, quý v\u1ecb có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia ch\u01b0\u01a1ng trěnh Ph\u1ee5 n\u1eef, Tr\u1ebb s\u01a1 sinh vŕ Tr\u1ebb em (WIC). WIC có th\u1ec3:
    • cung c\u1ea5p ki\u1ebfn th\u1ee9c v\u1ec1 dinh d\u01b0\u1ee1ng
    • Gi\u1edbi thi\u1ec7u quý v\u1ecb \u0111\u1ebfn c\u01a1 s\u1edf ch\u0103m sóc s\u1ee9c kh\u1ecfe
    • Giúp quý v\u1ecb chi tr\u1ea3 cho th\u1ef1c ph\u1ea9m lŕnh m\u1ea1nh
    Quý v\u1ecb có mu\u1ed1n chia s\u1ebb d\u1eef li\u1ec7u c\u1ee7a měnh v\u1edbi WIC \u0111\u1ec3 xem quý v\u1ecb có \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n không? +share-wic-button=Chia s\u1ebb d\u1eef li\u1ec7u c\u1ee7a tôi cho WIC + +you-can-finish-up-2=Quý v\u1ecb có th\u1ec3 hoŕn t\u1ea5t \u0111\u01a1n \u0111\u0103ng ký SNAP c\u1ee7a měnh vŕ ti\u1ebfp t\u1ee5c các b\u01b0\u1edbc ti\u1ebfp theo cho t\u1ea5t c\u1ea3 các \u0111\u01a1n \u0111\u0103ng ký \u1edf ph\u1ea7n cu\u1ed1i. + +you-might-qualify-for-ece=Quý v\u1ecb có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n nh\u1eadn ECE +you-might-qualify-for-ece-subheader=D\u1ef1a tręn câu tr\u1ea3 l\u1eddi c\u1ee7a quý v\u1ecb, quý v\u1ecb có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em (ECE). ECE có th\u1ec3:
    • Cung c\u1ea5p d\u1ecbch v\u1ee5 ch\u0103m sóc tr\u1ebb mi\u1ec5n phí
    • Cung c\u1ea5p giáo d\u1ee5c m\u1ea7m non mi\u1ec5n phí
    +open-ece-button=Xem \u0111\u01a1n \u0111\u0103ng ký ECE + +open-wic-button=Xem \u0111\u01a1n \u0111\u0103ng ký WIC + +you-might-qualify-wic=Quý v\u1ecb có th\u1ec3 \u0111\u1ee7 \u0111i\u1ec1u ki\u1ec7n tham gia ch\u01b0\u01a1ng trěnh Ph\u1ee5 n\u1eef, Tr\u1ebb s\u01a1 sinh vŕ Tr\u1ebb em (WIC) +go-to-wic-button=Chuy\u1ec3n \u0111\u1ebfn \u0111\u01a1n \u0111\u0103ng ký WIC +reveal-content-3=Ch\u01b0\u01a1ng trěnh Ph\u1ee5 n\u1eef, Tr\u1ebb s\u01a1 sinh vŕ Tr\u1ebb em (WIC) giúp m\u1ecdi ng\u01b0\u1eddi thanh toán ti\u1ec1n mua hŕng t\u1ea1p hóa vŕ cung c\u1ea5p ki\u1ebfn th\u1ee9c v\u1ec1 dinh d\u01b0\u1ee1ng cho ph\u1ee5 n\u1eef mang thai, ph\u1ee5 n\u1eef mang thai trong 6 tháng, tr\u1ebb s\u01a1 sinh vŕ tr\u1ebb em d\u01b0\u1edbi 5 tu\u1ed5i. +reveal-content-4=Ch\u01b0\u01a1ng trěnh Giáo d\u1ee5c s\u1edbm vŕ Ch\u0103m sóc tr\u1ebb em (ECE) h\u1ed7 tr\u1ee3 giáo d\u1ee5c cho ph\u1ee5 huynh l\u1eabn tr\u1ebb nh\u1ecf vŕ c\u1ea3 ch\u0103m sóc tr\u1ebb em. ECE bao g\u1ed3m các ch\u01b0\u01a1ng trěnh Head Start vŕ Early Head Start dŕnh cho tr\u1ebb em d\u01b0\u1edbi 5 tu\u1ed5i vŕ ph\u1ee5 n\u1eef mang thai. diff --git a/src/main/resources/parent-guardian-csv-map.yaml b/src/main/resources/parent-guardian-csv-map.yaml new file mode 100644 index 000000000..df778f93c --- /dev/null +++ b/src/main/resources/parent-guardian-csv-map.yaml @@ -0,0 +1,20 @@ +flow: laDigitalAssister +type: parentGuardian +inputFields: + # submission field name --> PDF field name + + # Cross-check this list against the PDF with this command: + # diff \ + # <(pdftk src/main/resources/pdfs/applicant_summary.pdf dump_data_fields | grep 'FieldName: ' | cut -d' ' -f2 | sort) \ + # <(ruby -ryaml -e "y = YAML.load_file('src/main/resources/pdf-map.yaml'); puts y['inputFields'].values.concat(y['dbFields'].values)" | sort) + # + # Red lines = in PDF but not YAML + # Green lines = in YAML but not PDF + + # Overview Page + firstName: first_name + lastName: last_name + emailAddress: email_address + phoneNumber: phone_number +dbFields: + createdAt: submission-createdat \ No newline at end of file diff --git a/src/main/resources/pdf-map.yaml b/src/main/resources/pdf-map.yaml new file mode 100644 index 000000000..d26f6d97c --- /dev/null +++ b/src/main/resources/pdf-map.yaml @@ -0,0 +1,120 @@ +flow: laDigitalAssister +pdf: /pdfs/la_application_for_assistance.pdf +inputFields: + # submission field name --> PDF field name + + # Cross-check this list against the PDF with this command: + # diff \ + # <(pdftk src/main/resources/pdfs/la_application_for_assistance.pdf dump_data_fields | grep 'FieldName: ' | cut -d' ' -f2 | sort) \ + # <(ruby -ryaml -e "y = YAML.load_file('src/main/resources/pdf-map.yaml'); puts y['inputFields'].values.concat(y['dbFields'].values)" | sort) + # + # Red lines = in PDF but not YAML + # Green lines = in YAML but not PDF + + # Overview Page + firstName: firstName + lastName: lastName + applicantSsn: applicantSsn + homeAddressStreetAddress1: homeAddressStreetAddress1 + homeAddressStreetAddress2: homeAddressStreetAddress2 + homeAddressZipCode: homeAddressZipCode + homeAddressState: homeAddressState + homeAddressCity: homeAddressCity + mailingAddressZipCode: mailingAddressZipCode + mailingAddressState: mailingAddressState + mailingAddressCity: mailingAddressCity + mailingAddressStreetAddress2: mailingAddressStreetAddress2 + mailingAddressStreetAddress1: mailingAddressStreetAddress1 + signature: signature + applicantBirthdayFormatted: applicantBirthday + emailAddress: emailAddress + sex: sex + highestEducationFormatted: highestEducation + ethnicitySelected: ethnicitySelected + raceSelected: + American Indian or Alaskan Native: RACE_American Indian or Alaskan Native + Asian: RACE_Asian + Black or African American: RACE_Black or African American + Native Hawaiian or Other Pacific Islander: RACE_Native Hawaiian or Other Pacific Islander + White: RACE_White + maritalStatus: maritalStatus + applicantStudentInd: applicantStudentInd + applicantNonCitizenInd: applicantNonCitizenInd + applicantHomelessInd: applicantHomelessInd + + authorizedRepresentative: authorizedRepresentative + authorizedRepFirstName: authorizedRepFirstName + authorizedRepLastName: authorizedRepLastName + authorizedRepStreetAddress1: authorizedRepStreetAddress1 + authorizedRepStreetAddress2: authorizedRepStreetAddress2 + authorizedRepZipCode: authorizedRepZipCode + authorizedRepState: authorizedRepState + authorizedRepCity: authorizedRepCity + authorizedRepPhoneNumber: authorizedRepPhoneNumber + needsMedicaid: needsMedicaid + ssns_1: ssns_1 + ssns_2: ssns_2 + ssns_3: ssns_3 + ssns_4: ssns_4 + ssns_5: ssns_5 + ssns_6: ssns_6 + ssns_7: ssns_7 + + hasDependentCareExpenses: hasDependentCareExpenses + personalSituationDisablityInd: disablityInd + pregnancyInd: pregnancyInd + schoolInd: schoolInd + buyPrepareMealsSeparateIndicator: buyPrepareMealsSeparateIndicator + outOfStateBenefitsInd: outOfStateBenefitsInd + veteranInd: veteranInd + fosterAgedOutInd: fosterAgedOutInd + + jobSearch: jobSearch + migrantOrSeasonalFarmWorkerInd: migrantOrSeasonalFarmWorkerInd + roomRentalInd: roomRentalInd + + additionalIncome: + SSI: SSI + SocialSecurity: SocialSecurity + Unemployment: Unemployment + WorkersCompensation: WorkersCompensation + ChildSupport: ChildSupport + VeteransBenefits: VeteransBenefits + Contributions: Contributions + + householdUtilitiesExpenses: + Electricity: Electricity + Water: Water + Phone/Cell Phone: Phone/Cell Phone + Garbage: Garbage + Sewer: Sewer + Cooking Fuel: Cooking Fuel + Other: Other + householdHomeExpenses: + Rent: Rent + Mortgage: Mortgage + Homeowner's Insurance: Homeowner's Insurance + Property Tax: Property Tax + Condominium Fees: Condominium Fees + Lot Rent: Lot Rent + Flood Insurance: Flood Insurance + Other: Other + + votingRegistrationRequested: votingRegistrationRequested + votingRegistrationHelpRequested: votingRegistrationHelpRequested + +subflowInfo: + household: + totalIterations: 7 + inputFields: + householdMemberFirstName: householdMemberFirstName + householdMemberLastName: householdMemberLastName + householdMemberSex: householdSex + householdRelationshipFormatted: householdRelationship + householdMaritalStatusFormatted: householdMaritalStatus + householdHighestEducationFormatted: householdHighestEducation + householdBirthdayFormatted: householdBirthday + householdUSCitizenDerived: householdUSCitizen + +dbFields: + submittedAt: submission-timestamp diff --git a/src/main/resources/pdfs/la_application_for_assistance.pdf b/src/main/resources/pdfs/la_application_for_assistance.pdf new file mode 100644 index 000000000..48608eff0 Binary files /dev/null and b/src/main/resources/pdfs/la_application_for_assistance.pdf differ diff --git a/src/main/resources/static/assets/js/index.js b/src/main/resources/static/assets/js/index.js index ed034134c..f0f5025f0 100644 --- a/src/main/resources/static/assets/js/index.js +++ b/src/main/resources/static/assets/js/index.js @@ -12,4 +12,18 @@ document.addEventListener("DOMContentLoaded", function() { } }); } + + var noPermanentAddress = document.getElementById("noHomeAddress-true-label"); + + if (noPermanentAddress) { + noPermanentAddress.addEventListener("click", function() { + var selectedClass = document.getElementsByClassName('is-selected') + var mailFields = document.getElementById("hidden-home-address-fields") + if(selectedClass.length > 0){ + mailFields.style.display="none"; + } else { + mailFields.style.display="block"; + } + }); + } }); \ No newline at end of file diff --git a/src/main/resources/templates/fragments/fileUploader.html b/src/main/resources/templates/fragments/fileUploader.html index 436751179..7fac1d178 100644 --- a/src/main/resources/templates/fragments/fileUploader.html +++ b/src/main/resources/templates/fragments/fileUploader.html @@ -204,26 +204,26 @@ } } - function deleteCancelledFiles(file, id) { + function deleteCancelledFiles(file, id, flow, screen) { let filesToDelete = window['cancelledFiles' + [[${inputName}]]]; filesToDelete.forEach(fTD => { if (fTD.name === file.name) { - removeFileFromDropzone(file, id); + removeFileFromDropzone(file, id, flow, screen); mixpanel.track('file_upload_delete', { 'page_name': window.location.pathname, 'file_size': file.size, 'file_format': file.type }); - sendDeleteXhrRequest(id); + sendDeleteXhrRequest(id, flow, screen); } }) } - function sendDeleteXhrRequest(id, flow) { + function sendDeleteXhrRequest(id, flow, screen) { var xhrRequest = new XMLHttpRequest(); xhrRequest.open('POST', '/file-delete?' + id + '&returnPath=' + window.location.pathname + '&inputName=' - + [[${inputName}]] + '&flow=' + flow, true); + + [[${inputName}]] + '&flow=' + flow + '&screen=' + screen, true); xhrRequest.withCredentials = false; xhrRequest.setRequestHeader("Accept", "*/*"); xhrRequest.setRequestHeader("X-Requested-With", "XMLHttpRequest"); @@ -342,6 +342,7 @@ formData.append("_csrf", csrfToken); formData.append("type", file.type); formData.append("flow", [[${flow}]]); + formData.append("screen", [[${screen}]]); formData.append("subflow", [[${subflow}]]); formData.append("inputName", [[${inputName}]]); formData.append("thumbDataURL", file.dataURL); @@ -378,7 +379,7 @@ let confirmation = confirm(confirmMsg.replaceAll('"','')) if (confirmation) { - sendDeleteXhrRequest(id, [[${flow}]]); + sendDeleteXhrRequest(id, [[${flow}]], [[${screen}]]); mixpanel.track('file_upload_delete', { 'page_name': window.location.pathname, 'file_size': file.size, @@ -391,7 +392,7 @@ thumbnail.classList.remove("hidden"); progressBar.classList.add("hidden"); $('#submit-my-documents-' + [[${inputName}]]).removeClass("disabled"); - deleteCancelledFiles(file, id); + deleteCancelledFiles(file, id, [[${flow}]], [[${screen}]]); }); // This lets dropzone know to process the queue after each file has completed diff --git a/src/main/resources/templates/fragments/footer.html b/src/main/resources/templates/fragments/footer.html index 933544285..991acaadc 100644 --- a/src/main/resources/templates/fragments/footer.html +++ b/src/main/resources/templates/fragments/footer.html @@ -4,6 +4,13 @@

    + +
    Download links (demo-only): + Parent Guardian Summary CSV | + Relationship Summary CSV | + Student Summary CSV | + Applicant PDF +
- th:replace="'fragments/inputs/checkboxInSet' :: checkboxInSet(inputName='householdHomeExpenses',value=#{home-expenses.flood-insurance}, label=#{home-expenses.flood-insurance})"/> - +